自己整理的Spring Boot的注解

Spring Boot注解

注解解析
@MapperScanmybatis的注解,@MapperScan加在应用程序类上,通过指定路径表明对该路径所有的接口都具有@Mapper注解
@Mappermybatis的注解,可以不用再写mapper的xml映射文件,自动生成@Mapper标注的接口的实现类,生成的实现类自带@Component注解
@RequestBody接收的参数来自requestBody,通常用于POST、DELETE请求,用来处理Content-Type不 为 application/x-www-form-urlencoded(比如application/json)编码格式化的数据。用于解读Request请求body的数据,并且绑定在对应的属性上
@RequestParam接收的参数来自requestHeader,通常用于GET请求,也可以用于POST、DELETE等请求,用来处理Content-Type 为 application/x-www-form-urlencoded编码格式化的数据,将数据绑定在注解所在的形参上
@Service用于标注业务层组件
@Controller用于标注控制层组件
@Repository用于标注数据访问组件
@Component泛指组件,当组件不好归类的时候,使用这个注解进行标注,注解在类上表示该类对象将会作为POJO装配到IoC容器中。需要和@ComponentScan组合使用才能使组件扫描到IoC容器中,事实上@SpringBootApplication自带@ComponentScan能扫描所有主程序包内的所有组件
@Autowired假如@Autowired注解在接口上,装配的时候会找唯一的实现类,如果没有则看有没有优先规则@Primary等,还是没有则按以下规则装配。默认按照类型注入,规则是:Spring容器中没有该类型的值,则注入失败;假如只有一个该类型的值,则注入成功;有多个该类型的值,则按照名字匹配。此时假如没有相同名字或者有多个相同名字则匹配失败,有相同名字则注入。如果指定了name属性或者type属性,则只会按照指定的方式查找bean。
@Resource默认按照名字注入,规则是:Spring容器中有多个该名字的值,则注入失败;只有一个该名字的值,则注入成功;没有改名字的值,则按照类型匹配。此时没有相同类型或者有多个相同类型的值,则匹配失败,只有一个相同类型的值则注入成功。如果指定了name属性或者type属性,则只会按照指定的方式查找bean
@DynamicUpdate加在实体类上,比较更新要使用的实体类的字段值和从数据库中查询出来的字段值判断其是否有修改,有修改属性才会作为生成的动态SQL set的字段。值得注意的是,假如数据库的值不是null而对象属性是null,JPA还是会把该null属性作为update字段,解决办法是在update之前先find
@DynamiceInsert有值的属性才会作为动态SQL insert的字段
@RunWithSpringRunner.class实际上继承了SpringJUnit4ClassRunner,没有别的实现,也就是使用JUnit4测试
@SpringBootTest指明该类是SpringBoot测试类
@RestController@Controller+@ResponseBody,将方法返回的对象解析为Json字符串,@Controller方法返回的如果是字符串,并且有该字符串对应的视图则渲染该视图,否则返回字符串就直接返回字符串。
@RequestMapping用于处理地址映射,可以用在类上和方法上,用在类上表示该类所有响应请求的方法都以这个路径为父路径,用在方法上,表示类的地址结合方法的地址为这个方法的访问地址
@GetMapping是@RequestMapping(method = RequestMethod.GET)的缩写,说明这个方法处理的是GET类型的HTTP请求
@JsonProperty当类的属性序列化和反序列化时使用指定的名称
@Transactional
@JsonInclude放在类上可指定返回非空的属性@JsonInclude(Include.NON_NULL)
@Valid可以验证指定的类的属性是否符合符合条件,如果不符合条件则返回验证的message;如果作为形参,后面可以加BindingResult类型的变量,通过bindingResult.getFieldError().getDefaultMessage()获取到错误消息
@JsonFormat可以格式化Json属性值,比如时间可以指定pattern的样式
@ControllerAdvice此注解标注的类内部标有@ExceptionHandler、@InitBinder、@ModelAttribute注解的方法将会应用到所有@RequestMapping的方法上
@RestControllerAdvice是@ControllerAdvice的替代品,此注解标注的类不仅具有@ControllerAdvice注解的功能,并且具有@RestController的功能,即所有方法返回Json格式的数据
@ResponseStatus此注解可以用来指定返回的HTTP状态,如@ResponseStatus(HttpStatus.FORBIDDEN)
@ExceptionHandler
@EnableCaching启用缓存注解
@Transient被该注解标注的实体属性,将不会被录入到数据库中,只作为普通的javaBean属性
@JSONField和@SerializedNameFastJson的@JSONField和Gson的@SerializedName用来指明Json字符串使用的key名称
@Repository
@Configuration标注在类上表示这个一个Java配置文件,Spring容器会根据它来生成IoC容器,然后去装配Bean
@Bean注解在方法上代表方法返回的POJO将会作为Bean(方法名作为Bean名称)装配到Spring IoC容器中;注解在类上与注解在方法上的区别是以类名第一个字母小写的名称作为Bean名称。@Bean和@Component的区别是@Bean注解后就可以装配到IoC容器中,@Component还需要扫描(@ComponentScan)才能装配到IoC容器,且@Bean注解可以将第三方类对象装配到IoC容器中,@Component不能
@ConfigurationProperties使用@Value获取配置文件的值赋值到类属性上过于繁琐时,可以使用@ConfigurationProperties注解在类上一次配置类所有属性,prefix指定配置文件的前缀,使用时要与@Component注解一起使用,这样会得获取到属性值的POJO装配到Spring IoC容器
@ComponentScan可以定义扫描组件的策略,规定包含和排除的组件,一般注解在主程序类上
@EnableRabbit开启基于注解的RabbitMQ模式
@RabbitListener消费者监听队列,可以指定队列名称
@Scheduled表示方法是定时任务,定时任务无需调用,到点执行,需要在主程序类加上@EnableScheduling
@EnableScheduling开启定时任务
@EnableConfigurationProperties一般注解在配置类上,开启配置类注解配置Bean的支持,但不是必须的,@Component或者@Configuration也可以配置Bean
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值