【猜你喜欢】Java 必须掌握的20+ 种Spring 常用注解,收藏备用!

[复制链接]
注解自己没有功用的,就和 xml 一样。注解和 xml 都是一种元数据,元数据即诠释数据的数据,这就是所谓设置。

本文首要罗列 Spring|Spring MVC相关注解的简介。

Spring部分

1、声明bean的注解

@Component 组件,没有明白的脚色

@Service 在营业逻辑层利用(service层)

@Repository 在数据拜候层利用(dao层)

@Controller 在展现层利用,控制器的声明(C)

2、注入bean的注解

@Autowired:由Spring供给

@Inject:由JSR-330供给

@Resource:由JSR-250供给

都可以注解在set方式和属性上,保举注解在属性上(了如指掌,少写代码)。

3、Java设置类相关注解

@Configuration 声明当前类为设置类,相当于xml形式的Spring设置(类上)

@Bean 注解在方式上,声明当前方式的返回值为一个bean,替换xml中的方式(方式上)

@Configuration 声明当前类为设置类,其中内部组合了@Component注解,表白这个类是一个bean(类上)

@ComponentScan 用于对Component停止扫描,相当于xml中的(类上)

@WishlyConfiguration 为@Configuration与@ComponentScan的组合注解,可以替换这两个注解

4、切面(AOP)相关注解

Spring支持AspectJ的注解式切面编程。

@Aspect 声明一个切面(类上)

利用@After、@Before、@Around界说建言(advice),可间接将阻挡法则(切点)作为参数。

@After 在方式履行以后履行(方式上)

@Before 在方式履行之前履行(方式上)

@Around 在方式履行之前与以后履行(方式上)

@PointCut 声明切点

在Java设置类中利用@EnableAspectJAutoProxy注解开启Spring对AspectJ代理的支持(类上)

5、@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实例)

@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.cznovel.com")

Resource url;12

》注入设置文件

@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)1

@ContextConfiguration 用来加载设置ApplicationContext,其中classes属性用来加载设置类

@ContextConfiguration(classes={TestConfig.class})1

Spring MVC部分

@EnableWebMvc 在设置类中开启Web MVC的设置支持,如一些ViewResolver大概MessageConverter等,若无此句,重写WebMvcConfigurerAdapter方式(用于对SpringMVC的设置)。

@Controller 声明该类为SpringMVC中的Controller

@RequestMapping 用于映照Web请求,包括拜候途径和参数(类或方式上)

@ResponseBody 支持将返回值放在response内,而不是一个页面,凡是用户返回json数据(返回值旁或方式上)

@RequestBody 答应request的参数在request体中,而不是在间接毗连在地址前面。(放在参数前)

@PathVariable 用于接收途径参数,比如@RequestMapping(“/hello/{name}”)申明的途径,将注束缚在参数中前,即可获得该值,凡是作为Restful的接口实现方式。

@RestController 该注解为一个组合注解,相当于@Controller和@ResponseBody的组合,注解在类上,意味着,该Controller的一切方式都默许加上了@ResponseBody。

@ControllerAdvice 经过该注解,我们可以将对于控制器的全局设置放置在同一个位置,注解了@Controller的类的方式可利用@ExceptionHandler、@InitBinder、@ModelAttribute注解到方式上,

这对一切注解了 @RequestMapping的控制器内的方式有用。

@ExceptionHandler 用于全局处置控制器里的异常

@InitBinder 用来设备WebDataBinder,WebDataBinder用来自动绑定前台请求参数到Model中。

@ModelAttribute 原本的感化是绑定键值对到Model里,在@ControllerAdvice中是让全局的@RequestMapping都能获得在此处设备的键值对。

若有遗漏或有误的地方,希望帮手指出。

【猜你喜好】Java 必须把握的20+ 种Spring 常用注解,收藏备用!-1.gif


【猜你喜好】Java 必须把握的20+ 种Spring 常用注解,收藏备用!-2.jpeg


尝试班开班♥

爱好骑马射箭?爱好是开挖掘机?这个班的同学可以说是很皮了……

【猜你喜好】Java 必须把握的20+ 种Spring 常用注解,收藏备用!-3.jpeg


编程说话排行☇

最难学的10大编程说话,Java排第三?看过缘由你必定认可!

【猜你喜好】Java 必须把握的20+ 种Spring 常用注解,收藏备用!-4.jpeg


专业挑选★

最新威望公布,这个专业结业生职业幸运感最强!能否是你的?
温馨提示:
好向圈www.kuaixunai.com是各行业经验分享交流社区,你可以在这里发布交流经验,也可以发布需求与服务,经验圈子里面禁止带推广链接、联系方式、违法词等,违规将封禁账号,相关产品信息将永久不予以通过,同时有需要可以发布在自己的免费建站官网里面或者广告圈, 下载好向圈APP可以加入各行业交流群 本文不代表好向圈的观点和立场,如有侵权请下载好向圈APP联系在线客服进行核实处理。
审核说明:好向圈社区鼓励原创内容发布,如果有从别的地方拷贝复制将不予以通过,原创优质内容搜索引擎会100%收录,运营人员将严格按照上述情况进行审核,望告知!
回复

使用道具 举报

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

24小时热文