从零开始学Spring(五)——分模块配置

本文介绍了在多人开发项目中如何进行Spring的分模块配置,以解决协同开发的问题。主要探讨了两种配置方式:1) 加载时添加多个配置文件名称;2) 在一个配置文件中引入其他配置文件。在实际开发中,更常见的是通过共用配置文件引入各开发人员的个性化配置,以实现配置的整合。

      在项目开发的过程中,往往有多个开发人员共同完成一个业务功能,而每个开发人员都拥有属于自己的配置文件applicationContext.xml,于是需要把这些配置文件整合起来,实现项目业务功能,分模块配置就是解决多人开发的协同问题。

      主要有以下两种方式进行配置

  • 在加载时添加多个配置文件名称
  1. 配置文件

开发人员张三的配置文件applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--
   id:为自己起的名称
   class:为类的全路径
   init-method:对象创建时调用的初始化方法
   destory-method:对象销毁时调用的销毁方法
   scope:bean的作用范围,默认为singleton
    -->
    <!--开发人员张三的配置文件-->
    <bean id="userDao" class="com.ph.demo1.UserDaoOrcleImpl"
          init-method="initMethod" destroy-method="destoryMethod"
          factory-method="create"/>
</beans>

开发人员李四的配置文件applicationContext1.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--开发人员李四的配置文件-->
    <bean id="userDao1" class="com.ph.demo1.UserDaoMysqlImpl"/>
</beans>
  1. 编写接口类
public interface UserDao {
    public void save();
    public void delete();
}
  1. 编写实现类UserDaoOrcleImpl
public class UserDaoOrcleImpl implements UserDao {
    public UserDaoOrcleImpl(){
        System.out.println("执行无参构造方法");
    }
    public static UserDaoOrcleImpl create(){
        System.out.println("执行了create方法");
        return new UserDaoOrcleImpl();
    }
    @Override
    public void save() {
        System.out.println("orcle-save");
    }

    @Override
    public void delete() {
        System.out.println("orcle-delete");
    }

    public void initMethod() {
        System.out.println("执行初始化方法");
    }

    public void destoryMethod() {
        System.out.println("执行销毁方法");
    }
}
  1. 编写实现类UserDaoMysqlImpl
public class UserDaoMysqlImpl implements UserDao{
    private String name;

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public void save() {
        System.out.println("mysql-save"+name);
    }

    @Override
    public void delete() {
        System.out.println("mysql-delete");
    }
}
  1. 编写测试类
public class test {
 public static void main(String[] args){
     ApplicationContext applicationContext= new ClassPathXmlApplicationContext("applicationContext.xml","applicationContext1.xml");
     UserDao userDao = (UserDao)applicationContext.getBean("userDao");
     userDao.save();
     UserDao userDao1 = (UserDao)applicationContext.getBean("userDao1");
     userDao1.delete();
 }
}

运行结果

  • 在一个配置文件中引入另一个配置文件

直接在张三的配置文件中引入李四的配置文件,在加载配置文件的时候只需要加载张三的配置文件即可

1、配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--
   id:为自己起的名称
   class:为类的全路径
   init-method:对象创建时调用的初始化方法
   destory-method:对象销毁时调用的销毁方法
   scope:bean的作用范围,默认为singleton
    -->
    <!--开发人员张三的配置文件-->
    <bean id="userDao" class="com.ph.demo1.UserDaoOrcleImpl"
          init-method="initMethod" destroy-method="destoryMethod"
          factory-method="create"/>
    <!--引入开发人员李四的配置文件-->
    <import resource="applicationContext1.xml"/>
</beans>

2、测试类

public class test {
 public static void main(String[] args){
     ApplicationContext applicationContext= new ClassPathXmlApplicationContext("applicationContext.xml");
     UserDao userDao = (UserDao)applicationContext.getBean("userDao");
     userDao.save();
     UserDao userDao1 = (UserDao)applicationContext.getBean("userDao1");
     userDao1.delete();
 }
}

运行结果

      综上所述,两种方式都可以实现分模块配置,而且效果也是相同的。在日常开发工作中,我们更多的是使用第二种方式,写一个共用的配置文件,然后在这个共用的配置文件中引入不同开发人员的配置文件,达到整合的目的。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值