2017-09-28 20 views
2

私はサーバーTomcat上でSpringフレームワークを使用してJ2EE Webアプリケーションを構築しました。アプリケーションはいくつかのプロパティ(jdbs接続パラメータ、フォルダのパスなど)を読み込む必要があります。 私が意味することは、今日、私はサーバー上に瓶を置くということです。 2年後に接続データベースのパラメータや使用するフォルダが変更される場合は、アプリケーションを再デプロイする必要はありませんが、プロパティファイルを変更するだけです。Springを使ったWebアプリケーション:プロパティファイルの外部化方法

私は今では持っていることは、クラスパス内の.propertiesファイル、およびそれを読み込み、Beanです:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="locations" value="classpath:database.properties"/> 
</bean> 

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="url" value="${jdbc.url}" /> 
    <property name="driverClassName" value="${jdbc.driverClassName}" /> 
    <property name="username" value="${jdbc.username}" /> 
    <property name="password" value="${jdbc.password}" /> 
</bean> 

database.properties:

jdbc.driverClassName=com.mysql.jdbc.Driver 
jdbc.url=jdbc:mysql://localhost:3306/cheExport?useSSL=false 
jdbc.username=root 
jdbc.password=root 

どのように私は私の目的を達成することができますか?

私がよく覚えているのは、特定のフォルダにプロパティファイルが含まれていることを指定できるサーバーxmlでできることです。しかし、どうすれば一緒に置くことができますか?この記事Read properties file outside JAR file

は、私もそれがこの例では春ブーツを使用するのが一般的だと読みますが、私は同じ質問をしますが、春を使用しないので、私はそれが私の場合

に有用ではないと思うれます

答えて

0

utilプロパティを使用します。私のサンプルコードを表示するだけです。

ルートのcontext.xml

<util:properties id="config" 
    location="classpath:config/config.properties" /> 

<bean id="officeDataSource" 
    class="org.springframework.jdbc.datasource.SimpleDriverDataSource"> 
    <property name="driverClass" value="#{config['driverClass']}" /> 
    <property name="url" value="#{config['commonUrl']}" /> 
    <property name="username" value="#{config['username']}" /> 
    <property name="password" value="#{config['password']}" /> 
</bean> 

config.propertiesあなたのプロジェクト構造の画像について

driverClass=org.mariadb.jdbc.Driver 
commonUrl=jdbc:mariadb://123.345.563.16:3306/FACE_BOOK_DB?useUnicode=yes&amp;characterEncoding=UTF-8 

username=id 
password=pw 

。あなたのプロジェクトに存在するリソース(web-inf-classes-config)。私は理解していなかった何

enter image description here

+0

である:それは=「クラスパス」の場所にjarファイルの外部にあるファイルを置くことは可能ですか?つまり、.jar:root/myApp.jarを含むフォルダをサーバーに置いて、同じフォルダにプロパティファイル:root/database.properties – frabis

+0

があなたのために更新されました。私のポスト。 – Byeon0gam

+0

私はこれを試しましたが、私はまだそれが動作することを理解できません:私はjarを取得し、.propertiesファイル(私は正確に同じ場所にsrc/main/resourcesの下に置く)は、 WEB-INF/classes/configフォルダにはありませんので、私は変更できません。 – frabis

関連する問題