Java學習筆記38:通過Spring Bean 注入static變數,來設計一套適合測試,開發,生產環境的配置項
這邊文章的目的主要是為了在spring開發web專案的時候,讓我們的測試,開發,生產環境的配置項
- .properties作為配置檔案。
我們首先需要建立一個config資料夾,然後建立開發,測試,生產環境的.properties配置項檔案。
例如,dev.properties檔案為開發環境,pre.properties檔案為生產環境。
dev.properties配置內容為:
#test test.username=initphp
那麼,我們這個.properties檔案的配置,如何打入xml檔案中呢?別急,其實很簡單,我們需要修改pom.xml
- 配置pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <!-- pom詳細引數配置 --> <modelVersion>4.0.0</modelVersion> <artifactId>xxxx.server</artifactId> <name>xxxx server</name> <packaging>war</packaging> <version>1.0.0</version> <!-- 自定義的引數變數,使用 例如:${org.springframework-version} --> <properties> <java-version>1.6</java-version> <org.springframework-version>3.1.1.RELEASE</org.springframework-version> <org.aspectj-version>1.6.10</org.aspectj-version> <org.slf4j-version>1.6.6</org.slf4j-version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <!-- 配置檔案 --> <profiles> <profile> <id>dev</id> <properties> <env>dev</env> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>qa</id> <properties> <env>qa</env> </properties> </profile> <profile> <id>pre</id> <properties> <env>pre</env> </properties> </profile> <profile> <id>prod</id> <properties> <env>prod</env> </properties> </profile> </profiles> <!-- 依賴的包 --> <dependencies> </dependencies> <!-- 編譯設定 --> <build> <filters> <filter>config/${env}.properties</filter> </filters> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> <plugins> <plugin> <artifactId>maven-eclipse-plugin</artifactId> <version>2.9</version> <configuration> <additionalProjectnatures> <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature> </additionalProjectnatures> <additionalBuildcommands> <buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand> </additionalBuildcommands> <downloadSources>true</downloadSources> <downloadJavadocs>true</downloadJavadocs> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.5.1</version> <configuration> <source>1.6</source> <target>1.6</target> <compilerArgument>-Xlint:all</compilerArgument> <showWarnings>true</showWarnings> <showDeprecation>true</showDeprecation> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.2.1</version> <configuration> <mainClass>org.test.int1.Main</mainClass> </configuration> </plugin> </plugins> </build> </project>
主要<profiles>中配置了各種環境的配置項引數。<filters>中,用於讀取和替換配置。
- 替換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:
<bean class="com.xxxx.xxxx.common.bo.ConfigBo"> <property name="userName" value="${test.username}" /> </bean>
這個時候,我們就能在專案中,靜態呼叫ConfigBo.USERNAME這個常量了,而不需要關心測試環境,開發環境以及正式環境的區別了。
xml中的${test.username}實際上是將properties配置檔案中的選項值進行了替換,所以在mvn install後,target目錄下,檢視xml檔案,就可以看到userName的值就是"initphp"
相關推薦
Java學習筆記38:通過Spring Bean 注入static變數,來設計一套適合測試,開發,生產環境的配置項
這邊文章的目的主要是為了在spring開發web專案的時候,讓我們的測試,開發,生產環境的配置項 .properties作為配置檔案。 我們首先需要建立一個config資料夾,然後建立開發,測試,生產環境的.properties配置項檔案。 例如,dev.proper
通過Spring Bean 注入static變數,來設計一套適合測試,開發,生產環境的配置項
(http://blog.csdn.net/initphp/article/details/8834844) 這邊文章的目的主要是為了在spring開發web專案的時候,讓我們的測試,開發,生產環境的配置項 .properties作為配置檔案。 我們首先需要建
Java學習筆記(10)Spring Bean配置
Spring Beans自動裝配 Beans自動裝配: Spring 容器可以在不使用<constructor-arg>和<property> 元素的情況下自動裝配相互協作的 bean 之間的關係,這有助於減少編寫一個大的基於 S
Spring學習筆記三: 通過註解配置Bean
一、在 classpath 中掃描元件 元件掃描(component scanning): Spring 能夠從 classpath 下自動掃描, 偵測和例項化具有特定註解的元件. 特定元件包括: @Component: 基本註解, 標識了一個受 S
Java 學習筆記14:Spring 資料庫資料來源DBCP配置說明
連線資料庫都必須要有資料連線,一般Spring中採用DBCP配置源,通過在bean.xml中配置相應的資料配置,就可以連線資料庫了,可以看一下以下相關配置: <bean id="jdbc" class="org.springframework.beans.fac
Effictive Java學習筆記1:創建和銷毀對象
安全 需要 () 函數 調用 bsp nbsp bean 成了 建議1:考慮用靜態工廠方法代替構造器 理由:1)靜態方法有名字啊,更容易懂和理解。構造方法重載容易讓人混淆,並不是好主意 2)靜態工廠方法可以不必每次調用時都創建一個新對象,而公共構造函數每次調用都會
Java學習筆記1:計算機基礎知識、java語言基礎。
一、計算機基礎知識 1、 計算機是一種能夠按照程式執行,自動、高速處理海量資料的現代化智慧電子裝置。由硬體和軟體所組成,沒有安裝任何軟體的計算機稱為裸機。常見的形式有臺式計算機、筆記本計算機、大型計算機等。 硬體通常由CPU、主機板、記憶體、電源、主機箱、硬碟、顯示卡、鍵盤、滑鼠,顯示器等多
Java學習筆記總結:JAVA中String、StringBuilder、StringBuffer類的區別
不斷地學習,不斷地填充自己的技術庫,學習Java已經有一段時間了,由一開始的不適應到後來的足以靈活應對,不僅僅取決於老師的精緻講課,還有就是依靠我的學習祕籍:記錄自己的學習筆記。今天給大家分享的技術學習筆記是JAVAString,StringBuilder以及StringBuffer這三個類之間的區
Git學習筆記3:通過git log 檢視版本演變歷史
1.檢視git commit 的列表 使用命令: git log --online 2.指定最近的4個commit 檢視演變列表 使用命令: git log -n4 --online 3.檢視本地的分支 使用命令: git branch -v 4.建立一個臨時的分支,這個分支
Java學習筆記1:匿名內部類的相關錯誤
class Test1_NoNameInnerClass { public static void main(String[] args) { //如何呼叫PersonDemo中的method方法呢? PersonDemo p=new PersonDemo(); //p.method(new
Java學習筆記3:私有private關鍵字修飾符的理解
private 是一個許可權修飾符 可以修飾成員變數和成員方法,被其修飾的成員只能在本類中被訪問。 許可權: 在類中用private修飾的欄位,只能在本類和其伴生物件中訪問。 在類中用private[this]修飾的欄位,只能在本類中訪問。 類名前加private
Java學習筆記30:二分查詢演算法程式碼
package create; public class Demo1_Array { public static void main(String[] args){ int[] arr = {11,22,33,44,55,66,77}; System.out.println(ge
Java學習筆記29:Java基礎類庫簡介及lang包介紹彙總
Java基礎類庫簡介及lang包介紹 https://blog.csdn.net/gaoshoum/article/details/50194181 java.lang包介紹 https://blog.csdn.net/u012834750/article/details/7936155
Java學習筆記28:String,StringBuffer,StringBuilder的區別
String,StringBuffer,StringBuilder的區別是什麼?String為什麼是不可變的? String是字串常量,StringBuffer和StringBuilder是字串變數。 StringBuffer是執行緒安全的,StringBuilder是
Java學習筆記27:類實現介面相關問題
java中,一個類實現某個介面,必須重寫介面中的所有方法嗎??? 不一定,關鍵要看子類是否是抽象類。 如果子類是非抽象類,則必須實現介面中的所有方法; 如果子類是抽象類,則可以不實現介面中的所有方法,因為抽象類中允許有抽象方法的存在! 1、抽象類定義 抽象類往往用來表徵對問題領域進行
Java學習筆記26:在大字串中查詢小串
package create; public class Test11 { public static void main(String[] args){ //定義大字串 String max="haha,lila,wolaila!"; String min="la"; //
Java學習筆記25:Java indexOf() 方法
indexOf() 方法有以下四種形式: public int indexOf(int ch): 返回指定字元在字串中第一次出現處的索引,如果此字串中沒有這樣的字元,則返回 -1。 public int indexOf(int ch, int fromIndex): 返回從
Java學習筆記24:java 中 valueof 方法的使用
public static String valueOf(boolean b)返回 boolean 引數的字串表示形式。 public static String valueOf(char c)返回 char 引數的字串表示形式。 public static String valueOf(i
Java學習筆記23:Java中charAt()方法的使用
此方法返回位於字串的指定索引處的字元。該字串的索引從零開始。 charAt(int index)方法是一個能夠用來檢索特定索引下的字元的String例項的方法. charAt()方法返回指定索引位置的char值。 索引範圍為0~length()-1. 如: str.charA
Java學習筆記22:Java實現模擬使用者登入
package create; import java.util.Scanner; public class Test1_In { /* * 模擬使用者登入,僅有三次嘗試機會 */ public static void main(String[] args){ Scann