2017-04-05 6 views
7

क्या कोई @ConfigurationProperties एनोटेशन का उपयोग @Bean विधि पर सीधे कैसे किया जा सकता है?`@ बीन` विधि पर '@ कॉन्फ़िगरेशनप्रॉपर्टीज' एनोटेशन का उपयोग करना

मैंने कक्षा परिभाषाओं पर इसका उपयोग किए जाने के अनगिनत उदाहरण देखे हैं - लेकिन @Bean विधियों के लिए अभी तक कोई उदाहरण नहीं है।

  • एक वर्ग परिभाषा को यह जोड़ें या एक @Bean विधि
  • @Target (मूल्य = {प्रकार, विधि})

तो:

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(); 
} 

यहाँ डेटास्रोत वर्ग proeprties यूआरएल, उपयोगकर्ता नाम, पासवर्ड, driverClassName है, तो वसंत बूट बनाया वस्तु के लिए उन्हें मैप करता है। डेटा स्रोत वर्ग के

उदाहरण:

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

दूसरे शब्दों में यह एक ही प्रभाव पड़ता है जैसे कि आप स्टीरियोटाइप एनोटेशन (@Component, @Service, आदि) उदा के साथ कुछ सेम प्रारंभ

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

उदाहरण के लिए धन्यवाद। अधिक स्पष्टता के लिए आप डेटासोर्स क्लास – tMJ

+0

@tMJ निश्चित भी जोड़ सकते हैं, मेरा संपादन देखें। –

+0

यह दिलचस्प है - मुझे अब बीन विधि का बिंदु नहीं दिख रहा है। डेटासोर्स क्लास को सीधे 'ऑटोवायर' नहीं किया जा सका? – tMJ

संबंधित मुद्दे