Spring 框架優缺點
優點:
- 通過IoC控制反轉,將建立物件交給spring的IoC容器,降低了程式間的耦合
- 由於AOP,使spring能夠面向切面程式設計,減少了重複程式碼
- 宣告式事務支援
- 整合支援了主流框架 (Hibernate,Struts2,JPA)
- 方便的測試程式碼編寫
- DI機制降低了業務物件替換的複雜性(更改物件名,方法名,資料庫配置等等)
- 對很多Java EE API進行了封裝,降低了它們的使用難度(JDBC, JavaMail…)
缺點
- 元件程式碼輕量級,配置重量級。配置過於繁瑣。
- 搭建環境時專案的依賴關係分析交複雜。
Spring Boot
- 解決 Spring 框架的缺點
- 沒有程式碼生成,無需XML配置。快速配置。
- 提供了一些大型專案中非功能性特性。(嵌入式伺服器,)
- 核心功能:
- 起步依賴
- Maven 專案物件模型(POM),定義了對其他庫的傳遞依賴
- 自動配置
- 應用程式啟動時配置的過程,自動完成
- 起步依賴
熱部署
在pom.xml
中spring-boot-devtools
座標,使修改程式碼時無需重啟專案即可生效。
入門部署程式碼
- 在pom.xml中繼承SpringBoot的起步依賴spring-boot-starter-parent
- 新增spring-boot-starter-web依賴進行web開發
- 編寫SpringBoot引導類,是為了啟動 spring boot 專案,此引導類將掃描其同級包及其子包中的所有程式。
- 編寫controller,使用@Controller, @RequestMapping, @ResponseBody 註解
- 進行測試
起步依賴
- 所有 spring boot 專案必須繼承 spring-boot-starter-parent,因為裡面已經配置好了 spring 所需的各種依賴。
- 同樣,匯入的依賴 spring-boot-starter-web 和 spring-boot-starter-test 也有同樣的依賴打包。
自動配置
- @SpringBootApplication 包含了很多其他註解。
- 如@SpringBootConfiguration,意味開啟了Spring Boot功能
- @EnableAutoConfiguration,開啟了自動配置
- @ComponentScan,掃描需要的類,包括和 Spring Boot 開啟類同級的包以及其子包所有的類。
Spring Boot 整合其他技術
Mybatis
- 新增 Mybatis 的起步依賴和 Mysql 的依賴
- 在application.properties中配置資料庫連線資訊
- 注意新版本mysql依賴中需要我們在資訊中明確時區
- 建立資料表(案例中是user表)
- 建立user表的實體Bean(包含各個引數的setter和getter)
- 編寫Mapper介面,其中是相關的資料庫操作成員方法。
- 配置UserMapper.xml,實現資料庫操作語句
- 在application.properties配置mybatis資訊(要掃描的包,對映檔案)
- 在controller中測試mybatis的使用
Junit
問題:spring boot 已經在 pom.xml 中為我們新增了測試相關的依賴
spring-boot-starter-test
,由於預設使用 junit5,而 spring boot 2.x.x 只支援 junit4,所以在測試類中使用 @RunWith 註解會報錯。解決:我們需要將其中的
exclusions
刪除,因為所排出的junit-vintage-engine
中包含了junit4的依賴,這正是我們需要的。解決此問題後,我們在測試類前使用
@RunWith(SpringRunner.class)
以及@SpringBootTest(SpringApplication.class)
註解匯入引導類。使用
@AutoWired
註解自動注入所需測試的物件。在測試方法前加
@Test
註解
本作品採用《CC 協議》,轉載必須註明作者和本文連結