2017-04-05 9 views
7

メソッドで直接@ConfigurationPropertiesアノテーションを使用する方法のMWEを教えてもらえますか?`@ Bean`メソッドで` @ConfigurationProperties`アノテーションを使用する

これは、クラス定義で使用されている無数の例を見てきましたが、まだ@Beanメソッドの例はありません。

  • @Bean方法
  • @Target(値= {TYPE、METHOD})

クラス定義またはにこれを追加だから:documentationを引用する

私は可能性と意図された使用もあると思いますが、不都合にも私はそれを理解することができません。

答えて

13
spring.datasource.url = [url] 
spring.datasource.username = [username] 
spring.datasource.password = [password] 
spring.datasource.driverClassName = oracle.jdbc.OracleDriver 

@Bean 
@ConfigurationProperties(prefix="spring.datasource") 
public DataSource dataSource() { 
    return new DataSource(); 
} 

ここでDataSourceクラスはproeprtiesのURL、ユーザ名、パスワード、driverClassNameを持っているので、春ブーツが作成されたオブジェクトにマップします。 DataSourceクラスの

例:ステレオタイプアノテーション(@Component、@Service、等) 例えば持ついくつかの豆を初期化する場合のように言い換える

public class DataSource { 
     private String url; 
     private String driverClassName; 
     private String username; 
     private String password; 
     //getters & setters, etc. 
    } 

これは、同じ効果を有します

@Component 
@ConfigurationProperties(prefix="spring.datasource") 
public class DataSource { 
      private String url; 
      private String driverClassName; 
      private String username; 
      private String password; 
      //getters & setters, etc. 
     } 
+0

ありがとうございました。さらに明確にするために、DataSourceクラス – tMJ

+0

@ tMJを追加することもできます。私の編集を参照してください。 –

+0

これは面白いです - 私は今、Beanメソッドのポイントが表示されません。 DataSourceクラスを直接 '@ Autowired'できませんでしたか? – tMJ

関連する問題