Spring学习笔记Day2: 装配Bean

版权声明:本文为博主原创,未经允许请不要转载哦 https://blog.csdn.net/weixin_43277507/article/details/88930274

《Spring实战》学习笔记:装配Bean

一、装配

Spring框架的核心是Spring容器。容器负责管理应用中组件的生命周期,它会创建这些组件并保证他们的依赖能得到满足。创建应用对象之间协作关系的行为称为装配,这也是依赖注入的本质。

二、装配Bean的三种方式

2.1 自动化配置

Spring从两个角度来实现自动化装配:
1、组件扫描(component scanning):Spring会自动发现应用上下文中所创建的bean。注意,组件扫描默认是不启用的,需要显式配置一下。
2、自动装配(autowiring):Spring自动满足bean之间的依赖。@Autowired(Spring特有的注解) @Inject(来源于Java依赖注入规范)

2.2 基于Java的配置

1、创建配置类
创建JavaConfigure类的关键在于为其添加@Configuration注解。该注解表明这个类是一个配置类,应该包含在Spring应用上下文中如何创建bean的细节。
2、申明简单的bean
@Bean注解会告诉Spring这个方法会返回一个对象,该对象要注册为Spring应用上下文中的bean,方法体中包含了产生bean实例的逻辑。

@Bean
public CompactDisc sgtPeppers(){
     return new SgtPeppers();
}

3、借助JavaConfig实现注入
在JavaConfig中装配bean的最简单的方式是引用创建bean的方法。需要注意的是,sgtPeppers()方法添加了@Bean注解,Spring将会拦截所有对它的调用,确保直接返回该方法所创建的bean,而不是每次都对其进行实际的调用。在默认情况下,Spring中的bean都是单例的。

@Bean
public CDPlayer cdPlayer(){
 return new CDPlayer (sgtPeppers());
}

2.3 基于XML的显式配置

1、创建XML配置规范
要创建一个XML文件,以<bean>元素为根。
2、声明一个简单的<bean>
没有明确给定id,这个bean将会根据全限定类名命名。

<bean class = "Soundsystem.SgtPeppers" />

尽管自动化的bean命名很方便,但极不方便在之后引用。我们需要给定id属性。

<bean id="compactDisc" class = "Soundsystem.SgtPeppers" />

3、借助构造器注入初始化bean
4、设置属性

三、总结

1、尽可能地使用自动装配机制,减少显示配置的使用。在必须使用显示配置的时候,尽量使用类型安全、功能更强大的基于Java的配置。当想要使用便利的XML命名空间,并且在基于Java的配置中没有同样的实现时,才应该使用基于XML的显式配置。
2、JavaConfig优于XML点在于,前者功能更强大,类型安全、易于重构。

猜你喜欢

转载自blog.csdn.net/weixin_43277507/article/details/88930274