【01】搭建spring boot单体服务,集成undertow容器
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)