SpringBoot底層原理


SpringBoot直接可以用@Autowried原理是什么?

以前我們使用@Autowired要自己創建Bean:https://www.cnblogs.com/maomaodesu/p/12180477.html#創建bean

但SpringBoot在引入坐標時會自動創建Bean,這種綁定坐標創建Bean的方式我們也可以手動實現:

創建一個Bean比如User,
通過注解方式把Bean配置到SpringIOC容器中:寫一個userConfig配置類,使用到@Configuration注解和@Bean注解(底層又用到@Enable*和@Import)

                            最常用的定義Bean的方式:
                            創建配置類,在配置類中定義Bean
		        @Configuration
		        public class UserConfig{
			        @Bean
			        public User user(){
			        	return new User();
			        }
		        }

使用getBean("user")方法是可以從IOC容器中創建出user對象的。
在userConfig類中加入@Condition條件注解,新建一個Condition類來充當條件(該類的返回值是true或者flase)
如果讓Condition類一直返回false,則使用getBean(User.class)方法是無法從IOC容器中找到user的。
總結一下就是,SpringBoot通過這種方式讓Condition類的判斷依據為是否導入某坐標,這樣就可以產生一旦導入該坐標就允許直接從IOC里創建該對象而無需手寫Bean的現象。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM