当前位置: 首页 > news >正文

学习springboot杂乱无章的笔记

@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 推出的,用在异步消息的处理上,所谓异步消息即消息发送者无需等待消息接收者的处理以及返回,甚至无需关心消息是否发送成功。

相关文章:

  • java计算机毕业设计红河旅游信息服务系统源码+数据库+系统+lw文档+mybatis+运行部署
  • Pytorch 实战 LESSON 16 深度学习视觉入门 上
  • 10.VScode下载---Windows64x
  • java计算机毕业设计互联网保险网站源码+数据库+系统+lw文档+mybatis+运行部署
  • Linux14 NAT网络配置原理 查看网络ip和网关 修改ip地址 指定ip方法 主机名与hosts映射 主机名解析过程
  • SPDK Vhost在线恢复:让I/O飞一会儿
  • 如何判断一个低代码平台是否专业?
  • 达利欧《原则》读书思考笔记
  • C语言动态内存管理、柔性数组(超详细版)
  • 【USB设备设计】-- CDC 设备开发(虚拟串口设备)
  • 用ARM进行汇编语言编程(3)逻辑移位和轮换,条件与分支
  • maltab datenum函数与正则表达式巧用:逐日数据转为逐月数据、日序转月序
  • PTA JAVA02 基础语法1
  • C++ 语言学习 day06 string , 异常
  • Linux命令`ll`的结果解析
  • python3.6+scrapy+mysql 爬虫实战
  • @angular/forms 源码解析之双向绑定
  • 【css3】浏览器内核及其兼容性
  • CSS魔法堂:Absolute Positioning就这个样
  • E-HPC支持多队列管理和自动伸缩
  • extract-text-webpack-plugin用法
  • in typeof instanceof ===这些运算符有什么作用
  • JavaScript 一些 DOM 的知识点
  • JavaScript设计模式与开发实践系列之策略模式
  • JS笔记四:作用域、变量(函数)提升
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • nodejs调试方法
  • Python学习笔记 字符串拼接
  • uva 10370 Above Average
  • 对JS继承的一点思考
  • 对超线程几个不同角度的解释
  • 基于web的全景—— Pannellum小试
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 思否第一天
  • 探索 JS 中的模块化
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 一天一个设计模式之JS实现——适配器模式
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • 通过调用文摘列表API获取文摘
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • (9)STL算法之逆转旋转
  • (pojstep1.1.2)2654(直叙式模拟)
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (论文阅读30/100)Convolutional Pose Machines
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转)Sql Server 保留几位小数的两种做法
  • (转)树状数组
  • (轉)JSON.stringify 语法实例讲解
  • .NET BackgroundWorker
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • .py文件应该怎样打开?