SpringBoot---項目業務初步實現

業務實現:基於SpringBoot腳手架(或者架子工),經過Spring框架進行Bean對象的管理實現

步驟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)。測試

常遇問題1:NosuchBeanDefinitionException NosuchBeanDefinitionException

解決辦法:須要在類上加上@註解,Bean池才能讀取到BeanDefinition的配置信息,才能將類讀取到內存中。spa

常遇到問題2:Unable to find a SpringBootConfiguration

Unable to find a SpringBootConfiguration
解決辦法:檢查單元測試類所在包是否在啓動類所在包或子包中prototype

常遇問題3:No test found with test runner 'Junit5'

解決辦法:1.檢查單元測試方法是否使用了private訪問修飾符設計

2.檢查單元測試方法的返回值是否不是void
    3.檢查單元測試方法是否寫了參數

步驟4:爲對象設計做用域,設置延遲加載,設置生命週期方法
**3d

  • @Lazy註解用於描述類,其目的是告訴spring框架此類支持延遲加載,一般會配合單例做用域使用。
  • @Scope 是Spring中用於定義Bean對象做用域的一個註解,其經常使用的值有

singleton(整個內存有一份Bean實例,此實例什麼時候建立與類的延遲加載特性配置有關,此實例建立之後,生命週期會由spring框架管理),prototype(每次獲取都會建立新實例,此實例會在須要時建立與lazy特性無關,這個實例建立之後,不會交給spring管理,spring能夠對其初始化,但不負責銷燬。)等。code

  • @PostConstruct 註解用於描述bean對象生命週期方法中的初始化方法,此方法會在對象的構造方法以後執行(是對象建立之後的初始化)。
  • @PreDestroy 註解用於描述Bean對象生命週期方法中的銷燬方法,此方法會在對象銷燬以前執行(看成用域爲prototype時,此方法不會執行)。

**Spring框架管理Bean對象的優點
**

Spring 是一個資源整合框架(Framework),經過spring可將不少資源(本身寫的對象或第三方提供的對象,例如鏈接池等)整合在一塊兒,而後進行科學應用,以便更好的對外提供服務。

**

**

Spring框架能夠爲由它管理的對象(Bean)提供懶加載策略(對象暫時用不到,則無需加載和實例化),做用域(例如singleton-頻繁用時能夠考慮內存中只有一份,prototype-使用次數少時能夠用時建立,不用時銷燬),生命週期方法(更好實現對象的初始化和資源銷燬),以實現對象對系統資源的有效使用。同時Spring框架還能夠基於用戶設計管理對象與對象的依賴關係,以下降對象與對象之間的直接耦合,提升程序的可維護性和可擴展性。

**

相關文章
相關標籤/搜索