步驟1:建立一個DefaultCache類,存儲到src/main/java目錄,而後交給spring管理。
@Component:是Spring中用於描述Bean類的一個註解。用於告訴Spring這個類的實例由Spring建立,當此對象由Spring建立和管理時,默認會將對象存儲到池(Bean池)中。java
步驟2:添加sringboot 測試類,進行bean的獲取及測試,要放在src/test/java目錄
@SpringBootTest 註解用於告訴spring框架,此測試類交給spring管理。spring
@Autowired註解描述屬性時,用於告訴spring框架要爲此屬性注入一個值?框架
步驟3:代碼設計及運行分析單元測試
描述了DefaultCacheTests類與DefaultCache類的關係,這兩個類經過指定註解(@SpringBootTest,@Component)進行了描述:spring框架這個兩個類的實例的建立由Spring負責,而且由Spring框架基於@Autowired註解的描述完成DefaultCacheTests實例中有關DefaultCache類型的值的注入(DI)。測試
解決辦法:須要在類上加上@註解,Bean池才能讀取到BeanDefinition的配置信息,才能將類讀取到內存中。spa
解決辦法:檢查單元測試類所在包是否在啓動類所在包或子包中prototype
解決辦法:1.檢查單元測試方法是否使用了private訪問修飾符設計
2.檢查單元測試方法的返回值是否不是void 3.檢查單元測試方法是否寫了參數
步驟4:爲對象設計做用域,設置延遲加載,設置生命週期方法
**3d
singleton(整個內存有一份Bean實例,此實例什麼時候建立與類的延遲加載特性配置有關,此實例建立之後,生命週期會由spring框架管理),prototype(每次獲取都會建立新實例,此實例會在須要時建立與lazy特性無關,這個實例建立之後,不會交給spring管理,spring能夠對其初始化,但不負責銷燬。)等。code
**Spring框架管理Bean對象的優點
**
Spring 是一個資源整合框架(Framework),經過spring可將不少資源(本身寫的對象或第三方提供的對象,例如鏈接池等)整合在一塊兒,而後進行科學應用,以便更好的對外提供服務。
**
Spring框架能夠爲由它管理的對象(Bean)提供懶加載策略(對象暫時用不到,則無需加載和實例化),做用域(例如singleton-頻繁用時能夠考慮內存中只有一份,prototype-使用次數少時能夠用時建立,不用時銷燬),生命週期方法(更好實現對象的初始化和資源銷燬),以實現對象對系統資源的有效使用。同時Spring框架還能夠基於用戶設計管理對象與對象的依賴關係,以下降對象與對象之間的直接耦合,提升程序的可維護性和可擴展性。
**