Spring でアノテーションが設定された Bean にプロパティ値を注入するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-09 05:06:02
オリジナル
488 人が閲覧しました

How Can I Inject Property Values into Beans Configured with Annotations in Spring?

Spring でアノテーションを使用して構成された Bean へのプロパティ注入

Spring では、依存関係の注入とクラスパスのスキャンを簡素化するために、アノテーションを使用して Bean が構成されることがよくあります。ただし、プロパティ ファイルなどの外部ソースからプロパティ値を挿入する必要がある場合は、問題が発生する可能性があります。

問題ステートメント

Spring Bean としてアノテーションが付けられた Java クラスを考えてみましょう。

@Repository("personDao")
public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao {
    // Implementation omitted
}
ログイン後にコピー

この Bean はアノテーションを介して構成されており、app.properties ファイルからプロパティ値をそれに注入したいと考えています。ただし、Bean は Spring XML ファイル内で宣言されていないため、通常の 要素アプローチは使用できません。

EL サポートを使用したプロパティ インジェクション

Spring は、アノテーション付き Bean へのプロパティ インジェクションを直接可能にする EL (式言語) サポートを提供します。これを行うには:

  1. プロジェクトの pom.xml に次の依存関係を追加します:
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.3.23</version>
</dependency>
ログイン後にコピー
  1. @Value アノテーションを使用してプロパティ値を挿入します。
public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao {
    @Value("${results.max}")
    private int maxResults;
    // Implementation omitted
}
ログイン後にコピー

Properties オブジェクトからプロパティを注入する例

@Value を使用して Properties オブジェクトからプロパティを注入することもできます。

@Autowired
private Properties myProperties;
@Value("#{myProperties['github.oauth.clientId']}")
private String githubOauthClientId;
ログイン後にコピー

追加情報

  • systemProperties オブジェクトは、システム プロパティへのアクセスを提供します。
  • @Value は、直接注入のフィールドに適用することもできます。
  • 詳細については、このブログを参照してください。投稿: [@Value と EL サポートを使用した Spring でのプロパティ インジェクション](https://www.baeldung.com/spring-property-injection-value).

以上がSpring でアノテーションが設定された Bean にプロパティ値を注入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!