Spring(二)
Spring_自动装配

自动装配: 只声明 bean, 而把 bean 之间的关系交给 IOC 容器来完成
我们先来演示手动装配:


如果是根据名字来进行自动装配,那么这个时候,名字也是一定要对应上才能自动装配成功:

而这个就是根据类型来进行自动的装配:

<!-- 自动装配: 只声明 bean, 而把 bean 之间的关系交给 IOC 容器来完成 -->
<!--
byType: 根据类型进行自动装配. 但要求 IOC 容器中只有一个类型对应的 bean, 若有多个则无法完成自动装配.
byName: 若属性名和某一个 bean 的 id 名一致, 即可完成自动装配. 若没有 id 一致的, 则无法完成自动装配
-->
<!-- 在使用 XML 配置时, 自动装配用的不多. 但在基于 注解 的配置时, 自动装配使用的较多. -->
<bean id="dao" class="com.atguigu.spring.ref.Dao">
<property name="dataSource" value="C3P0"></property>
</bean>
<bean id="service" class="com.atguigu.spring.ref.Service" autowire="byName"></bean>
<bean id="action" class="com.atguigu.spring.ref.Action" autowire="byType"></bean>
还一种就是根据构造器来进行自动装配;

在xml文件里面配置的Bean自动装配的缺点:

在实际的开发当中,我们一般会很少用到自动装配;
Spring_Bean之间的关系

像这样,两个Bean的属性配置有很多的相同的,那么,我们就可以用继承来继承属性:

我们用parent的这个属性就是可以继承了:


若某一个bean的class属性没有指定,那么这个bean就必须是一个抽象的bean:

依赖Bean配置:Bean和Bean之间也是可以配置依赖关系,通过depends-on属性来进行配置



Spring_Bean的作用域


Spring_使用外部属性文件


首先我们要先导入c3p0连接池和mysql驱动:

在xml文件里面进行配置:

我们这样来获取这个数据源:

现在,我们来用外部文件的方式来进行配置数据源:

现在,我们要在spring的配置文件里面进行引用这个外部文件里面的属性:

Spring_SpEL






有这么一个需求:




Spring_管理Bean的生命周期

创建Bean的后置处理器:


这个时候,生命周期就一目了然了:

实际上,我们还可以更细粒度的声明生命周期的方法:需要实现一个接口:BeanPostProcessor接口



接着,我们就在spring的配置文件里面配置这个后置处理器:

这个时候,生命周期的流程就变成这样了:




Spring_通过工厂方法配置Bean
- 静态工厂方法



测试:


- 实例工厂方法




Spring_通过FactoryBean配置Bean



然后,我们在Spring的配置文件里面配置这个Bean就可以了:

我们配置就可以了:

测试:


Spring_通过注解配置Bean(1)


测试:


只扫描指定的类:



这个是我们需要注意的地方:

***
这个是我们需要注意的地方:

Spring_通过注解配置Bean(2)





实际上,这个注解还可以加在入参的前面:

Spring_泛型依赖注入


本文深入探讨Spring框架的关键特性,包括自动装配、Bean管理、依赖注入、生命周期管理及SpEL表达式等,旨在帮助开发者全面理解Spring的工作原理。
8万+

被折叠的 条评论
为什么被折叠?



