spring配置文件中分别使用多个properties文件

2023-10-28

spring配置文件中分别使用多个properties文件

在使用spring时,有时候需要为了模块配置方便有时候需要针对不同的模块建立不同的applicationContext的配置文件,然后在对应模块的配置文件中对相应的模块进行单独配置。

 

1、加载不同模块的配置文件

首先加载不同的配置文件用于针对不同的模块配置:如

    applicationContext-db.xml  用于数据库相关的配置

    applicationContext-interceptors.xml  用于拦截器相关的配置

    applicationContext-memcached.xml  用于memcached缓存相关的配置

之后在web.xml指定添加所有指定前缀的配置,如下指定加载所有“applicationContext-”前缀的配置:

 

[html]  view plain  copy
 
 print?
  1. <context-param>  
  2.   <param-name>contextConfigLocation</param-name>  
  3.   <param-value>classpath:applicationContext-*.xml</param-value>  
  4. </context-param>  

 

2、加载使用它不同的properties文件

不同配置文件中加载不同的属性配置文件并属性值,如

    applicationContext-db.xml  中加载jdbc.properties属性配置用于获取jdbc的相关配置信息。

    applicationContext-memcached.xml 中加载memcached.properties的属性文件用于获取memcached缓存的相关配置信息。

实现上主要是使用spring提供的org.springframework.beans.factory.config.PropertyPlaceholderConfigurer bean来在不同的xml配置中加载不同的属性配置文件,否则直接使用property-placeholder加载时第二个配置文件无法成功加载,xml无法获取到相关的配置。spring加载属性文件方法如下:

 

[html]  view plain  copy
 
 print?
  1. <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
  2.     <property name="locations">  
  3.         <list>  
  4.         <value>classpath:jdbc.properties</value>  
  5.         </list>  
  6.     </property>  
  7.     <property name="ignoreUnresolvablePlaceholders" value="true" />  
  8. </bean>     



 

如下为applicationContext-db.xml中的完整配置,applicationContext-memcached.xml中的配指定不哦那个的classpath为不同的属性配置文件即可:

 

[html]  view plain  copy
 
 print?
    1. <?xml version="1.0" encoding="UTF-8"?>    
    2. <beans xmlns="http://www.springframework.org/schema/beans"    
    3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
    4.     xmlns:p="http://www.springframework.org/schema/p"  
    5.     xmlns:aop="http://www.springframework.org/schema/aop"   
    6.     xmlns:context="http://www.springframework.org/schema/context"  
    7.     xmlns:jee="http://www.springframework.org/schema/jee"  
    8.     xmlns:tx="http://www.springframework.org/schema/tx"  
    9.     xsi:schemaLocation="    
    10.         http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd  
    11.         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd  
    12.         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd  
    13.         http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.3.xsd  
    14.         http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">    
    15.   
    16.     <!-- 加载数据库属性配置文件 -->  
    17.     <!-- <context:property-placeholder location="classpath:jdbc.properties" /> -->  
    18.       
    19.     <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
    20.         <property name="locations">  
    21.             <list>  
    22.             <value>classpath:jdbc.properties</value>  
    23.             </list>  
    24.         </property>  
    25.         <property name="ignoreUnresolvablePlaceholders" value="true" />  
    26.     </bean>     
    27.       
    28.     <!--  dataSource configuration -->  
    29.     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">  
    30.         <property name="jdbcUrl" value="${jdbc.url}" />  
    31.         <property name="driverClass" value="${jdbc.driverClassName}" />  
    32.         <property name="user" value="${jdbc.username}" />  
    33.         <property name="password" value="${jdbc.password}" />  
    34.         <property name="minPoolSize" value="10" />  
    35.         <property name="maxPoolSize" value="100" />  
    36.         <property name="acquireIncrement" value="3" />  
    37.         <property name="maxIdleTime" value="60" />  
    38.         <property name="checkoutTimeout" value="18000" />  
    39.         <property name="idleConnectionTestPeriod" value="180" />  
    40.     </bean>     
    41.       
    42.     <!-- sessionFactory configuration -->  
    43.     <bean id="sessionFactory"  
    44.         class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">  
    45.         <property name="dataSource">  
    46.             <ref bean="dataSource" />  
    47.         </property>  
    48.         <property name="configLocation" value="classpath:hibernate.cfg.xml"/>  
    49.         <!-- 自动扫描注解方式配置的hibernate类文件 -->  
    50.         <property name="packagesToScan">  
    51.             <list>  
    52.                 <!-- Add model package to here. -->  
    53.                 <value>api.landsem.db.model</value>  
    54.             </list>  
    55.         </property>  
    56.         <property name="hibernateProperties">  
    57.             <value>  
    58.                 hibernate.dialect=${hibernate.dialect}  
    59.                 hibernate.query.substitutions=${hibernate.query.substitutions}  
    60.                 hibernate.cache.provider_class=${hibernate.cache.provider_class}  
    61.                 hibernate.hbm2ddl.auto=${hibernate.hbm2ddl.auto}  
    62.                 hibernate.show_sql=${hibernate.show_sql}  
    63.             </value>  
    64.         </property>         
    65.     </bean>   
    66.       
    67.     <bean id="passwordEncoder"  
    68.         class="org.springframework.security.authentication.encoding.ShaPasswordEncoder" />  
    69.           
    70.     <bean id="saltSource"  
    71.         class="org.springframework.security.authentication.dao.ReflectionSaltSource">  
    72.         <property name="userPropertyToUse" value="salt" />  
    73.     </bean>  
    74.       
    75.     <!-- ==============add db dao package to here===================== -->  
    76.     <context:component-scan base-package="api.landsem.db.dao.impl" />  
    77.       
    78.     <!-- ======================================Transactional configuration============================================= -->  
    79.     <!-- Enable @Transactional support -->  
    80.     <tx:annotation-driven transaction-manager="transactionManager"/>   
    81.       
    82.     <!-- 配置事务管理器 -->  
    83.     <bean id="transactionManager"  
    84.         class="org.springframework.orm.hibernate4.HibernateTransactionManager">  
    85.         <property name="sessionFactory" ref="sessionFactory" />  
    86.     </bean>    
    87.   
    88.     <!-- ===============Add db service package to here=================== -->  
    89.     <context:component-scan base-package="api.landsem.db.service.impl" />  
    90.       
    91.     <!-- database handler. -->  
    92.     <context:component-scan base-package="api.landsem.db.handler.impl" />           
    93. </beans>  

转载于:https://www.cnblogs.com/handsome1013/p/7472898.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spring配置文件中分别使用多个properties文件 的相关文章

随机推荐

  • Job thrrew an unhandled exception 是什么报错

    Job threw an unhandled exception 是一个通用的错误信息 它表明在执行一个作业 Job 时发生了未处理的异常 这个错误信息并不提供具体的异常信息 而只是告诉你作业执行过程中出现了未处理的异常 并且该异常没有被适
  • HSQLDB 介绍

    HSQLDB HSQL使用 java 语言编写的免费数据库 相对其他数据库 体积很小 是一个非常轻量级的数据库 不需要安装 而且支持嵌套查询和Indentity主键 下面结合在程序中使用 对 HSQL 作个简要的介绍和使用 一 简介 HSQ
  • ABAP DOI详解(1)

    什么是 DOI DOI 是Desktop Office Integration的缩写 是 SAP 提供的解决与 Office 集成的技术方案 早期 SAP 用 OLE 技术解决 与 Office 集成 OLE 语法参照 VBA 在 ABAP
  • 挂载cifs报错mount error(13): Permission denied

    Linux挂载Windows共享时 报以下错误 mount error 13 Permission deniedRefer to the mount cifs 8 manual page e g man mount cifs 解决方法 用户
  • 网络基本概念

    目录 一 IP地址 1 概念 2 格式 3 特殊IP 二 端口号 1 概念 2 格式 3 注意事项 三 协议 1 概念 2 作用 四 协议分层 1 网络设备所在分层 五 封装与分用 六 客户端和服务器 1 客户端与服务器通信的过程 一 IP
  • AWS EKS集群动态创建卷并挂载

    文章目录 AWS EKS动态创建卷配置 需求 EBS CSI DRIVER 什么是EBS CSI DRIVER 为什么要安装EBS CSI DRIVER 将 Amazon EBS CSI 驱动程序作为 Amazon EKS 附加组件管理 先
  • java 用webservice 获取国内手机号码归属地省份、地区和手机卡类型信息

    提供一个web服务网址供大家学习 http webservice webxml com cn WebServices WeatherWebService asmx 或者 http www webxml com cn zh cn web se
  • 两台Windows文件服务器同步,windows多服务器同步文件

    windows多服务器同步文件 内容精选 换一换 当创建文件系统后 您需要使用云服务器来挂载该文件系统 以实现多个云服务器共享使用文件系统的目的 本章节以Windows 2012版本操作系统为例进行CIFS类型的文件系统的挂载 同一SFS容
  • 差分电流采样电路解读

    电流差分采样电路如上图所示 这也是经典的电压差分采样电路 电流采样是通过一个小电阻 约几毫欧到几十毫欧之间 将电流信号转换成电压信号来进行采样 原理比较简单 但在实际测试过程中存在一些问题 现在对这些问题进行记录并解释 问题如下 1 采样电
  • 博途组态阀岛_SMC EX260总线阀岛

    在博途中组态SMC EX260 SPN根据SMC EX260 SPN操作手册指令配置参数以控制每个点位 去SMC官网下载EX260 GSD文件及EX260 SPN operation manual操作手册 https www smc eu
  • 谈一谈浏览器与Node.js中的JavaScript事件循环,宏任务与微任务机制

    JavaScript中的异步代码 JavaScript是一个单线程非阻塞的脚本语言 这代表代码是执行在一个主线程上面的 但是JavaScript中有很多耗时的异步操作 例如AJAX setTimeout等等 也有很多事件 例如用户触发的点击
  • 获得绝对路径的方法 和 除去URI路径留下后面部分的方法

    在JSP中 如果想要获得绝对路径 可以用EL表达式如下所示 以href xxx 为例 a href pageContext request contextPath xxx XXX a 如果需要留下URI后面的部分而去除前面的部分 则可以用下
  • 【已解决】Unable to negotiate with — port 22: no matching host key type found. Their offer: ssh

    标题 mac系统 想通过ssh连接 但出现以下报错 Unable to negotiate with 10 188 5 86 port 22 no matching host key type found Their offer ssh r
  • PyQt学习笔记:QItemSelectionModel.SelectionFlag枚举类的取值和含义

    PyQt学习笔记 QItemSelectionModel SelectionFlag枚举类的取值和含义 在PyQt中 QItemSelectionModel是用于管理模型和视图之间选择的类 它允许您跟踪和操作用户在视图中所做的选择 QIte
  • mysql+怎样查询最后几条_mysql 查询开头或最后几行

    mysql 查询开头或最后几行 Limit 在我们使用查询语句的时候 经常要返回前几条或者中间某几行数据 SELECT FROM table LIMIT offset rows rows OFFSET offset LIMIT 子句可以被用
  • 虚拟服务器设置 要重启,虚拟服务器设置 要重启

    虚拟服务器设置 要重启 内容精选 换一换 如果在创建云耀云服务器时未设置密码 或密码丢失 过期 可以参见本节操作重置密码 运行中的云服务器重置密码需重启后新密码才能生效 请按照提示勾选 自动重启 密码丢失或过期前 已安装密码重置插件 公共镜
  • hutool工具包导出excel文件filename乱码与中文列宽自适应问题

    hutool工具包导出excel文件filename乱码与中文列宽自适应问题 话不多说 直接代码 修改之前 导出excel public static void downloadExcel List
  • 奥托零件价目表

    曲柄连杆机构 代码 名称 车型 状态 指导零售价 150000 活塞0 00 电喷 SC7080 配套 30 111210 活塞环 0 50 SC7080 配套 112 111260 连杆总成 SC7081 配套 51 136080 活塞3
  • Python实现字符串模糊匹配

    在一个字符串中 有时需对其中某些内容进行模糊匹配以实现条件的判定 如在 你好 hello world 中判断是否含有 llo Python中通过re search 方法实现 特别地 对于首位起始的内容匹配 也可通过re match 方法实现
  • spring配置文件中分别使用多个properties文件

    spring配置文件中分别使用多个properties文件 在使用spring时 有时候需要为了模块配置方便有时候需要针对不同的模块建立不同的applicationContext的配置文件 然后在对应模块的配置文件中对相应的模块进行单独配置