spring中装载多个配置文件的解决方法

spring boot 配置文件读取-实现配置项装载到静态变量中 spring boot 配置文件(实现配置项装载到静态变量中) 读取默认配置文件 定义javaBean类用于接收配置文件属性值 如上图,通过@ConfigurationProperties(prefix=“person”) ,再加上*@Component*,则可以选择性的读取application.yml中的person对象,对应的yml中应该有如下编写: person: lastName... 阅读详情
 当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目录中加载所有的配置文件,不过这个类好像只适用本地调试时用的。

 

我想上面几种方法已经够用了,实在没必要去找别的了!

通过JLink下载实现工控MCU批量烧录实战案例 利用JLink下载工具实现高效稳定的工控MCU批量烧录,提升产线效率。案例详细解析了脚本配置与自动化流程,突出jlink下载的可靠性和可扩展性,适用于大规模嵌入式部署场景。 阅读详情

相关推荐

基于stm32开发的红外循迹小车

2.L298N电机驱动模块:分别是5V,12V,GND,可以通过外加电源给驱动模块供电,IN1,IN2,IN3,IN4,EN1,EN2,通过给IN口不同的电平,可以达到控制电机正反转,EN口为使能口,可以通过给EN口不同的PWM波,来达到控制小车速度,1.红外循迹模块:检测黑线的原理是向外发射红外线,当没有遇到黑线的时候,返回回来,之后返回高电平,当遇到黑线的时候,红外被吸收,返回高电平,读取相应IO口的电平就可以知道小车此时的大致位置;模块有四个输入接口,分别连接四个TT马达,驱动小车运动;

2301_81374681的博客 1万+

在spring项目中,怎么配置多个spring的配置文件

在项目开发中,伴随着功能越来越多,对于spring自动加载一个applicationContext.xml文件,会出现文件很大的情况。 所以可以采取分文件配置的方式   1.在applicationContext.xml中 &lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;beans xmlns="http://www.springframew...

baobeituping的专栏 259

RAG——从0到1快速搭建RAG应用

本文介绍了基于LangChain框架构建RAG(检索增强生成)应用的技术方案,涵盖核心模块选型与实现流程。技术栈包括:LangChain应用框架、pypdf文档解析、RecursiveCharacterTextSplitter文本分块、bge-small-zh-v1.5向量模型、Faiss向量库和通义千问大模型。文章详细说明了开发环境配置步骤,包括虚拟环境创建、依赖库安装和模型下载。核心代码分为索引、检索、生成三大流程,索引流程完成PDF文档解析、分块和向量化存储;检索流程实现查询向量化和相似度匹配;生成流

小志的博客 590

Spring.profiles多环境配置原理

配置项目 Spring的profiles有两个变量可以配置 spring.profiles.default 默认值,优先级低。当active没有配置时,使用此变量。spring.profiles.active 优先级高,指定当前容器使用哪个profile 一般用法 声明多profile 如果使用spring的profiles机制,第一步要在applicat

supportUAT的专栏 2960

BitLocker加密盘解密实战:从隐藏分区到密钥恢复的全过程

本文深入探讨了BitLocker加密盘在密钥丢失或遗忘情况下的解密实战方法。文章系统性地介绍了从理解加密机制、制作取证镜像,到深度扫描隐藏分区、分析内存转储寻找密钥残留,最终利用恢复密钥解锁加密卷的全过程。重点剖析了非标准恢复路径,为数据恢复和数字取证工作提供了专业的技术框架和实战思路。

weixin_29268385的博客 332

jetson agx orin开箱及接口介绍

jetson agx orin开箱及接口介绍

qq_58728069的博客 1万+

spring多个配置文件的问题。。

 在一个工程个配置多个spring的配置文件,应该是没问题的。 但在测试的时候,我是这样写的: BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext_*.xml");User user = (User)factory.getBean("user");user.setName("l

xiaoyi3317的专栏 2410

【数据挖掘】心跳信号分类预测 之 特征工程 —— 学习笔记(三)

三、特征工程 3.1 看书 常言道,“巧妇难为无米之炊”。在 ML 中,数据和特征将作“米”,模型和算法则为“妇”。若无数量充足的数据、良好表示的特征,再强大的模型也难以得到满意的结果 (garbage in,garbage out)。对于 ML 问题,数据和特征往往决定了结果的上限,而模型、算法的选择及优化则是在逐步接近该上限。 特征工程,顾名思义,是对原始数据进行一系列工程处理,将其提炼为特征,作为输入供算法和模型使用。在本质上,特征工程是一个表示和展现数据的过程。在实际中,特征工程旨在去除...

闻韶 3358

spring加载多个配置文件

 spring加载多个配置文件 加载器目前有两种选择:ContextLoaderListener和ContextLoaderServlet。          这两者在功能上完全等同,只是一个是基于Servlet2.3版本中新引入的Listener接口实现,而另一个基于Servlet接口实现。开发中可根据目标Web容器的实际情况进行选择。 配置非常简单,在web.xml中增加:     

xinew的专栏 1477

(一)企业微信 - 会话内容存档

企业微信获取会话记录。

专打丶小豆豆的博客 2889

量化投资之工具篇一:Backtrader从入门到精通(1)-手把手教你零基础实现一个策略案例

Backtrader是重要的量化框架,本文记录学习该框架的笔记,内容主要基于Backtrader的网站指导文档。虽然该框架目前用于量化投资领域,但是可以作为数据处理的基本架构,进行改造后用于各种数据的处理,尤其适用于对原始数据处理完成后应用一定的策略进行预测以及可视化处理。 1、简介 Backtrader的特点,就是两点: 1、易于使用; 2、参见第1条。 那么如何使用Backtrader呢?比把大象装进冰箱复杂点,一共4步: 创建一个Cerebro引擎: 加入一个Strategy...

仓鼠王的博客 5万+

spring如何使用多个xml配置文件

1, 在web.xml中定义 contextConfigLocation参数.spring会使用这个参数加载.所有逗号分割的xml.如果没有这个参数,spring默认加载web-inf/applicationContext.xml文件. contextConfigLocation classpath*:conf/spring/applicationContext_core*.xml, c

在路上 1万+

注意力机制篇 | YOLOv8改进之在C2f模块添加EMA注意力机制(附2种改进方法)

EMA(Exponential Moving Average)注意力机制是一种用于增强模型性能的注意力机制,它通过对模型的特征图进行加权平均来提取更有用的特征信息。具体来说,EMA注意力机制通过引入一个权重因子来调整特征图中每个位置的重要性,从而使模型能够更好地关注重要的特征。🌈

小哥谈 4180

Spring工厂方法&自动装载

1.Spring 的工厂方法 IoC 通过工厂模式创建 bean 的方式有两种: 静态工厂方法 实例工厂方法 读完配置文件之后,单例就已经创建。 静态工厂 import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @AllArgsConstructor @No...

Joker_Lie的博客 429

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

spring中装载多个配置文件

spring中装载多个配置文件的解决方法(2007-08-05 19:02:27)转载 当spring中同时存在多个配置文件时,你必须同时加载它,那你怎么办呢?我所知道的方法以下几种: 1.使用监听器或servlet,当然也可以自己写类实现 这种方法要使用多个配置文件只需在web.xml中加入一个 contextConfigLocation /WEB-INF...

iteye_16933的博客 233

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【深入Spring系列】源码级深入剖析SpringBoot如何实现自动装载

SpringBoot的自动装载(AutoConfiguration)是其核心功能之一,通过简化配置,使开发者能够快速搭建项目。其实现主要依赖于SpringFramework的条件注解机制和SpringBoot的SPI扩展机制。自动装载的核心机制包括SpringFactoriesLoader加载META-INF/spring.factories文件中的自动配置类,以及@EnableAutoConfiguration注解和AutoConfigurationImportSelector类的配合使用。条件注解如@C

lrj41781196的博客 2290

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Spring配置文件的加载,及装载多个beans.xml文件

1  加载自定义的beans.xml文件 @Test public void testAutoWire() throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext("ioc/autoWire/beanAutoWire.xml");//加载包ioc.autoWire下面的beanAuthWir

CTLLIN的专栏 6262

java 自动装载_spring Bean类自动装载实现

先贴spring的开发文档,有助于大家学习http://shouce.jb51.net/spring/beans.html#beans-factory-class一直想研究一下spring bean的控制反转的实现,废话不多说。1、先建了一个WEB工程,导入相关spring的jar包,装载到tomcat上,成功访问,有不懂的童鞋可以移步http://www.cnblogs.com/mei0619/...

weixin_39983554的博客 281

Spring 学习日记 (1)配置文件的装载

这次就不啰嗦 直接上 (以下资料都是查互联网之后加上自己的理解整理出来的 纯粹作为笔记自己学习下 没有其他什么意思 )Spring最重要的就是IOC和AOP 对于IOC来说在配置文件中你配置好了对象和对象之间的关系 但是你如何来读取这个配置文件呢 首先来看读取配置文件的XmlBeanFactory 在这里面需要指定Resource对象也就是xml文件XmlBeanFactory继承自De

大萌萌德 543

Spring Bean实例创建装载过程分析-spring源码学习(2)

定义阶段主要涉及Bean定义的加载和解析,这一过程的核心是将Bean定义的描述信息映射至BeanDefinition对象中,以便后续的Bean实例化操作使用。通过上述的分析,我们可以看到Spring Bean实例创建装载过程是一个复杂的过程,其中包含多个阶段和细节,这也表明Spring框架的强大之处正是在于这种复杂的Bean实例化和装载机制。如果我们能够了解并熟练地运用Spring Bean实例创建装载的整个过程,相信对于我们开发高质量的应用程序将会大有益处。

pp的博客 621

Spring源码之容器的基本实现:通过Xml配置装载Bean

Spring通过Xml配置来装载Bean的的流程: 读取xml配置文件 》解析Xml并找到对应类的配置 》实例化对象 环境准备 这是一个简单的bean public class User { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } 这是一个简单的bean配置(web.xml) &lt.

u013998466的博客 489

Spring源码解析 配置文件装载与解析

Spring源码解析 配置文件装载与解析 博客分类:  Spring SpringJavaBean 以下内容有部分摘自网络  步骤A. 读取 Resource 文件形成 Document 模型      类图: XmlBeanFactory -> XmlBeanDefinitionReader      Spring 使用 XmlBeanDefinit

evilcry2012的专栏 889

Spring学习笔记 第七章 Ioc自动装载

Spring学习笔记 第七章 Ioc自动装载(Autowire) IoC负责创建对象,DI负责完成对象的依赖注入,通过配置property标签的ref属性来完成,同时Spring提供了另外一种更加简便的依赖注入方式:自动装载,不需要手动配置property,IoC容器会自动选择bean完成注入。 自动装载有两种方式: byname:通过属性名自动装载 byType:通过属性的数据类型自动装载 ...

qq_41684416的博客 874
上一篇: Linux下查看文件夹或目录大小
下一篇: web.xml 配置中classpath: 与classpath*:的区别
mmoooodd
博客等级 码龄18年 35粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值