プロジェクトのいくつかのパラメーターを頻繁に変更する必要がある場合、または後で変更する必要がある場合は、これらのパラメーターをプロパティファイルに入れて、ソースコードのプロパティの構成を読み取ることをお勧めします。このようにして、プロパティファイルのみを後で変更する必要があり、ソースコードを変更する必要はありません。これはより便利です。これは春にも実行でき、春にはプロパティファイルをロードする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を変更したい場合は、これらのソースコードを変更する必要がありますが、プロパティファイルを使用する場合は、ソースコードを変更するだけで、ソースコードは気にしません。それで、それをする方法は?
<context:property-placeholder 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}" /> <プロパティ名= "jdbcurl" value = "$ {jdbcurl}" value = "$ {password}"/> </bean> <context:property-placeholder location = "" "/>タグも、次の<bean>タグに置き換えることができます。 <bean>タグに精通しており、より読みやすくなります:<! - 上記の構成に相当します。以下は理解しやすい - > <bean> <プロパティ名= "locations"> <! - 配列を受け取るプロパティホルディングコーンフィギュアクラスに場所があります。 </property> </bean>上記と同じくらい簡潔に思えますが<context:property-placeholder 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を継承し、両方ともプロパティ構成ファイルをロードするために使用されます。
要約します
上記は、編集者によって導入されたスプリングローディングプロパティファイルの2つの例の詳細な説明です。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!