Spring 自动装配方式与对应的注解

Spring提供了4种自动装配Bean依赖关系的策略。

一、Spring的4种自动装配策略

1、byName,根据名称注入:把与Bean属性具有相同名字(或ID)的其他Bean自动装配到Bean对应的属性中,如果没有则该属性不装配。

2、byType,根据类型注入:把与Bean的属性具有相同类型的其他Bean自动装配到Bean对应的属性中。如果没有就不装配。

3、constructor,构造方法注入:把与Bean的构造器入参具有相同类型的其他Bean自动装配到Bean构造器的对应的入参中。

4、autotetect:首先尝试用构造方法注入,失败了就用byType

以上来自《Spring实战》一书中的分类,对Spring中装配方式的分类方式很多,以上应该是根据原理分。有人又将其分为构造方法注入,setter注入,基于注解的注入,我想这可能是根据操作方法分。

 

二、自动装配方式与SpringBoot中的注解的联系

SpringBoot中,我们使用注解来实现依赖注入。根据使用场景可以分为以下两类

1、使用Bean:完成属性、方法的组装。一般用来修饰字段,构造函数,或者设置方法,并做注入。

      我将其理解为子Bean,是作为一个“Bean爸爸”的内部成员来为“Bean爸爸”服务的。

  • @Autowired:属于byType
  • @Resource:属于byName

2、注册Bean:把普通java类实例化到spring容器中,相当于配置文件中的。这个对象的内部可能用到@Autowired , @Resource来完成对象、属性、方法完美组装。——这是个“爸爸Bean”

  • @Component:泛指组件,当组件不好归类的时候,可以使用这个注解进行标注
  • @Controller:标注控制层组件,负责将用户发来的URL请求转发到对应的服务接口
  • @Service:标注业务层组件
  • @Repository:用于标注数据库访问Dao组件
  • @Configration:可理解为用spring的时候xml里面的标签

 

三、Spring Boot中常用的其他注解

  • @SpringBootApplication:注解他们的main函数所在的类
    • =@Configuration+ @EnableAutoConfiguration +@ComponentScan 
  • @ResponseBody:该方法的返回结果直接写入HTTP response body中
  • @RestController=@ResponseBody + @Controller:标注控制层组件
  • @RequestMapping:提供路由信息,负责URL到Controller中的具体函数的映射
  • @GetMapping=@RequestMapping(method = RequestMethod.GET):将HTTP Get 映射到 特定的处理方法上。
  • @PostMapping=@RequestMapping(method = RequestMethod.POST)
  • @PathVariable:获取url中的数据。
  • @ComponentScan 组件扫描,发现和组装一些Bean。
  • @EnableAutoConfiguration自动配置。
  • @SpringBootApplication:申明让spring boot自动给程序进行必要的配置,这个配置等同于:@Configuration ,@EnableAutoConfiguration 和 @ComponentScan 三个配置。
  • @Data 自动生成setter、getter方法
  • @Import:用来导入其他配置类。
  • @ImportResource:用来加载xml配置文件。
  • @Bean:放在方法的上面,而不是类,意思是产生一个bean,并交给spring管理。
  • @Inject:等价于默认的@Autowired,只是没有required属性;

 

 

参考了以下博客,特此感谢!

https://www.jianshu.com/p/686ecfc1a4b8

https://blog.csdn.net/qq_29347295/article/details/78709511

 

 

你可能感兴趣的:(Spring,后台)