1. ホーム
  2. spring

[解決済み] プロパティファイルから値を読み込むには?

2022-05-13 21:17:27

質問

Springを使用しています。私はプロパティファイルから値を読み取る必要があります。これは、外部のプロパティファイルではなく、内部のプロパティファイルです。プロパティファイルは以下のようなものです。

some.properties ---file name. values are below.

abc = abc
def = dsd
ghi = weds
jil = sdd

私は伝統的な方法ではなく、プロパティファイルからこれらの値を読み取る必要があります。 どのようにそれを達成するのですか?Spring 3.0での最新のアプローチはありますか?

どのように解決するのですか?

PropertyPlaceholderをコンテキストで設定します。

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

そして、ビーンズの中のプロパティを参照します。

@Component
class MyClass {
  @Value("${my.property.name}")
  private String[] myValues;
}

カンマで区切られた複数の値を持つプロパティをパースする。

my.property.name=aaa,bbb,ccc

うまくいかない場合は、プロパティ付きのBeanを定義し、手動で注入・処理することもできます。

<bean id="myProperties"
      class="org.springframework.beans.factory.config.PropertiesFactoryBean">
  <property name="locations">
    <list>
      <value>classpath*:my.properties</value>
    </list>
  </property>
</bean>

とビーンになります。

@Component
class MyClass {
  @Resource(name="myProperties")
  private Properties myProperties;

  @PostConstruct
  public void init() {
    // do whatever you need with properties
  }
}