Java 必须掌握的 12 种 Spring 常用注解!你掌握了几种?
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 的配置)。
@Controller 声明该类为 SpringMVC 中的 Controller
@RequestMapping 用于映射 Web 请求,包括访问路径和参数(类或方法上)
@ResponseBody 支持将返回值放在 response 内,而不是一个页面,通常用户返回 json 数据(返回值旁或方法上)
@RequestBody 允许 request 的参数在 request 体中,而不是在直接连接在地址后面。(放在参数前)
@PathVariable 用于接收路径参数,比如 @RequestMapping(“/hello/{name}”)申明的路径,将注解放在参数中前,即可获取该值,通常作为 Restful 的接口实现方法。
评论