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文件 的相关文章

  • Java中ArrayList的交集和并集

    有什么方法可以做到这一点吗 我正在寻找 但没有找到 另一个问题 我需要这些方法 以便我可以过滤文件 有些是AND过滤器 有些是OR过滤器 就像集合论中的那样 所以我需要根据所有文件和保存这些文件的联合 相交 ArrayList 进行过滤 我
  • Java中有没有一种方法可以通过名称实例化一个类?

    我正在寻找问题 从字符串名称实例化一个类 https stackoverflow com questions 9854900 instantiate an class from its string name它描述了如何在有名称的情况下实例
  • 如何将本机库链接到 IntelliJ 中的 jar?

    我正在尝试在 IntelliJ 中设置 OpenCV 但是我一直在弄清楚如何告诉 IntelliJ 在哪里可以找到本机库位置 在 Eclipse 中 添加 jar 后 您可以在 Build Config 屏幕中设置 Native 库的位置
  • 为 java 游戏创建交互式 GUI

    大家好 我正在创建一个类似于 java 中的 farmville 的游戏 我只是想知道如何实现用户通常单击以与游戏客户端交互的交互式对象 按钮 我不想使用 swing 库 通用 Windows 看起来像对象 我想为我的按钮导入自定义图像 并
  • 动态选择端口号?

    在 Java 中 我需要获取端口号以在同一程序的多个实例之间进行通信 现在 我可以简单地选择一些固定的数字并使用它 但我想知道是否有一种方法可以动态选择端口号 这样我就不必打扰我的用户设置端口号 这是我的一个想法 其工作原理如下 有一个固定
  • 如何使用assertEquals 和 Epsilon 在 JUnit 中断言两个双精度数?

    不推荐使用双打的assertEquals 我发现应该使用带有Epsilon的形式 这是因为双打不可能100 严格 但无论如何我需要比较两个双打 预期结果和实际结果 但我不知道该怎么做 目前我的测试如下 Test public void te
  • HSQL - 识别打开连接的数量

    我正在使用嵌入式 HSQL 数据库服务器 有什么方法可以识别活动打开连接的数量吗 Yes SELECT COUNT FROM INFORMATION SCHEMA SYSTEM SESSIONS
  • 如何获取之前的URL?

    我需要调用我的网络应用程序的 URL 例如 如果有一个从 stackoverflow com 到我的网站 foo com 的链接 我需要 Web 应用程序 托管 bean 中的 stackoverflow 链接 感谢所有帮助 谢谢 并不总是
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • 来自 dll 的 Java 调用函数

    我有这个 python 脚本导入zkemkeeperdll 并连接到考勤设备 ZKTeco 这是我正在使用的脚本 from win32com client import Dispatch zk Dispatch zkemkeeper ZKE
  • java.lang.IllegalStateException:应用程序 PagerAdapter 更改了适配器的内容,而没有调用 PagerAdapter#notifyDataSetChanged android

    我正在尝试使用静态类将值传递给视图 而不是使用意图 因为我必须传递大量数据 有时我会收到此错误 但无法找出主要原因是什么 Error java lang IllegalStateException The application s Pag
  • Java 集合的并集或交集

    建立并集或交集的最简单方法是什么Set在 Java 中 我见过这个简单问题的一些奇怪的解决方案 例如手动迭代这两个集合 最简单的单行解决方案是这样的 set1 addAll set2 Union set1 retainAll set2 In
  • 从最终实体获取根证书和中间证书

    作为密码学的菜鸟 我每天都会偶然发现一些简单的事情 今天只是那些日子之一 我想用 bouncy castle 库验证 java 中的 smime 消息 我想我几乎已经弄清楚了 但此时的问题是 PKIXparameters 对象的构建 假设我
  • 将 MOXy 设置为 JAXB 提供程序,而在同一包中没有属性文件

    我正在尝试使用 MOXy 作为我的 JAXB 提供程序 以便将内容编组 解组到 XML JSON 中 我创建了 jaxb properties 文件 内容如下 javax xml bind context factory org eclip
  • 在 junit 测试中获取 javax.lang.model.element.Element 类

    我想测试我的实用程序类 ElementUtils 但我不知道如何将类作为元素获取 在 AnnotationProcessors 中 我使用以下代码获取元素 Set
  • Eclipse Maven Spring 项目 - 错误

    I need help with an error which make me crazy I started to study Java EE and I am going through tutorial on youtube Ever
  • 在我的 Spring Boot 示例中无法打开版本 3 中的 Swagger UI

    我在 Spring Boot 示例中打开 swagger ui 时遇到问题 当我访问 localhost 8080 swagger ui 或 localhost 8080 root api name swagger ui 时出现这种错误 S
  • 如何使用mockito模拟构建器

    我有一个建造者 class Builder private String name private String address public Builder setName String name this name name retur
  • 在java中为组合框分配键

    我想添加一个JComboBox在 Swing 中这很简单 但我想为组合中的每个项目分配值 我有以下代码 JComboBox jc1 new JComboBox jc1 addItem a jc1 addItem b jc1 addItem
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其

随机推荐

  • 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的配置文件 然后在对应模块的配置文件中对相应的模块进行单独配置