SpringBoot(四)SpringBoot注解
- 启动注解
@SpringBootApplication
启动类默认注解。主要由@EnbleAutoConfiguration,@ComponentScan,@Configuration三个注解组成。
@EnbleAutoConfiguration
开启spring的自动配置,SpringBoot基于所添加的依赖和定义的bean去猜测并配置所需的配置。
@ComponentScan
提供了类似与<context:component-scan>标签的作用,通过basePackageClasses或basePackages属性来指定扫描的包,默认扫描该类所在的包下所有的类。
@Configuration
JavaConfig形式的SpringIOC容器的配置类,Spring为自动扫描并读取其中的配置信息。类似于<beans>的作用
@Bean
在配置类中注册Bean,默认作用域为单例singleton作用域,可通过@Scope(“prototype”)设置为原型作用域。
主要有三个属性,name:Bean名,默认与方法名相同, initMethod:Bean内的初始化方法名, destroyMethod:Bean内的销毁方法名。
@ConfigurationProperties
在配置类中配合@Bean使用,映射配置文件的多个属性。使用prefix属性指定映射属性的前缀。
也可单独使用,配合@Component注册到spring容器中,或者在SpringBoot启动类中使用@EnableConfigurationProperties(xxx.class)注册
- 校验注解
@Valid
在controller类中post请求方法的参数前加上@Valid注解,用于开启请求体的参数校验。参数对象内的属性上通过加入下列注解来实现不同的校验。嵌套对象上也需加上@Valid注解。
@Null | 必须为空 |
@NotNull | 不可为空 |
@Max(num) | 必须为数字且小于等于指定值 |
@Min(num) | 必须为数字且大于等于指定值 |
@AssertFalse | 必须为false |
@AssertTrue | 必须为true |
@Digits(integer,fraction) | 必须为小数,且整数位不超过integer,小数位不超过fraction |
@Future | 必须是未来日期 |
@Past | 必须是过去日期 |
@Pattern(value) | 必须符合指定正则表达式 |
@Size(max,min) | 字符长度必须在max到min之间 |
@NotEmpty | 不可为空,空字符串 |
@NotBlank | 不可为空,空字符串,空格 |
必须是email |
@Validated
在@Valid基础上增加了分组校验。如果参数类被用于多个请求方法中接收参数,可通过分组,实现不同请求方法中校验不同参数。
1. 在@Validated注解内使用分组的接口类,例如@Validated(GroupSave.class)
2. 在用于参数属性校验的注解内使用分组的接口类,例如@NotNull(group={GroupSave.class}) ,即可在使用了GroupSave.class的请求中只校验添加了GroupSave.class校验的参数属性。