【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)

 

posted @ 2023-02-08 14:32  DarryRing  阅读(293)  评论(0编辑  收藏  举报