java static spring_Java学习笔记38:通过Spring Bean 注入static变量,来设计一套适合测试,开发,生产环境的配置项...

本文介绍了一种在Spring项目中管理不同环境(如开发、测试和生产)配置的方法。通过使用.properties文件并结合Maven插件,可以实现配置的灵活切换,并通过Spring Bean注入将配置值映射到代码中。

这边文章的目的主要是为了在spring开发web项目的时候,让我们的测试,开发,生产环境的配置项

.properties作为配置文件。

我们首先需要建立一个config文件夹,然后创建开发,测试,生产环境的.properties配置项文件。

0818b9ca8b590ca3270a3433284dd417.png

例如,dev.properties文件为开发环境,pre.properties文件为生产环境。

dev.properties配置内容为:

#test

test.username=initphp

那么,我们这个.properties文件的配置,如何打入xml文件中呢?别急,其实很简单,我们需要修改pom.xml

配置pom.xml

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

4.0.0

xxxx.server

xxxx server

war

1.0.0

1.6

3.1.1.RELEASE

1.6.10

1.6.6

UTF-8

dev

dev

true

qa

qa

pre

pre

prod

prod

config/${env}.properties

src/main/resources

true

maven-eclipse-plugin

2.9

org.springframework.ide.eclipse.core.springnature

org.springframework.ide.eclipse.core.springbuilder

true

true

org.apache.maven.plugins

maven-compiler-plugin

2.5.1

1.6

1.6

-Xlint:all

true

true

org.codehaus.mojo

exec-maven-plugin

1.2.1

org.test.int1.Main

主要中配置了各种环境的配置项参数。中,用于读取和替换配置。

替换XML中的配置项变量,我们通过spring bean注入的方式,将配置项参数注入Config.java类中的静态变量。

例如我们主要注入到com.xxxx.xxxx.common.bo.ConfigBo,我们预先定义的一个配置类中。先看一下ConfigBo这个类:

/**

* 常量配置

* @author hanqi

*/

public class ConfigBo {

/** 每页显示页数 */

public static final int PAGE_SIZE              = 20;

public static String    USERNAME         = ""; //被注入的static变量,不能有final终态关键字

//bean注入 USERNAME 必须要用 set函数

public void setUserName(String userName) {

USERNAME = userName;

}

}

我们需要修改xml文件,添加注入的Bean:

这个时候,我们就能在项目中,静态调用ConfigBo.USERNAME这个常量了,而不需要关心测试环境,开发环境以及正式环境的区别了。

xml中的${test.username}实际上是将properties配置文件中的选项值进行了替换,所以在mvn install后,target目录下,查看xml文件,就可以看到userName的值就是"initphp"

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值