勿忘初心 厚德载物

《深入浅出Spring Boot 2.X》Spring总结

Posted on By JettyLee

Spring 注解

@Primary 当IOC 容器发现多个同样类型的Bean时,优先注入这个注解标识的Bean

@Qualifier 相当于给Bean定义了唯一标识,便于IOC 注入

@Value ${…} 读取配置文件中的值

@Condition 装配前的判断状态

@Profile

​ 对应有Profile机制,以下两个配置项没有设置值时,被@Profile标注的类不会被加载到容器当中。

​ spring.profiles.active>spring.profiles.default 优先级

@DeclareParents 引入新类增强服务

​ value:目标对象

​ defaultImpl:引入增强功能的类

Bean作用域

singleton 默认值,IoC只存在单例

prototype 每次都初始化一个新的Bean

Spring 事务隔离级别

未提交读

允许一个事务去读取另一个事务没有提交的数据。

缺点: 脏读 不可重复读 幻读

读写提交

一个事务只能读取另一个事务已经提交的数据,不能读取未提交的数据

缺点: 不可重复读 幻读

可重复读

缺点: 幻读

串行化

所有SQL 按顺序执行

支持

MySQL 支持4种事务 默认事务:可重复读

Oracle 支持 读写提交和串行化 默认事务:读写提交

Spring MVC 注解

@RequestParam 构建请求参数与方法参数映射关系,默认是不能为空

​ value 请求参数

​ required false 可为空

@RequestBody 请求是JSON数据

@DateTimeFormat 针对时间格式化

​ 不使用该注解,也可在application.properties 加如下配置:

​ spring.mvc.date-format=yyyy-MM-dd

@NumberFormat 针对数字格式化

JSR-303 验证

@NotNull 不能为空

@Future 只能是将来的日期

@DateTimeFormat(pattern=”yyyy-MM-dd”)

@Past 只能是过去的日期

@DecimalMin 最小值 Double

@DecimalMax 最大值 Double

@Min 最小值 Integer

@Max 最大值 Integer

@Range(min=1,max=99,message=”范围为1至99”) 限定范围

@Email 邮箱格式校验

@Size(min=20,max=30) String 字符串长度20-30

注:接收参数用@Valid 验证,

并添加参数 Errors errors

用if(errors.hasErrors()) 做判断