Spring Boot之底層註解
阿新 • • 發佈:2022-03-13
一、@Configuration
此註解有兩種使用模式,預設情況下,是Full模式。
(1).Full模式
@Configuration(proxyBeanMethods = true)
- 配置類元件之間有依賴關係,方法會被呼叫得到之前單例項元件,用Full模式
(2).Lite模式
@Configuration(proxyBeanMethods = true)
- 配置 類元件之間無依賴關係用Lite模式加速容器啟動過程,減少判斷
/** * 1、配置類裡面使用@Bean標註在方法上給容器註冊元件,預設也是單例項的 * 2、配置類本身也是元件 * 3、proxyBeanMethods:代理bean的方法 * Full(proxyBeanMethods = true)、【保證每個@Bean方法被呼叫多少次返回的元件都是單例項的】 * Lite(proxyBeanMethods = false)【每個@Bean方法被呼叫多少次返回的元件都是新建立的】 **/ @Configuration(proxyBeanMethods = false) //告訴SpringBoot這是一個配置類 == 配置檔案 public class MyConfig { /** * Full:外部無論對配置類中的這個元件註冊方法呼叫多少次獲取的都是之前註冊容器中的單例項物件 * @return */ @Bean //給容器中新增元件。以方法名作為元件的id。返回型別就是元件型別。返回的值,就是元件在容器中的例項 public User user01(){ User zhangsan = new User("zhangsan", 18);//user元件依賴了Pet元件 zhangsan.setPet(tomcatPet()); return zhangsan; } @Bean("tom") public Pet tomcatPet(){ return new Pet("tomcat"); } }
二、@Bean、@Component、@Controller、@Service、@Repository、@Autowired
@Bean是一個方法級別上的註解,主要用在@Configuration註解的類裡,也可以用在@Component註解的類裡。
@Component泛指各種元件
@Controller控制器
@Service業務邏輯層元件
@Repository資料庫層元件
@Autowired 是我們使用得最多的註解,其實就是 autowire=byType 就是根據型別的自動注入依賴(基於註解的依賴注入),可以被使用再屬性域,方法,建構函式上
三、@ComponentScan、@Import
@ComponentScan 通過包掃描指定
@Import 引入
四、@Conditional
條件裝配:滿足Conditional指定的條件,則進行元件注入
五、@ImportResource
原生配置檔案引入