准备
项目Boot-swagger-demo
1、SpringBoot简介和基本知识
2、 Swagger助力对接和测试
3、SpringBoot缓存注解
相信很多人已经了解SpringBoot的概念,在这里不对赘述SpringBoot的概念,需要的可以查看早期博客SpringBoot简介
Spring常用web注解
get/post等请求 http://ip:port/api/v1?a=b
@requestParam 用于取url后面的键值对,name=a 对应的value是b
get/post等请求 http://ip:port/api/v1/demo http://ip:port/api/{v1}/demo
@PathVariable 取url路径上对应路径的值
@ModelAttribute
使用在get请求上类似@requestParam的效果
使用在post请求上是content-type = x-www-form-urlencoded,一种form表单
@requestBody
对应post请求是content-type application/json,用于传输json
@RestController 相比@Controller里面增加了@ResponseBody,即默认返回json格式,http的响应为json
@RequestMapping 用于设置controller层请求的路径
@getMapping @postMapping @deleteMapping等等
细分了请求方法类型是GET、POST等;不然也可以在@RequestMapping 参数设置请求类型
CommandLineRunner与PostConstruct
从Java EE5规范开始,Servlet增加了两个影响Servlet生命周期的注解(Annotation):@PostConstruct和@PreDestroy 而且这个方法不能有抛出异常声明。被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Servlet的inti()方法。被@PostConstruct修饰的方法会在构造函数之后,init()方法之前运行。被@PreDestroy 修饰的方法会在服务器卸载Servlet的时候运行,并且只会被服务器调用一次,类似于Servlet的destroy()方法。被@PreConstruct修饰的方法会在destroy()方法之后运行,在Servlet被彻底卸载之前。
之前运行@PostConstruct出现问题,发现在@PostConstruct修饰的方法结束之前,web应用无法正常执行,无法处理web请求。
Spring Boot应用程序在启动后,会遍历CommandLineRunner接口的实例并运行它们的run方法。也可以利用@Order注解(或者实现Order接口)来规定所有CommandLineRunner实例的运行顺序。不过实现CommandLineRunner不会影响其他web请求。
配置加载优先级
SpringBoot配置加载优先级 命令行 > 外部配置文件 > 内部配置文件
验证方式 外部配置文件
mvn clean install 生成可执行jar
在当前目录新建config目录,将yml复制一份到config目录;
修改config下yml文件端口,然后在命令行java -jar启动
验证方式 命令行
java -jar xx.jar --spring.port=10011
简单了解这三种即可,实际上包含大概9种优先级
多环境配置,随机数
随机数 ${random.int} ${random.int[10,20]}
SpringBoot缓存
@EnableCache 注解
swagger配置和使用
之前写的SpringBoot集成swagger;可以参考
swaager可以生成一个可视化的API页面,可以很方便用来自测和联调测试;
启动以后大家很方便可以验证上面讲到的web开发常用注解、swagger的使用以及其他知识点。
项目boot-mybatisplus-demo
1、 持久层框架mybatisPlus
2、校验框架hibernate-validate
3、异步注解@Async
持久化框架MybatisPlus
MybatisPlus官网地址https://mp.baomidou.com/; MybatisPlus是国人基于mybatis开发是持久层框架;
API好用到飞起;自动生成controller、service、dao、bean的代码;
就算不实用自动生成,Ctrl + C Ctrl +V也很快;墙里推荐,提高开发速度;
可以参考之前的写的博客SpringBoot整合MybatisPlus-去xml
校验框架hibernate-validate
Spring提供的校验框架,帮我们解脱哪些if else判断,使用注解的形式好用到飞起;
结合swagger + MybatisPlus 开发速度简直不要太快 ;
可以在controller层结合注解很方便时使用;具体详情参考博客,
很抱歉这个博客没有写,如果需要留言我推荐一篇与你;
异步注解@Async
使用方法
使用@EnableAsync开始Spring的异步使用
在方法名前面加上@Async即可使用,这样调用就会变成异步
修饰在方法上,如果需要返回结果,返回类型为future,通过future.isDone 方法判断结果返回与否
注意事项
异步方法和调用异步方法的方法不能再同一个类
不能在静态方法上使用
应用场景
异步场景情况;
多个操作并行执行;
当然对于初学者来说,还有很多知识点需要掌握;
但是先跟着这两个项目跑起来,可以很快熟悉相关知识,同时加速开发;
Swagger + mybatisPlus + hibernate-validate 应用开发利器!