目录
拆分Spring配置文件
拆分(Splitting)是将一个整体或复杂的系统、组织、功能、任务等分解成更小、更独立的部分或子项的过程。拆分通常用于简化复杂性、提高可管理性、并行开发或实现模块化设计。
为什么拆分Spring配置文件
a. 项目规模变大,配置文件可读性和维护性都会降低
b. 多人修改同一配置文件时也容易发生冲突,影响开发效率
拆分方案
a. 公用配置(包含数据源、事务等)+每个系统模块一个单独配置文件(包含Dao、Service以及Web控制器)
b. 公用配置(包含数据源、事务等)+DAO Bean配置+业务逻辑Bean配置+Web控制器配置
两种方案各有特色,适用于不同场合
常见的拆分逻辑
①功能拆分逻辑
②职责拆分逻辑
③数据拆分逻辑
④模块化拆分逻辑
⑤组织拆分逻辑
在拆分时需要考虑的几点:
①单一职责原则
②依赖关系管理
③可扩展性和复用性
④性能和资源利用
自动装配
什么是自动装配
自动装配(Autowiring)是Spring框架中的一个特性,用于自动完成依赖注入的过程。它通过在容器中查找匹配类型的Bean,并将其自动连接到需要依赖的地方,从而实现对象之间的关联。
手动装配
<bean id="userMapper" class="mapper.SmsUserMapperImpl"></bean>
<bean id="userService" class="service.UserServiceImpl">
<constructor-arg ref="userMapper"></constructor-arg>
</bean>
自动装配
有两种方式,①xml ②注解 推荐使用注解
①xml
设置<bean>元素的autowire属性
<bean id="userService"
class="cn.cvs.service.sysUser.SysUserServiceImpl" autowire="byName" />
Bean的自动装配
a. No 不使用自动装配 Bean的依赖关系必须通过property元素定义
b. byType 根据属性类型自动装配
c. byName 根据属性名自动装配
d. Constructor 与byType的方式类似,不同之处在它应用于构造器参数
Bean的作用域有几种?
a. Singleton 默认值,以单例模式创建Bean的实例,即容器中该Bean的实例只有一个
b. Prototype 每次从容器获取Bean时,都会创建一个新的实例
c. Request 用于Web应用环境,针对每次HTTP请求都会创建一个实例
d. Session 用于Web应用环境,同一个会话共享同一个实例,不同的会话使用不同的实例
e. Global session 仅在Portlet的Web应用中使用,同一个全局会话共享一个实例,对于非Portlet环境,等同于session
②注解
<context:component-scan base-package="com.mapper,com.service"></context:component-scan>