什么是自动装配
自动装配式bean的依赖方式,它会在spring的上下文自动寻找,并且自动给当前的bean装配其关联的bean属性
在Spring中提供自动装配的常用的设置
1.no
表示使用自动装配,它bean的依赖关系必须通过property元素来定义
2.byType
它式可以根据属性的类型来进行一个自动装配
3.byName
根据属性名来进行一个自动装配
4.constructor
constructor它与bytype的方式类似,唯一不同之处就是它应用于构造器参数
自动装配的原理
拿学生表来举例
首先我们会在我们的Studentservice的实现类中引入我们的StudentMapper(dao接口),如果没有的话我们就会去ApplicationContext.xml中写一个bean表前把相关属性依赖注入进去,如果有的话我们可以直接使用注解@Autowired注入依赖注入,使用注解大大的减少了我们的代码量,这就是我们自动装配的原理
Spring中Bean的作用域
如何通过属性文件配置数据源?
1.把数据源中的相关配置信息放到properties文件中维护
<!-- 1.引入properties文件-->
<context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder>
2.采用propertySourcesPlaceholderConfigure类来加载properties文件
3.在Spring配置文件采用${xxx}的方法引用properties文件中的键值对数据
==========jdbc.properties配置文件===============
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/数据库名?serverTimezone=GMT-8&useUnicode=true&character=utf-8
jdbc.username=root ---->数据库登录的用户名
jdbc.password=root ---->数据库登录的用户名密码
==========================================================================================
<!-- 2.配置数据源(使用的druid的数据连接池)-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${jdbc.driver}"></property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
为什么要拆分Spring配置文件?
1.项目规模变大,配置文件可读性和维护性都会降低
2.多人修改同一配置文件时也容易发生冲突,影响开发效率
拆分方案
1.公用配置(包含数据源、事务等)+每个系统模块一个单独配置文件(包含Dao、Service以及Web控制器)
2.公用配置(包含数据源、事务等)+DAO Bean配置+业务逻辑Bean配置+Web控制器配置