首页 > 其他分享 >【01】搭建spring boot单体服务,集成undertow容器

【01】搭建spring boot单体服务,集成undertow容器

时间:2023-02-08 14:46:24浏览次数:55  
标签:01 undertow spring boot api 注解 拦截

1.本次学习目标

- 搭建一个springboot框架服务

- 集成异步servlet容器undertow

- 通过AOP的方式实现日志的拦截

 

2.学习步骤

2.1搭建服务框架

首先通过https://start.spring.io进入页面,并填写内容,一键生成框架

 

 

 

2.2  集成undertow

在集成undertow的时候一定要看好项目启动的时候是否真的通过undertow启动的,而不是Tomcat

 

 

 

这里注意pom的配置,需要排除tomact,然后再添加undertow依赖

	    	<!--在web中排除Tomcat-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-starter-tomcat</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<!--使用undertow依赖-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-undertow</artifactId>
		</dependency>

2.3 项目之间的引用

比如在该框架中,controller在application项目中,将model放在models项目中,则application层需要引用models项目,则需要在maven pom文件中添加依赖

2.4 Restful api的实现

在controller里面写api接口时,需要在类上方添加注解RestController,开始的时候我是添加的Controller注解,出现了404的页面错误,这点需要注意,一般后端都是restful api接口,所以直接用RestController注解即可

另外在写api route的时候,有个地方也要注意:如果使用getbyid时,路由为/{id},代码则是@PathVariable(value="id") String id

以上就可以访问咱们的基于undertow的单体服务api了,接下来就要实现AOP了。

 

3.AOP的实现

我们通过AOP拦截的方式,避免了代码的侵入性,我们面临的场景也有两种:一是只针对某个方法,或者某类方法进行拦截;还有一种则是路径扫描拦截,而今天介绍的也是两种方案

3.1注解式aop

这类方案顾名思义,需要先去声明一个注解,然后实现这个注解的切面逻辑,最后将注解配置在想要拦截的方法上即可,通常这类切口都是某个注解

3.2 路径扫描式aop

这类拦截则是通过配置一个路径,然后作为一个切口进行拦截,这个针对的是一个范围场景。

以上所有的案例放在gitee里面,大家可以自行下载运行,JavaLearning: Java八天进阶实战 (gitee.com)

 

标签:01,undertow,spring,boot,api,注解,拦截
From: https://www.cnblogs.com/walt/p/17101687.html

相关文章

  • spring的@Param注解和mybatis中的@Param注解的区别
    1、spring中@Param(importorg.springframework.data.repository.query.Param;)intselectRoleCount(@Param("businessId")IntegerbusinessId,@Param("memberId")Lo......
  • 【Elasticsearch】整合Spring Data Elasticsearch
    整合SpringDataElasticsearch如何查看官方文档(了解)官方文档:​​JavaHighLevelRESTClient|JavaRESTClient[6.8]|Elastic​​下面是获得文档的方式(可以不用看):步......
  • 系统运维01
    Linux简介Linux的发行版说简单点就是将Linux内核与应用软件做一个打包。较知名的发行版有:Ubuntu、RedHat、CentOS、Debain、Fedora、SuSE、OpenSUSE、TurboLinux......
  • springmvc创建后缺少WEB-INF解决
    右键项目=>properties修改项目模块为3.1   在src/main/webapp创建WEB-INF文件夹   在WEB-INF中创建名为web.xml文件并粘贴以下代码<?xmlversion="1.0"......
  • springmvc启动需要的基础依赖
    <properties><spring.version>5.2.8.RELEASE</spring.version></properties><dependencies><!--此依赖会关联引用Spring中的所有基础ja......
  • 【LOJ101】最大流(Dinic)
    problem给定n个点,m条边的有向图求源点s到汇点的最大流solution最大流模板,,不会看笔记吧。。。codes#include<iostream>#include<algorithm>#include<queue>#include<cstring>......
  • 【LOJ101】最大流(Edmonds-Karp)
    problem给定n个点,m条边的有向图求源点s到汇点的最大流solution最大流模板,,不会看笔记吧。。。codes//Edmonds-Karp#include<iostream>#include<algorithm>#include<queue>#in......
  • 【NOIP2010】【codevs1069】关押罪犯(二分答案+二分图染色)
    problem将n个罪犯分别关押进2座监狱每2个罪犯之间有一个冲突值,当他们在同一监狱时就会爆发让爆发的冲突值(最大的那个)最小,求那个最小值solution考虑判定:是否存在一种分配方案......
  • 【NOIP2001】【codevs1011】数的计算
    problemsolutioncodes#include<iostream>usingnamespacestd;constintmaxn=1010;intf[maxn];intmain(){intn;cin>>n;for(inti=1;i<=n;i++){......
  • Spring25 - JdbcTemplate
    JdbcTemplate简介Spring框架对JDBC进行封装,使用JdbcTemplate方便实现对数据库操作准备工作①搭建子模块搭建子模块:spring-jdbc-tx②加入依赖<dependencies>......