导语:

相信现在很多新项目都会首选springboot作为基础进行开发,主要是它摒弃了spring以往项目中大量繁琐的配置,遵循约定大于配置的原则,通过自身默认配置,极大的降低了项目搭建的复杂度。
springboot提供了大量的注解,使得代码更加简洁高效,就让我们来简单看一下springboot提供的相关注解(其实很一部分也是继承于spring的)

1、@SpringBootApplication

启动类配置:

spring boot的常用注解 spring boot基本注解_java


通常直接使用@SpringBootApplication,该注解相当于以下三个注解,

@SpringBootConfiguration:标注当前类是配置类

@EnableAutoConfiguration:是 自动配置的注解 ,这个注解会根据我们添加的组件jar来完成一些默认配置

@ComponentScan:扫描包配置

spring boot的常用注解 spring boot基本注解_spring boot_02


2、@ServletComponentScan

@ServletComponentScan注解后,Servlet、Filter、Listener可以直接通过@WebServlet、@WebFilter、@WebListener注解自动注册,无需其他代码。相关资料3、@Component

spring中使用最多的注解,可以说很多注解都是基于此注解,包括我们常见的@Service、@Controller、@Repository。配合ComponentScan使用,被@Component标注的类会被spring IOC容器管理

4、@Transactional

通过这个注解可以声明事务,可以添加在类上或者方法上。

在spring boot中 不用再单独配置事务管理,一般情况是我们会在servcie层添加了事务注解,即可开启事务。要注意的是,事务的开启只能在public 方法上。并且主要事务切面的回滚条件。正常我们配置rollbackfor exception时 ,如果在方法里捕获了异常就会导致事务切面配置的失效。

【注:需要在启动类上添加@EnableTransactionManagement开启事务支持】

5、@ControllerAdvice

@ControllerAdvice 和 @ExceptionHandler 配合完成统一异常拦截处理。

注:需要返回json格式需要使用@RestControllerAdvice,该注解相当于 @ControllerAdvice +@ResponseBody

6、@Autowired

使用过spring的应该对这个注解都不会陌生,spring的按类型注入,值得注意的是多个相同类型的实例存在时,需要配合 @Qualifier指定其名称,否则会启动报错,相当于java的@Resource(name=“xxx”)

7、@MapperScan

通常使用使用@MapperScan指定要扫描的Mapper类的包的路径,而不需要使用@Mapper每个类去指定

8、@PostMapping @GetMappin

@GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写

@PostMapping是一个组合注解,是@RequestMapping(method = RequestMethod.POST)的缩写

9、@RestController和@Controller

@RestController相当于@Controller+@ResponseBody,使用@RestController直接返回return的数据(如果是对象会默认作序列化处理,即json格式返回)

10、@Async

@Async注解的方法为异步方法,使用此注解需要在启动类上使用@EnableAsync,表示开启异步操作的支持。:本人猜想在同一个class中直接调用标注@Async的类应该不能生效,相当于类方法的直接调用,所以在使用时应该把@Async标注的方法提出来写到其他Component中,在需要调用异步方法的类中调用

11、@Scheduled

执行定时任务注解,如:@Scheduled(cron = "0/5 * * * * ? ")

需要在启动类上添加@EnableScheduling注解,表示开启定义任务的支持

12、@ImportResource导入xml配置文件

13、@Import导入额外的配置信息

14、@RequestParam 获取请求参数的值

15、@PathVaribale 获取url中的数据