1. 程式人生 > >spring引入properties檔案,並在controller等層獲得引入檔案中屬性的值

spring引入properties檔案,並在controller等層獲得引入檔案中屬性的值

引入配置檔案方法一:

用context:property-placeholder引入配置檔案
<!-- 配置由spring讀取jdbc的屬性檔案 -->
<context:property-placeholder location="classpath:jdbc.properties,classpath:aaaaa.properties"/>

然後${...}取即可

<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />

引入配置檔案方法二:

PropertyPlaceholderConfigurer,在spring的xml檔案中配置

2.1 使用場景一:

在配置資料庫連線池的dataSource中引入jdbc.properties檔案屬性,很常用


配置資料庫連線池時,在datasource獲取配置檔案的屬性可以參考以下兩篇文章,我就不詳細寫了,只簡要貼一點程式碼。

要在spring的xml中引用properties檔案中定義的屬性,需要進行特殊的載入,利用PropertyPlaceholderConfigurer

典型配置如下:用PropertyPlaceholderConfigurer,在spring的xml檔案中配置。

<bean id="common.propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="ignoreResourceNotFound" value="true" /><!--忽略未找到檔案 -->
<property name="ignoreUnresolvablePlaceholders" value="true" />
<property name="fileEncoding" value="UTF-8" />

<property name="locations">
<list>
<value>classpath*:conf/default-*.properties</value>
<value>classpath*:conf/*.properties</value>

</list>
</property>
</bean>

這個是呼叫的locations的list賦值方式,也可以單獨一條
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations" value="classpath:com/foo/jdbc.properties"/>
</bean>

properties中配置:
jdbc.driverClassName=org.hsqldb.jdbcDriver

下面的內容中,就可以通過
value="${jdbc.driverClassName}"
來訪問properties的值

2.2  使用場景二:

controller等層怎麼使用配置檔案中的屬性

例如:你在spring中引入了aaaaa.properties檔案,aaaaa.properties檔案中有一個屬性a=http:8080。

當你想在controller定義一個變數的值為http:8080,如private String a="http:8080"可以這樣寫

@value("{a}")
private String a;

呵呵,是不是很高大上呢。。。。使用場景還是比較多的。

注:debug後如果發現a沒有注入值在springmvc或者struts2的xml配置檔案中加入

<context:property-placeholder location="classpath:aaaaac.properties"/>

(主要是父子容器的問題導致沒有注入)

------------------------------------------2016-06-19更新-----------------------------------

相關推薦

spring引入properties檔案controller獲得引入檔案屬性

引入配置檔案方法一: 用context:property-placeholder引入配置檔案 <!-- 配置由spring讀取jdbc的屬性檔案 --> <context:property-placeholder location="classpath:

Linux運維之批量下載指定網站的100個圖片檔案找出大於200KB的檔案

題目為:  有一百個圖片檔案,它們的地址都是 http://down.fengge.com/img/1.png http://down.fengge.com/img/2.png … 一直到 http://down.fengge.com/img/100.png 批量下載這10

以位元組流接受鍵盤輸入後寫入檔案以緩衝位元組流複製檔案

一、程式碼及解釋 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.File

C#呼叫批處理(bat)檔案獲取執行批處理(bat)檔案後返回

/// /// 執行BAT檔案 /// /// csv檔案引數 /// bat檔案執行返回值 static string execBAT(string fileName) { ProcessStartInfo pro = new System.Diagnostics.ProcessStartInf

golang遍歷某個目錄下的檔案讀取檔名到一個csv檔案

package main import ( "encoding/csv" "fmt" "os" "path/filepath" "container/list" ) var outputFileName string = "filesName.csv" func Che

關於html頁面展現pdf檔案隱藏列印、下載按鈕的總結

關於html頁面展現pdf檔案,並隱藏列印、下載等按鈕的總結 由於專案需求,要在頁面預覽pdf檔案而不能提供下愛列印功能,故在網上查詢了一些前輩的經驗,自己也嘗試了一番,現在講經驗總結一下。 pdfobject.js jquery.media.js pdf.js

debian9安裝arm-linux-gcc交叉編譯器安裝windows和linuxs共享檔案的samba伺服器

1,首先下載arm-linux-gcc安裝包,http://arm9.net/download.asp 解壓:tar -zxvf  *.tar.gz 2,修改環境,使得系統能夠識別arm-linux-gcc, 方法1:##sudo vi /etc/environment 方

Windows遍歷全盤所搜檔案通過多執行緒顯示搜尋進度(C++/C)

程式設計軟體,系統 軟體:VS2017 工程屬性:MFC對話方塊(其他工程屬性稍作修改也適用) 系統:windows10家庭版 主要思想 1、利用CFileFind實現查詢檔案 2、利用遞迴實現全盤搜尋 3、多執行緒實現父對話方塊搜尋檔案時,子對話方塊顯示搜尋進度 軟體執行效

js 把字串儲存為txt檔案下載到本地

程式碼如下           exportRaw('text.txt','123123123') function fakeClick(obj) { var ev = document.createEvent("MouseE

讀取檔案按原格式輸出檔案內容的三種方式

1 filename = 'Car.py' 2 3 #讀取整個檔案 4 with open(filename) as file_object: 5 lines = file_object.read() 6 print(lines) 7 8 9 #遍歷檔案物件 10

【筆記】window下 使用c++遍歷資料夾及其子資料夾和檔案列印檔案路徑及各檔案內容

這兩天一直在學習如何使用c++遍歷資料夾、讀取檔案內容和寫入檔案。 話不多說,直接上程式碼 /** 檔案功能:遞迴遍歷資料夾,遍歷資料夾及其子資料夾和檔案.列印資料夾名稱、檔名稱和檔案數目*** 參考:https://www.cnblogs.com/collectionne/p/679230

用python批量獲取某路徑資料夾及子資料夾下的指定型別檔案按原資料夾結構批量儲存處理後的檔案

因為是把自己成功執行的整個程式碼按幾部分截取出來的,所以每一小節程式碼不一定能單獨執行,特此說明。 1.獲取某路徑資料夾及子資料夾下的指定pcm型別檔案的全部路徑 import os def eachfile(filepath):     pathdi

提取物體檢測結果的image_id把image_id存到csv 檔案裡面

假如你的物體檢測預測結果格式如下: [ {"score": 0.9953131675720215, "category_id": 1, "image_id": 139, "bbox": [415.0774841308594, 158.3828125, 50.91650390625, 141.03

C#:讀取html模板檔案替換修改檔案指定儲存為修改後的檔案

1.準備html模板檔案:Pages/Device/DeviceModel8.html   2 using System.IO:讀取檔案內容,並替換指定內容                  &nbs

Java讀取1G以上的txt檔案對內容進行解析,利用BufferedReader設定快取大小

讀取檔案路徑 ,讀入 使用帶緩衝的輸入輸出流,效率更高,速度更快。建立一個內部緩衝區陣列並將其儲存在 buf 中,該buf的大小預設為8192。 File file = new File(filepath);    BufferedInputStream fis = ne

【複製指定目錄下的指定型別檔案修改後綴名】

package com.companyname.common.test; import java.io.*; /** * @Description * @Author Created by shusheng. * @Email [email protected] * @Date 2

linux編寫定時清空日誌檔案的指令碼檔案新增定時任務

--------例如在/ usr / spider / logs /下新增一個clearlog.sh指令碼 1.建立clearlog.sh指令碼檔案touch clearlog.sh 2.編寫clearlog.sh指令碼內容:vi clearlog.sh, 3.儲存退出並賦予許可權

Java 尋找一個目下的所有“.Java”檔案將他們的絕對路徑存到一個文字檔案

import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.FilenameFilter; import java.io.IOExce

配置檔案讀取資訊

新建一個proprerties的檔案 建立一個讀取檔案引數的工具類 package com.surekam.alarm.util; import java.io.*; import java.util.Properties; public class PropertiesUtil

讀取Excel檔案對Excel檔案進行描述性分析

> mydata<-read.csv("E:\\╰凝初寒つ\\學習檔案\\大資料概論\\R語言\\soapdata.csv",header=T) > dim(mydata) > mydata<-head(mydata,41) >