springboot常用注解

在使用springboot框架时感受最大的就是便捷。很多功能都是可以通过注解开启与使用。
接下来我就说一说我在项目中用到的一些,简单注解与一些常用接口。
1、@RestController注解表示该类所有方法返回JSON格式(相当于@ResponseBody + @Controller)

2、@Service("XXXXX")注解表示该服务类名为XXXXX

3、@Component注解表示将该类交给spring管理注入。

4、@Resource注解用来注入(默认是按照名称来装配注入的,只有当找不到与名称匹配的bean才会按照类型来装配注入)

5、@Autowired注解用来注入(默认是按照类型装配注入的,如果想按照名称来转配注入,则需要结合@Qualifier一起使用)

6、@Value("${xx.xx}")注解用来注入配置文件application.yml里面的配置属性在系统初始化的时候将配置的值注入到定义的属性

7、@Scheduled(cron='0 10 * ?')注解写在方法上那么系统启动后会根据cron表达式在规定的时间执行该方法(也可以@Scheduled(cron = "${etl-cron}")可以通过application.yml中etl-cron的cron表达式实现动态修改 改完需启动系统)

8、@Transactional 注解表示该方法、类加上事务

9、@ConditionalOnProperty(prefix = "portal",name = "sch",havingValue = "enabled",matchIfMissing = true)注解表示添加该注解的方法、类是否初始化。上面示例需在application.yml配置portal.sch = enabled 表示这个值如果和定义的值一样则初始化否则不加载(具体配置方法有很多可以查个资料)
@ConditionalOnBean // 当给定的在bean存在时,则实例化当前Bean
@ConditionalOnMissingBean // 当给定的在bean不存在时,则实例化当前Bean
@ConditionalOnClass // 当给定的类名在类路径上存在,则实例化当前Bean
@ConditionalOnMissingClass // 当给定的类名在类路径上不存在,则实例化当前Bean

10、@ComponentScan(basePackages = {"com.example.*"})该注解主要作用于启动类。当有一些bean没有跟启动类在同一个包下面时启动后会无法注入这些bean,这个时候需要该注解注明哪些包下面启动扫描。


11、@Aspect注解定义该类为切面类

12、@Pointcut("execution( com.web.controller..(..))")注解定义切面,参数有多种写法详细看(

1、execution(): 表达式主体。
2、第一个*号:表示返回类型,*号表示所有的类型。
3、包名:表示需要拦截的包名,后面的两个句点表示当前包和当前包的所有子包,com.sample.service.impl包、子孙包下所有类的方法。
4、第二个*号:表示类名,*号表示所有的类。
5、*(..):最后这个星号表示方法名,*号表示所有的方法,后面括弧里面表示方法的参数,两个句点表示任何参数。)

13、@AfterReturning(returning = "rvt",pointcut = "requestServer()") 注解表示切点方法执行完后执行该方法,returning参数必须和写的切面方法接收参数一样名字


14、@SpringBootApplication(重点面试常问的自动配置)

  它也是 Spring Boot 的核心注解,主要组合包含了以下 3 个     注解:

@SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。

@EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。

@ComponentScan:Spring组件扫描。(上面有介绍)

待续....

你可能感兴趣的:(springboot)