Spring import配置文件使用占位符

import使用占位符

连接池切换导入配置的代码:

<import resource="classpath:META-INF/spring/spring-${db.connection.pool}.xml" />

在配置文件添加配置

db.connection.pool=druid

启动直接报错,读取不到配置,因为属性文件的加载在import配置文件之后。

Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'db.connection.pool' in value "classpath:META-INF/spring/spring-${db.connection.pool}.xml"

所以,要在应用启动的时候添加属性

1、添加AppContextInitializer启动类:

public class AppContextInitializer
        implements ApplicationContextInitializer<ConfigurableApplicationContext> {

    private Logger logger = Logger.getLogger(AppContextInitializer.class);

    @Override
    public void initialize(ConfigurableApplicationContext applicationContext) {
        ResourcePropertySource propertySource = null;
        try {
            propertySource = new ResourcePropertySource("classpath:config/db-config.properties");
        } catch (IOException e) {
            logger.error("加载配置文件[config/db-config.properties]失败");
        }
        applicationContext.getEnvironment().getPropertySources().addFirst(propertySource);
    }

}

2、在web.xml中添加配置:

context-param>  
    <param-name>contextInitializerClasses</param-name>  
    <param-value>com.example.AppContextInitializer</param-value>  
</context-param>

启动配置文件加载正常。

原文发布于微信公众号 - Java技术栈(javastack)

原文发表时间:2017-08-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏运维

Redis3.0.7集群部署完整版

Redis集群没有出来前,一直使用Codis集群,现在部署Redis集群看看效果如何。

2732
来自专栏http://www.cnblogs.com

centos6.5编译安装php7

1.安装依赖软件库:   yum install -y libxml2-devel libtool* curl-devel libjpeg-devel libp...

49611
来自专栏蓝天

Unix编程/应用问答中文版 ---6./etc/system可调资源限制

本文出自:[url]http://www.nsfocus.com[/url] 维护:小四 6. /etc/system可调资源限制 6.1 Solari...

873
来自专栏linux驱动个人学习

android ninja【转】

使在Android N的系统上,初次使用了Ninja的编译系统。对于Ninja,最初的印象是用在了Chromium open source code的编译中,在...

1981
来自专栏流柯技术学院

python日志模块---logging

默认情况下,logging将日志打印到屏幕,日志级别为WARNING; 日志级别大小关系为:CRITICAL > ERROR > WARNING > INFO ...

1042
来自专栏大闲人柴毛毛

Java并发编程的艺术(十三)——锁优化

自旋锁 背景:互斥同步对性能最大的影响是阻塞,挂起和恢复线程都需要转入内核态中完成;并且通常情况下,共享数据的锁定状态只持续很短的一段时间,为了这很短的一段时...

3735
来自专栏陈树义

Java日志框架那些事儿

在项目开发过程中,我们可以通过 debug 查找问题。而在线上环境我们查找问题只能通过打印日志的方式查找问题。因此对于一个项目而言,日志记录是一个非常重要的问...

7089
来自专栏web编程技术分享

【Java框架型项目从入门到装逼】第七节 - 学生管理系统项目搭建

2987
来自专栏张善友的专栏

如何合并Git 代码库中牛人的代码到自己的库

github for Windows使用介绍 这篇文章可以很好带我们入门github,同时还带了一个gitshell,这个工具可以运行github的所有命令,命...

2068
来自专栏Java架构

Java程序员必知的并发编程艺术——并发机制的底层原理实现

Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致的更新,线程应该确保通过排他锁单独获得这个变量。

821

扫码关注云+社区

领取腾讯云代金券