学习springboot杂乱无章的笔记

  • A+
所属分类:经验分享

@Resource:
java的注解,属性较多,type无法分辨时可以用name分辨
@Autowired:
spring的注解,一个属性,type无法分辨时需要借助@Qualifier注解才能使用
使用@Autowired方式最好使用构造函数的方式注入。

在 Controller 中使用@RestController注解即可返回 Json 格式的数据(若前后端不分离则不可以)
Spring Boot 中默认使用的 json 解析框架是 jackson

不使用sout输出而是用slf4j

yml 文件对格式要求比较高,比如英文冒号后面必须要有个空格

多个配置信息情况:
配置文件——>配置类@component——>使用时注入@Resource

使用Swagger开发API接口文档

在本地环境或者有网络的环境下,Thymeleaf 均可运行。由于thymeleaf 支持 html 原型,也支持在 html 标签里增加额外的属性来达到 “模板+数据” 的展示方式,所以美工可以直接在浏览器中查看页面效果,当服务启动后,也可以让后台开发人员查看带数据的动态页面效果。

Spring Boot 中会自动识别模板目录(templates/)下的 404.html 和 500.html 文件。我们在 templates/ 目录下新建一个 error 文件夹,专门放置错误的 html 页面,然后分别打印些信息。

在使用模板引擎时,Controller 层就不能用 @RestController 注解了,因为在使用 thymeleaf 模板时,返回的是视图文件名,比如上面的 Controller 中是返回到 index.html 页面,如果使用 @RestController 的话,会把 index 当作 String 解析了,直接返回到页面了,而不是去找 index.html 页面,大家可以试一下。所以在使用模板时要用 @Controller 注解。

rest:面向资源,基于http,可以完成对数据的增删改查
格式固定
第一行 状态码
第二行 返回值类型
第三行 内容长度
第五行 内容

get 获取资源
post 新建(或更新)资源
put 更新资源
delete 删除资源

全局异常处理

面向切面编程AOP:关注分离点
AOP的好处就是你只需要干你的正事,其它事情别人帮你干
每个人各司其职,灵活组合,达到一种可配置的、可插拔的程序结构

Springboot整合MyBatis
基于xml配置文件整合:在 Spring Boot 启动类上添加@MaperScan 注解
基于注解整合: @Select, @Insert, @Update, Delete 四个注解
xml 和注解结合使用

事态管理:事务回滚@Transactional
针对非运行时异常,如果要进行事务回滚的话,可以在 @Transactional 注解中使用 rollbackFor 属性来指定异常,比如 @Transactional(rollbackFor = Exception.class),所以在实际项目中,一定要指定异常。
因为有这中 try…catch,所以导致异常被 ”吃“ 掉,事务无法回滚,那这种怎么解决呢?直接往上抛,给上一层来处理即可,千万不要在事务中把异常自己 ”吃“ 掉。
添加事务后据库中有两条同一用户的信息:这个问题可以避免,第一,把事务去掉即可(不推荐);第二,在调用该 service 的地方加锁,保证锁的范围比事务的范围大即可。

自定义事件
监听事件的监听器
手动发布事件
在控制器中使用

继承类(前后端分离)
或者配置拦截器时将静态资源放开或者直接实现WebMvcConfigurer接口(前后端不分离)

JMS 只是接口,不同的提供商或者开源组织对其有不同的实现,ActiveMQ 就是其中之一,它支持JMS,是 Apache 推出的,用在异步消息的处理上,所谓异步消息即消息发送者无需等待消息接收者的处理以及返回,甚至无需关心消息是否发送成功。

w3cjava