半途而廢仔又來了,這次是看這個網頁,一步一步了解Spring Boot,今天是2024/1/28,Day1,希望可以堅持到Day 100
https://www.geeksforgeeks.org/spring-boot/?ref=lbp
控制反轉Spring IoC (Inversion of Control)
https://www.geeksforgeeks.org/spring-understanding-inversion-of-control-with-example/
There are 2 types of IoC containers:
BeanFactory ⮕ 最基本版本
ApplicationContext ⮕擴展了BeanFactory的功能
Interface的介紹: https://www.youtube.com/watch?v=RbSnqxlIuik
Spring GA、PRE、SNAPSHOT 版本含义及区别: https://blog.csdn.net/qq_38780765/article/details/105165880
我選擇的專案
Run-time Polymorphism: https://www.geeksforgeeks.org/difference-between-compile-time-and-run-time-polymorphism-in-java/
加入beans.xml / ApplicationContext / ClassPathXmlApplicationContext: https://github.com/fenturechance/spring-boot-practice-240128/commit/52082039a9bcf98eda76e882ea0f26212aa27a05
---
BeanFactor: https://www.geeksforgeeks.org/spring-beanfactory/?ref=lbp
白話文介紹Bean: https://developer.aliyun.com/article/1205229
把原本的new 建構子時,傳入參數這件事,改到xml去做
白話文文章中: 把食物從雞肉改成豬肉時,只要改xml的屬性就好
上文例子中,TestInterface呼叫時,從TestClass1改成TestClass2,只要改xml就好
Spring Container裡面有很多Object
BeanFactor讀取xml,建立Spring Bean (POJO) Object: https://www.geeksforgeeks.org/pojo-vs-java-beans/
加入constroctor-arg: https://github.com/fenturechance/spring-boot-practice-240128/commit/90a56657251112a2d340631f85eff91e9cc26d4a
---
ApplicationContext: https://www.geeksforgeeks.org/spring-applicationcontext/?ref=lbp
ApplicationContext是BeanFactory的子介面
所有 JavaBean 都是 POJO,但並非所有 POJO 都是 JavaBean
JavaBean: 字段只能由 getter 和 setter 存取 / 只有私有可見性 / 必須有一個無參數建構函數
加入AppConfig: https://github.com/fenturechance/spring-boot-practice-240128/commit/5b69a4eee897fbf06a0b513441ac5315db072392
---
BeanFactory(I)(已棄用) 和 ApplicationContext(I) 的層次結構: https://www.geeksforgeeks.org/spring-difference-between-beanfactory-and-applicationcontext/?ref=lbp
在 BeanFactory 中,bean 定義的自動組裝模式是透過使用基於 XML 的設定檔中的<bean/>元素的「 autowire」屬性來指定的。
在ApplicationContext中,我們可以在bean類別中的屬性或setter方法之上使用註解“@Autowired”
ClassPathXmlApplicationContext / ClassPathResource
急切初始化 / 延遲初始化
運行結果:
testInitial
第一次getBean之前
testDestroy
-----
第二次getBean之前
testInitial
沒有留言:
張貼留言