Java 必须掌握的 12 种 Spring 常用注解!你掌握了几种?
@Scope 设置 Spring 容器如何新建 Bean 实例(方法上,得有 @Bean)其设置类型包括:
Singleton (单例,一个 Spring 容器中只有一个 bean 实例,默认模式),Protetype (每次调用新建一个 bean),Request (web 项目中,给每个 http request 新建一个 bean),Session (web 项目中,给每个 http session 新建一个 bean),GlobalSession(给每一个 global http session 新建一个 Bean 实例)
@StepScope 在 Spring Batch 中还有涉及
@PostConstruct 由 JSR-250 提供,在构造函数执行完之后执行,等价于 xml 配置文件中 bean 的 initMethod
@PreDestory 由 JSR-250 提供,在 Bean 销毁之前执行,等价于 xml 配置文件中 bean 的 destroyMethod
6.@Value 注解
@Value 为属性注入值(属性上)支持如下方式的注入:》注入普通字符
@Value("Michael Jackson")String name;
》注入操作系统属性
@Value("#{systemProperties['os.name']}")String osName;
》注入表达式结果
@Value("#{ T(java.lang.Math).random() * 100 }") String randomNumber;
》注入其它 bean 属性
@Value("#{domeClass.name}")String name;
》注入文件资源
@Value("classpath:com/hgs/hello/test.txt")String Resource file;
》注入网站资源
@Value("http://www.javastack.cn")Resource url;
》注入配置文件
Value("${book.name}")String bookName;
注入配置使用方法:① 编写配置文件(test.properties)
book.name=《三体》
② @PropertySource 加载配置文件(类上)
@PropertySource("classpath:com/hgs/hello/test/test.propertie")
③ 还需配置一个
PropertySourcesPlaceholderConfigurer 的 bean。
7.环境切换
@Profile 通过设定 Environment 的 ActiveProfiles 来设定当前 context 需要使用的配置环境。(类或方法上)
@Conditional Spring4 中可以使用此注解定义条件话的 bean,通过实现 Condition 接口,并重写 matches 方法,从而决定该 bean 是否被实例化。(方法上)
8.异步相关
@EnableAsync 配置类中,通过此注解开启对异步任务的支持,叙事性 AsyncConfigurer 接口(类上),点击这里了解使用详情。
@Async 在实际执行的 bean 方法使用该注解来申明其是一个异步任务(方法上或类上_所有的方法都将异步_,需要 @EnableAsync 开启异步任务)
9.定时任务相关
@EnableScheduling 在配置类上使用,开启计划任务的支持(类上)
@Scheduled 来申明这是一个任务,包括 cron,fixDelay,fixRate 等类型(方法上,需先开启计划任务的支持)
10.@Enable*注解说明
这些注解主要用来开启对 xxx 的支持。@EnableAspectJAutoProxy 开启对 AspectJ 自动代理的支持
@EnableAsync 开启异步方法的支持
@EnableScheduling 开启计划任务的支
持
@EnableWebMvc 开启 Web MVC 的配置支持
@
EnableConfigurationProperties 开启对 @ConfigurationProperties 注解配置 Bean 的支持
@EnableJpaRepositories 开启对 SpringData JPA Repository 的支持
@
EnableTransactionManagement 开启注解式事务的支持
@
EnableTransactionManagement 开启注解式事务的支持
@EnableCaching 开启注解式的缓存支持
11.测试相关注解
@RunWith 运行器,Spring 中通常用于对 JUnit 的支持
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration 用来加载配置 ApplicationContext,其中 classes 属性用来加载配置类
@ContextConfiguration(classes={TestConfig.class})
12.SpringMVC 相关注解
@EnableWebMvc 在配置类中开启 Web MVC 的配置支持,如一些 ViewResolver 或者 MessageConverter 等,若无此句,重写 WebMvcConfigurerAdapter 方法(用于对 SpringMVC 的配置)。
评论