6、切面(AOP)相关注解
Spring支持AspectJ的注解式切面编程。
@Aspect 声明一个切面
@After 在方法执行之后执行(方法上)
@Before 在方法执行之前执行(方法上)
@Around 在方法执行之前与之后执行(方法上)
@PointCut 声明切点
在java配置类中使用@EnableAspectJAutoProxy注解开启Spring对AspectJ代理的支持
7、@Bean的属性支持
@Scope设置类型包括:
设置Spring容器如何新建Bean实例(方法上,得有@Bean)
① Singleton
(单例,一个Spring容器中只有一个bean实例,默认模式),
② Protetype
(每次调用新建一个bean),
③ Request
(web项目中,给每个http request新建一个bean),
④ Session
(web项目中,给每个http session新建一个bean),
⑤ GlobalSession
(给每一个 global http session新建一个Bean实例)
8、@Value注解
(1)支持如下方式的注入:
注入普通字符
注入操作系统属性
注入表达式结果
注入其它bean属性
注入文件资源
注入网站资源
注入配置文件
(2)@Value三种情况的用法。
${}是去找外部配置的参数,将值赋过来
#{}是SpEL表达式,去寻找对应变量的内容
#{}直接写字符串就是将字符串的值注入进去
9、环境切换
@Profile
指定组件在哪个环境的情况下才能被注册到容器中,不指定,任何环境下都能注册这个组件。
@Conditional
通过实现Condition接口,并重写matches方法,从而决定该bean是否被实例化。
10、异步相关
@EnableAsync
配置类中通过此注解开启对异步任务的支持;
@Async
在实际执行的bean方法使用该注解来声明其是一个异步任务(方法上或类上所有的方法都将异步,需要@EnableAsync开启异步任务)
11、定时任务相关
@EnableScheduling
在配置类上使用,开启计划任务的支持(类上)
@Scheduled
来申明这是一个任务,包括cron,fixDelay,fixRate等类型(方法上,需先开启计划任务的支持)