プロジェクトのいくつかのパラメーターを頻繁に変更する必要がある場合、または後で変更する必要がある場合は、これらのパラメーターをプロパティファイルに入れて、ソースコードのプロパティの構成を読み取ることをお勧めします。このようにして、プロパティファイルのみを後で変更する必要があり、ソースコードを変更する必要はありません。これはより便利です。これは春にも実行でき、春にはプロパティファイルをロードする2つの方法があります。XMLメソッドに基づいて、注釈法に基づいています。
以下は2つの方法です。
1。XMLを介してファイルをロードします
春のインスタンス化されたDataSourceを例に取りましょう。通常、Beans.xmlファイルで以下を構成します。
<! - com.mchange.v2.c3p0.combopooleddatasourceクラスは、c3p0-0.9.5.1.jarパッケージのcom.mchange.v2.c3p0パッケージにあります - > <bean id = "datasource"> <プロパティネーム= "driverclass" value = "com.mysql.jdbc.driver" /< value = "jdbc:mysql:// localhost:3306/shop"/> <property name = "user" value = "root"/> <property name = "property name" value = "root"/> </bean>
DataSourceを変更したい場合は、これらのソースコードを変更する必要がありますが、プロパティファイルを使用する場合は、ソースコードを変更するだけで、ソースコードは気にしません。それで、それをする方法は?
<コンテキスト:プロパティプレイスホルダーlocation = ""/> springのタグがあります。これは、プロパティ構成ファイルのロードに使用できます。場所は、構成ファイルへのパスです。ここで、プロジェクトディレクトリのSRCの下に新しいconn.propertiesファイルを作成し、上記のDataSource構成を記述します。
dataSource = com.mchange.v2.c3p0.combopooleddatasource driverclass = com.mysql.jdbc.driver jdbcurl = jdbc/:mysql/:// localhost/:3306/shop user = root password = root
これで、Beans.xmlで次の変更を行う必要があります。
<コンテキスト:プロパティプレイスホルダーlocation = "classpath:conn.properties"/> <! - ロード構成ファイル - > <! - com.mchange.v2.c3p0.combopooleddatasourceクラスはcom.mchange.v2.c3p0パッケージC3P0-0.9.5.1. conn.properties at startup-> <property name = "driverclass" value = "$ {driverclass}" /> <プロパティ名= "jdbcurl" value = "$ {jdbcurl}" /> <ユーザー "value =" $ {user} " />> <プロパティnam <context:property-place-placeholder location = ""/>タグは、次の<bean>タグに置き換えることもできます。私たちは<bean>タグに精通しており、より読みやすいです:
<! - 上記の構成に相当します。以下は理解しやすいです - > <bean> <プロパティ名= "locations"> <! - アレイを受信するプロパティホールドコントンフィギュアクラスには、以下の複数のプロパティファイルを割り当てることができます - > <ray> <value> classpath
上記のように簡潔であるように思われますが、<コンテキスト:プロパティプレイスホルダーlocation = ""/>は明確です。次のものを使用することをお勧めします。ただし、これはXMLに限定されます。つまり、$ {key}を使用して、beans.xmlの構成ファイルの値を取得します。
2。注釈を介してプロパティファイルをロードします
別の方法は、@Value Annotationを使用して、注釈を通じて構成ファイルに値をロードすることです。
例を見てみましょう。プログラム内の特定のファイルへの絶対的なパスを取得したい場合は、プログラムでそれを書くことができないと自然に考えると、プロパティファイルをアンインストールすることもできます。または、srcディレクトリに新しいpublic.propertiesファイルを作成します。
filepath = e/://web//apache-tomcat-8.0.26//webapps/e_shop//image
Javaコードの注釈を通じてこのFilepathを取得したい場合は、まずBeans.xmlファイルで注釈メソッドを構成する必要があります。
<! - 2番目の方法は、アノテーションインジェクションを使用することです。これは、主にJavaコードで使用され、注釈を使用してプロパティファイルに対応する値値を注入します - > <bean id = "prop"> <プロパティname = "locations"> <! - これはPropertiesFactorybeanクラスです。また、場所のプロパティがあり、上記のようにアレイも受け取ります。
これで、Javaコードで注釈を使用して、Filepathの価値を取得できます。
@component( "fileupload")public class fileuploadutil fileupload {private string filepath; @value( "#{prop.filepath}")//@値は、beans.xmlファイルにid = "prop"を持つbeanを見つけることを意味します。アノテーションを介してプロパティ構成ファイルを読み取り、対応する構成ファイルパブリックvoid setFilepath(string filepath){system.out.println(filepath)のkey = filepathの対応する値を読み取ります。 this.filepath = filepath; }注入するために設定された方法が必要であり、注釈はSETメソッドに記述できることに注意してください。 SetFilepathメソッドでは、Filepathがコンソールを通じて印刷され、Tomcatを起動するときにコンソールが出力されているかどうかを観察します。もしそうなら、それはスプリングが開始時にフィルパスをロードしたことを意味します。コンソールのスタートアップ情報を見てみましょう。
上記は、スプリングロードプロパティ構成ファイルの2つの方法です。実際、XMLメソッドとPropertiesFactoryBeanクラスに基づいて上記のプロパティPlaceHolderConfigurerクラスは、Antonotationメソッドの両方に基づいて、PropertiesLoaderSupportを継承し、両方ともプロパティ構成ファイルをロードするために使用されます。
元のアドレス:http://blog.csdn.net/eson_15/article/details/51365707
何か問題がある場合は、お詫び申し上げます。