Spring Boot ——@ConfigurationProperties 、 @Value 、 @PropertySources 、@Configuration 、@Bean and so on

以下這些注解在代碼中 都有解釋

@ConfigurationProperties 、 @Value 、 @PropertySources 、@Configuration 、@Bean

//@PropertySources(value = {"classpath:person.properties"})
@Component//將這個組件放入容器中
@ConfigurationProperties(prefix = "person")
//@Validated//JSR303校驗,即對屬性值的輸入做一個校驗,如:Email
public class Person {
 
    /**
     * <bean class="Person>
     *     <property name="name" value="字面值/ ${key}從環(huán)境變量、配置文件中獲取值/ #{SpEL}"></>
     * </bean>
     *
     * 映射注入值的區(qū)別:
     *
     * @ConfigurationProperties(prefix = "person"): 1、可以進行批量映射配置文件中的值;2、支持松散綁定,
     *          即屬性值為lastName,配置文件中可以寫成last-name等形式的松散值。3、不支持SpEL表達式;4、支持
     *          JSR303數(shù)據(jù)校驗;5、支持復(fù)雜類型封裝,如 Map類型等。
     *
     *
     *  @Value("${person.name}"): 1、不可以進行批量映射配置文件中的值,只能一個一個的映射;2、不支持松散綁定,
     *             只能跟配置文件保持一致;3、支持SpEL表達式,如:#{12*2};4不支持JSR303校驗;5、不支持復(fù)雜類型封裝。
     *
     * 使用情況: 1,如果我們只在某個業(yè)務(wù)邏輯中需要獲取一下配置文件中的某一項值,可以使用@Value
     *           2,如果我們專門編寫一個javaBean來和配置文件中進行映射,我們就使用@ConfigurationProperties
     *
     *  @PropertySources(value = {"classpath:person.properties"}),加載指定的配置文件
     *
     */
//    @Value("${person.name}")
    //name必須是一個郵箱格式
//    @Email
    private String name;
//    @Value("#{12*2}")
    private Integer age;
//    @Value("false")
    private Boolean student;
/**
 * @Configuration表明當前類是一個配置類,就是來代替之前的Spring配置文件
 *
 * 以前在配置文件中是使用<bean></bean>標簽加組件
 */
@Configuration
public class MyConfig {
 
    /**
     * @Bean 將方法的返回值添加到容器中
     * @return
     */
    @Bean
    public HelloWorldService hello(){
        System.out.println("-------------------MyConfig");
        return new HelloWorldService();
    }

上一篇:Spring Boot配置

下一篇: Spring Boot項目不同環(huán)境的切換方式知多少

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容