Spring Boot 常用注解(未完)

SpringBoot 常用注解說明

@SpringBootApplication

@SpringBootApplication
public class SpringBootApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringBootApplication.class);
    }
}

標(biāo)志著這是一個(gè)SpringBoot入口文件,所有SpringBoot應(yīng)用程序都依賴這注解啟動(dòng)

@Configuration @Bean

@Configuration
public class AppConfig{
    @Bean("user")
    public User initUser() {
        User user = new User();
        user.setId(1L);
        user.setUserName("user_name_1");
        user.setNote("note_1");
        return user;
    }
}

@Configuration 代表這是一個(gè)Java配置文件,Spring的容器會(huì)根據(jù)它來生成IOC容器去裝配bean
@Bean 代表將initUser方法返回的POJO裝配到IoC容器中,而其name屬性定義了這Bean的名稱,如果沒有配置name屬性,則將方法名initUser作為Bean的名稱存入Spring IoC容器中

@Component @Value

@Component("user")
public class User {

    @Value("1")
    private Long id;

    @Value("user_name_1")
    private String userName;

    @Value("note_1")
    private String note;

    /** setter and getter **/
}

@Component 表明這個(gè)類將被 Spring IoC 容器掃描裝配,其中配置的“user”則是作為Bean的名稱,當(dāng)然也可以不配置這個(gè)字符串,那么IoC容器就會(huì)把類名第一個(gè)字母作為小寫,其他不變作為Bean名稱存入IoC容器中
@Value 指定具體值,使得Spring IoC 給予對應(yīng)的屬性注入對應(yīng)的值

@ComponentScan

@ComponentScan
public class AppConfig {}

使用 @ComponentScan 意味著它會(huì)進(jìn)行掃描,但是它只會(huì)掃描類AppConfig所在的當(dāng)前包及其子包

@ComponentScan("com.springboot.demo.*")

以上方式可以實(shí)現(xiàn)掃描 com.springboot.demo 包下所有所有類,推薦使用這種方式掃描這種方式進(jìn)行指定路徑掃描

@AutoWired

@AutoWired
private Animal animal;

@AutoWired是我們在Spring中最常用的注解之一,它會(huì)根據(jù)屬性的類型找到對應(yīng)的Bean進(jìn)行裝配

@Primary

@Component
@Primary
public class cat implements Animal{}

告訴 Spring IoC 容器,當(dāng)發(fā)現(xiàn)存在多個(gè)同樣類型的Bean時(shí),優(yōu)先使用我注入

@Qualifier

@Component
public class BussinessPerson implements Person {

    @AutoWired
    @Qualifier("cat")
    private Animal animal;
}

@Component
@Qualifier("cat")
public class Cat implements Animal {}

@Component
@Qualifier("dog")
public class Dog implements Animal {}

當(dāng)存在多個(gè)相同類型的Bean時(shí),使用 @Qualifier 實(shí)現(xiàn)通過類型和名稱找到Bean

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

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