Spring全家桶中相关注解的概述和应用

一、Spring的核心注解 https://www.cnblogs.com/rinack/p/9950801.html

1.@Autowired:标记Spring将要解析和注入的依赖关系,主要应用场景:构造函数,set方法或字段领域注入;

2.@Resource:标记Spring将要解析和注入的依赖关系,和@Autowire的功能一样,只是用法略有不同,@Autowired 根据类型注入,@Resource 默认根据名字注入,其次按照类型搜索注入

3.@Bean:方法级注解,是XML元素的直接模拟。 注解支持一些提供的属性,例如init-method,destroy-method,auto-wiring和name,可以在 @Configuration注解或 @Component注解类中使用 @Bean批注;

4.@Value:注解用于为变量和方法参数指定默认值。我们可以使用@Value 注解来读取Spring环境变量以及系统变量 。Spring @Value 注解也支持SpEL;

5.@Qualifier:有助于微调基于注解的自动布线。 可能存在这样的情况:我们创建多个相同类型的bean,并且只想使用属性连接其中一个bean,这可以使用@Qualifier注解以及@Autowired注解来控制;

6.@Profile:如果我们希望Spring仅在特定配置文件处于活动状态时使用 @Component类或 @Bean方法,我们可以使用 @Profile标记它。 我们可以使用注解的value参数配置配置文件的名称;

7.@Import:注解指示一个或多个 @Configuration类进口,允许从另一个配置类加载 @Bean定义。

二、Spring Boot的核心注解(https://www.cnblogs.com/jiyukai/p/9278993.html ,https://www.jianshu.com/p/f526c15a0250

 1.@SpringBootApplication注解是Spring Boot的核心注解,查看其源码可知道它是一个组合注解,主要是:@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan;

 2.@SpringBootConfiguration:这是Spring Boot项目的配置注解,这也是一个组合注解,与@Configuration作用相同,标识这是一个被装载的Bean,在Spring Boot项目中推荐使用@ SpringBootConfiguration替代@Configuration;

 3.@EnableAutoConfiguration:启用自动配置,该注解会使Spring Boot根据项目中依赖的jar包自动配置项目的配置项:如:我们添加了spring-boot-starter-web的依赖,项目中也就会引入SpringMVC的依赖,Spring Boot就会自动配置tomcat和SpringMVC;

4.@ComponentScan:默认扫描@SpringBootApplication所在类的同级目录以及它的子目录,excludeFilters:指定不适合组件扫描的类型。

三、Spring Cloud的常用注解

1.@EnableEurekaServer,@EnableConfigServer,@EnableHystrixDashboard,@EnableZuulProxy,@EnableFeignClients;

2.@EnableDiscoveryClient和@EnableEurekaClient  

共同点就是:都是能够让注册中心能够发现,扫描到该服务。

不同点:@EnableEurekaClient只适用于Eureka作为注册中心,@EnableDiscoveryClient 可以是其他注册中心;

3.@EnableHystrix表示启动断路器,断路器依赖于服务注册和发现;

4.@FeignClient注解中的fallbank属性指定回调类;

5.@Controller 控制层,里面有多个连接;

6.@Service 业务层,一般对于接口和实现;

7.@RequestMapping (value=’’,method={RequestMethod。GET或者POSt})绑定url,@PostMapping @GetMapping;

8.@ResponseBody 注解表示该方法的返回的结果直接写入 HTTP 响应正文(ResponseBody)中,一般在异步获取数据时使用,通常是在使用 @RequestMapping 后,返回值通常解析为跳转路径,加上 @Responsebody 后返回结果不会被解析为跳转路径,而是直接写入HTTP 响应正文中。返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;

9.@RequestParam 可以加也可以不加,可以指定参数是否必传,参数名以及参数默认值;

10.@RequestBody可以将body里面所有的json数据传到后端,后端再进行解析,body 里面的 json 语句的 key 值要与后端实体类的属性一一对应。注意:前端使用$.ajax的话,一定要指定 contentType: "application/json;charset=utf-8;"。

原文地址:https://www.cnblogs.com/wdzhz/p/13370920.html