springboot自动装配原理
Spring自动装配原理
spring自动装配是指Spring框架在上下文中自动查找ving装配与Bean相关的属性,从而简化开发者的工作。自动装配有2中方式:
- XML配置文件
- 注解
通过XML文件实现自动装配
在XML配置文件中,可以通过<bean>标签中加入autowired属性来实现自动装配。
autowired属性有几种可选值。如 ByName和byType
byName:Spring会根据类中的setter方法名称在配置文件中查找相同没名次的bean,并注入到属性中。
byType:Spring会自动寻找与属性相同的Bean,并注入到属性中
通过注解实现自动装配
注解方式通过反射机制实现,主要使用autowired注解。在使用注解前,需要在XML中启用注解支持
然后在实体类的属性上添加 autowired注解
public class People {
@Autowired
private Cat cat;
@Autowired
private Dog dog;
private String name;
// getter and setter methods
} 重点
属性类型优先:
Spring会优先根据属性类型在容器中查找对应的组件,找到后赋值。如果找到多个相同类型的组件,在根据名称查找。
@Qualifier注解:
可以与@Autowired搭配使用,指定需要装配的组件ID,而不是使用属性名
public class People {
@Autowired
@Qualifier("cat")
private Cat cat;
} @Autowired(required=false):当找不到匹配的Bean时,不会抛出异常
Spring Boot自动装配原理
Spring Boot自动装配基于Spring Framework的核心原理,即依赖注入和控制反转。Spring Boot通过classpath中的类和jar包,自动配置Spring应用程序所需的组件。
核心注解
@EnableAutoConfiguration:启用自动配置功能
@SpringBootApplication:是一个组合注解,包含@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan
自动配置类
spring Boot通过读取META-INF/spring.factories文件中的配置类,并根据条件注解决定是否将其导入到Spring中
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import(AutoConfigurationImportSelector.class)
public @interface EnableAutoConfiguration {
String ENABLED_OVERRIDE_PROPERTY = "spring.boot.enableautoconfiguration";
Class>[] exclude() default {};
String[] excludeName() default {};
} 条件注解:
Spring Boot使用多种条件注解来控制配置类的加载,如@ConditionalOnClass、@ConditionalOnMissingBean等
总结:Spring自动配置通过XML配置和注解两种方式实现,而Spring Boot进一步简化了自动配置过程,通过核心注解实现按需加载,提高了开发效率
- 本文标签: Spring Boot
- 本文链接: http://119.91.109.247:8443//article/167
- 版权声明: 本文由张亚东原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权