序文
実際の開発では、春のBeanの属性を直接割り当てることはそれほど多くありません。この領域の情報を整理し、今後の研究のために要約を作成します。
構成ファイルを通じて
Springコンテナが構成ファイルで開始されると、プロパティタグの値を使用して、Beanのプロパティに値を割り当てることができます。割り当ての形式は次のとおりです。
<-コンテキストを通じてプロパティファイルに読み込まれる環境変数:property-placeholder(プロパティのプロパティ値は、最終的に環境変数の形式で格納されます)>
<context:property-placeholder location = "classpath:person。プロパティ "/>
<bean id =" person " class =" com.atneusoft.bean.Person ">
< -① 基本値による直接割り当て - > <property name =" name "value =" zhangsan "> </ property>
< -②$ {}を介して構成ファイルの値を取得します ->
<property name = "age" value = "$ {person.age}"> </ property>
< -③Spring的El表达式 ->
<-<property name = "age" value = "10 * 2 "> </ property>->
</ bean>
クラスパス下のプロパティファイルの内容
person.age = \ u5C0F \ u674E \ u56DB
注釈による
プロパティの値に対応するアノテーションを使用して、プロパティに値を割り当てます
// @PropertySourceを使用して外部構成ファイルのk / vを読み取り、実行中の環境変数に保存します。外部構成ファイルを読み込んだ後、$ {}を使用して構成ファイルの値を抽出します @PropertySource(value = {"classpath:/ person .properties " }) @Configuration public class MainConfigOfPropertyValues { @Bean public Person person(){ return new Person(); } }
public class Person { // @Value割り当てを使用する; // 1、基本値 // 2、SpELを書き込める;#{} // 3、$を書き込める{};構成ファイル[プロパティ]の値を取り出す(操作中環境変数の値) @Value( " 张三 " ) private String name; @Value( "#{20-2}" ) private Integer age; / * @Value( "$ {person.age}")
private Integer年齢; * / }
注:
外部構成ファイルのk / vは実行中の環境変数に保存され、対応する値は環境変数から直接取得できます
AnnotationConfigApplicationContextのApplicationContext = 新しい AnnotationConfigApplicationContext(MainConfigOfPropertyValues。クラス); ConfigurableEnvironment環境 = applicationContext.getEnvironment(); String property = environment.getProperty( "person.age");