`
伊然01
  • 浏览: 307048 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

spring中装载多个配置文件

阅读更多
spring中装载多个配置文件的解决方法(2007-08-05 19:02:27)转载

当spring中同时存在多个配置文件时,你必须同时加载它,那你怎么办呢?我所知道的方法以下几种:
1.使用监听器或servlet,当然也可以自己写类实现

这种方法要使用多个配置文件只需在web.xml中加入一个
<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>

/WEB-INF/applicationContext-hibernate.xml,/WEB-INF/applicationContext.xml
</param-value>
</context-param>

多个配置文件用逗号或空格分开即可,你可以选择用以下几种方法读取值:

(1)

    String relativePath = this.getServlettContext().getInitParameter(
     "contextConfigLocation");

   String[] ctxs = filePath.split(",");

ApplicationContext orderServiceContext = new

ClassPathXmlApplicationContext(ctxs);

(2)

WebApplicationContext context = WebApplicationContextUtils.getRequiredWebApplicationContext(super.getServletContext());



2.通过一个父配置文件将所有子配置文件导入。
在配置文件中有一个标签import,它能把其它的bean定义配置文件导入到父文件夹中,我就是用这种做的,下面粘贴出我测试用的代码:

web.xml配置:

<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/config/spring/applicationContext.xml</param-value>
</context-param>

主配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
       <!--  hibernate配置开始   -->

       <import resource="spring_hibernate.xml" />

       <!--  hibernate配置结束  -->


       <!--  bean配置开始   -->

       <import resource="spring_beans.xml" />

       <!--  bean配置结束  -->


<!--  事务配置开始  -->
<bean id="baseService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
  <property name="transactionManager" ref="transactionManager" />
  <property name="target">
   <list>
    <ref bean="test" />
   </list>
  </property>
  <property name="proxyTargetClass">
   <value>true</value>
  </property>
  <property name="transactionAttributes">
   <props>
    <prop key="get*">PROPAGATION_REQUIRED,readOnly,-Exception</prop>
    <prop key="find*">PROPAGATION_REQUIRED,readOnly,-Exception</prop>
    <prop key="save*">PROPAGATION_REQUIRED,-Exception</prop>
    <prop key="insert*">PROPAGATION_REQUIRED,-Exception</prop>
    <prop key="update*">PROPAGATION_REQUIRED,-Exception</prop>
    <prop key="remove*">PROPAGATION_REQUIRED,-Exception</prop>
    <prop key="*">readOnly,-Exception</prop>
   </props>
  </property>
</bean>
<!--  事务配置结束  -->


<!--   资源文件,国际化信息开始   -->
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
  <property name="basenames">
   <list>
    <value>com.wzw.messages.messages</value>
   </list>
  </property>
</bean>
<!--   资源文件,国际化信息结束   -->


<!--  struts配置开始   -->

      <import resource="spring_struts.xml" />

<!--  struts配置结束   -->

</beans>



spring_hibernate.xml:



<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

<!-- 配置数据库连接池开始-->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  <property name="driverClassName">
   <value>com.mysql.jdbc.Driver</value>
  </property>
  <property name="url">
   <value>jdbc:mysql://localhost:3306/blog?useUnicode=true&amp;characterEncoding=UTF-8</value>
  </property>
  <property name="username">
   <value>root</value>
  </property>
  <property name="password">
   <value>123456</value>
  </property>
</bean>
<!-- 配置数据库连接池结束-->


<!--  hibernate配置开始  -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  <property name="dataSource" ref="dataSource" />
  <property name="hibernateProperties">
   <props>
    <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
    <prop key="hibernate.show_sql">true</prop>
   </props>
  </property>
  <property name="mappingDirectoryLocations">
   <list>
    <value>classpath:/com/wzw/hibernate/hbm</value>
   </list>
  </property>
</bean>



<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  <property name="sessionFactory" ref="sessionFactory" />
</bean>

<bean id="jdbcExceptionTranslator" class="org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator">
  <property name="dataSource" ref="dataSource" />
</bean>

<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
  <property name="sessionFactory" ref="sessionFactory" />
  <property name="jdbcExceptionTranslator" ref="jdbcExceptionTranslator" />
</bean>

<bean id="hibernateUtils" class="com.wzw.hibernate.core.HibernateUtils">
  <property name="hibernateTemplate" ref="hibernateTemplate" />
</bean>

<!-- hibernate配置结束 -->

</beans>



spring_beans.xml:



<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

<bean id="test" class="com.wzw.daoImpl.testImpl">
  <property name="dataSource" ref="dataSource" />
</bean>
</beans>



spring_struts.xml:



<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

<!--  struts配置开始   -->
  <bean name="/user/useraccountaction" class="com.wzw.struts.action.UserAccountAction" singleton="false">
</bean>
<!--  struts配置结束   -->

</beans>



3.使用ClassPathApplicationContext。这个类会自动从classpath目录中加载所有的配置文件,不过这个类好像只适用本地调试时用的。

分享到:
评论

相关推荐

    spring IOC反射装载bean

    在Spring-Demo中,我们可能会看到一个实际的例子,包括`beans.xml`配置文件,一个或多个Java类,以及如何通过Spring容器启动并管理这些Bean。这个Demo有助于理解Spring如何通过反射机制加载和管理Bean,以及如何通过...

    Spring源码学习四:BeanDefinition装载前奏曲1

    总结来说,Spring的BeanDefinition装载过程涉及了从XML配置文件解析、BeanDefinition创建、BeanFactory初始化到Bean实例化的多个步骤。在学习源码时,应重点关注BeanDefinition的创建、加载和实例化过程,理解Spring...

    Spring学习总结笔记

    - **WildcardClassLoader**:通过通配符加载多个配置文件,如`classpath:applicationContext-*.xml`。 5. **依赖注入(Dependency Injection, DI)** DI是Spring的核心,它通过XML配置或注解方式来实现对象间的...

    说说在Spring中如何引用外部属性文件的方法

    * order:如果配置文件中定义了多个 PropertyPlaceholderConfigurer,那么可以通过这个属性来指定优先顺序。 * placeholderPrefix:占位符后缀,默认为 ${。 * placeholderSuffix:占位符前缀,默认为 }。 使用 ...

    Spring中文帮助文档

    3.10. 以J2EE RAR文件的形式部署Spring ApplicationContext 3.11. 基于注解(Annotation-based)的配置 3.11.1. @Autowired 3.11.2. 基于注解的自动连接微调 3.11.3. CustomAutowireConfigurer 3.11.4. @...

    第十章 Spring 配置元信息(Configuration Metadata)1

    3. **Spring 容器配置元信息**:这包括XML配置文件中的`beans`元素,它定义了容器的全局属性,如`default-lazy-init`、`default-autowire`等,这些属性影响整个容器的行为。例如,`default-lazy-init`决定了容器是否...

    spring tiles

    1. **配置Spring的Bean容器**:在Spring的配置文件中定义各种Bean,包括Tiles的配置Bean。 2. **定义Tiles的配置文件**:如上所示,在`tiles-def.xml`中定义各个组件。 3. **使用Spring管理Tiles组件**:通过Spring...

    spring笔试题28题选择+2简答

    - **XmlWebApplicationContext**: 专为Web应用程序设计,从Web上下文中加载配置文件。 #### 五、Spring事务管理 **知识点1:Spring事务管理的分类** - **编程式事务管理**: 通过代码显式控制事务的开始、提交或...

    Spring教材

    Spring 2.0引入了注解支持,如`@Component`、`@Service`、`@Repository`和`@Controller`等,使得开发者可以通过在类上添加注解来声明bean,减少了XML配置文件的复杂度。 - **classpath自动搜索组件** 自动组件...

    spring源码导入所需aspectj包

    2. **启用AOP代理**:在Spring配置文件中,你需要开启AOP代理,这可以通过以下方式实现: ```xml ``` 这行配置会自动创建代理以应用切面。 3. **编写Aspect**:在Spring应用中,你可以定义一个名为`Aspect`的...

    spring.net中文手册在线版

    4.15.从其它文件中导入对象定义 4.16.服务定位器访问 第五章. IObjectWrapper接口和类型转换 5.1.简介 5.2.使用IObjectWrapper接口管理对象 5.2.1.读、写普通及嵌套的属性 5.2.2.其它功能 5.3.类型转换 5.3.1.转换...

    Spring.3.x企业应用开发实战(完整版).part2

    4.7 整合多个配置文件 4.8 Bean作用域 4.8.1 singleton作用域 4.8.2 prototype作用域 4.8.3 Web应用环境相关的Bean作用域 4.8.4 作用域依赖问题 4.9 FactoryBean 4.10 基于注解的配置 4.10.1 使用注解定义Bean ...

    spring学习手册

    - 创建一个或多个Bean配置文件,通常命名为`applicationContext.xml`或类似的名称。 - 这些配置文件用于在Spring IoC容器中配置Bean,可以放在classpath下或其他指定目录下。 **创建HelloWorld示例**: 1. 创建一个...

    Springboot为什么加载不上application.yml的配置文件

    综上所述,排查Spring Boot无法加载`application.yml`的问题需要从多个角度入手,包括检查配置文件的位置、类路径设置、IDE配置、打包设置以及日志输出。通过细致的分析和调试,通常可以找到问题所在并解决。

    采用共享jar包部署struts2+spring集成项目会遇到的问题

    3. **命名空间隔离**:在配置文件中,可以使用命名空间来区分不同应用的配置,比如在Struts2的action配置中使用namespace属性。 4. **使用Maven或Gradle**:构建工具可以帮助管理依赖关系,避免引入不必要的库,同时...

    Spring Data JPA中文文档[1.4.3].pdf

    - **Specifications** 是一种灵活的方式来定义查询标准,允许开发者通过组合多个条件来构建复杂的查询。 ##### 3.5 事务 - **事务性查询方法**: 支持自动的事务管理,确保数据的一致性和完整性。 ##### 3.6 锁 -...

    Spring API

    3.10. 以J2EE RAR文件的形式部署Spring ApplicationContext 3.11. 基于注解(Annotation-based)的配置 3.11.1. @Autowired 3.11.2. 基于注解的自动连接微调 3.11.3. CustomAutowireConfigurer 3.11.4. @...

    Spring Bean装载方式代码实例解析

    在XML配置文件中,设值注入可以通过`&lt;property&gt;`标签实现: ```xml 张三"&gt; &lt;property name="password" value="654321"&gt;&lt;/property&gt; &lt;!-- 注入list集合 --&gt; ... ``` 接下来,我们讨论构造注入。这种方式是在...

Global site tag (gtag.js) - Google Analytics