zoukankan      html  css  js  c++  java
  • 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;"。

  • 相关阅读:
    荷兰国旗问题
    读取文件中数据到数组
    从五个球中选出3个枚举的简单运用
    搜索算法总结
    匿名对象
    欧几里得距离C++代码实现
    用递归法吧字符串S倒序
    利用系统来完成十进制,十六进制,八进制的转换
    DBHelper 使用的是存储过程
    DBHelper的一个小例子
  • 原文地址:https://www.cnblogs.com/wdzhz/p/13370920.html
Copyright © 2011-2022 走看看