Spring 工程的搭建
1. 前言
“Spring 的工程如何創建?”
在上一章節中我們通過 Spring 的簡介,了解了 Spring 的概念、體系結構、與它的核心功能。那么本章帶你體驗一下 Spring 的項目開發和我們之前搭建過的開發項目有哪些不同。
2. 課程進入
2.1 Spring 框架版本介紹與依賴引入
版本歷史
Spring 誕生到現在經歷太多的歷史版本,有的已經消失在歷史長河中了… 我們選擇最新的版本給大家進行案例講解。
- 5.2.x 是最新的生產線(通常于 2019 年 9 月下旬提供);
- 5.1.x 是之前的生產線(自 2018 年 9 月以來),一直得到積極支持,直到 2020 年底;
- 5.0.x 于 2019 年第二季度進入 EOL 階段。出于對 5.0.x 用戶的禮貌,我們將在 2020 年 1 月之前提供主動維護,并在 2020 年底之前提供安全補?。ㄈ绻枰?/li>
- 4.3.x 是第四代的最后一個功能分支。它具有延長的維護期限,直到 2020 年 1 月,并且安全補丁甚至超過了這一點。4.3.x 將于 2020 年 12 月 31 日達到其正式停產(停產);
- 截至 2016 年 12 月 31 日,3.2.x 屬于產品停產(壽命終止)。該產品線中沒有計劃進一步的維護版本和安全補丁。請盡快遷移到 4.3 或 5.x。
我們建議從 Maven Central 升級到最新的 Spring Framework 5.2.x 版本。
以上是官網列出 Spring 的歷史版本介紹,我們采用的是 5.2.2 版本,對應的 jdk 最少是 jdk 1.8 ,我相信大家的 jdk 一般來講都是滿足要求的。
2.2 Spring 框架源碼下載
下載方式:
- 下載源碼文件 。
Spring 的源碼下載地址 :
https://github.com/spring-projects/spring-framework/releases - 第二種是使用 maven 的坐標方式 。
maven 的 pom 文件坐標。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.2.RELEASE</version>
</dependency>
3. 工程創建
準備好依賴之后 廢話不多說,我們開始擼代碼 。
3.1 使用 IDEA 創建 Web 工程
開發工具選擇 idea ,創建 Maven 的 jar 工程即可。因為涉及不到瀏覽器的請求,所以無需創建 web 工程。
創建 Maven 工程 。
補全坐標信息。
繼續下一步 finish 完成創建即可 這里不做截圖演示了。
3.2 引入項目使用的坐標依賴
將準備好的坐標信息粘貼到工程下 pom
文件中 。cv 大法總會吧?找準位置一下就貼上了。 看下圖:
3.3. 編寫 Spring 框架使用的配置文件
坐標有了之后,說明我們的工程中已經引入了 Spring 框架的依賴。小伙伴可以檢查下是否正確,點開左側的 External Libraries 查看一下 。
那么看到上面的 jar 包列表,表示 Spring 框架中的基本依賴我們已經成功引入。接下來:既然我們使用的是框架,框架是一個半成品,已經封裝好了很多功能提供我們使用,而我們如何讓他們工作呢? 這里需要一個和 Spirng 框架通信的橋梁 —Spring 框架的核心配置文件。
小提示:
文件的名稱你們可以隨便起,我習慣使用 applicationContext.xml
。
文件的位置放在哪里呢? maven 工程需要放在 src
下面的 resources
下面,如下圖:
那么配置文件是空的,不要著急。到底應該配置什么,不是自己臆想猜測的。
如果你已經下載了源碼,那么解壓縮它,打開 docs\spring-framework-reference 目錄,打開 core.html 查看官方文檔,
已經給了說明書你不看,你賴誰? 不知道怎么看?下圖告訴你:
將上面的實例配置信息拷貝到我們的配置文件中,它只是給了最基本的配置頭信息,內容部分 針對 bean 做初始化的部分 需要我們自行填充 。
4. 編寫代碼測試
準備好工程后,編寫我們的代碼。
4.1. 編寫接口 和接口的實現類
代碼如下:
//接口的代碼
public interface UserService {
public void saveUser();
}
//實現類的代碼
public class UserServiceImpl implements UserService {
public void saveUser() {
System.out.println("service的save方法執行了");
}
}
4.2. 補充 Spring 的配置文件
配置文件的目的是將我們自定義的實現類交給 Spring 的容器管理。因為 Spring 框架核心功能之一就是 IoC 控制反轉,目的是將對象實例化的動作交給容器。還記得第一節介紹的嗎?不記得了?走你,剩下的我們繼續。最終 Spring 的配置文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util https://www.springframework.org/schema/util/spring-util.xsd">
<!-- 此標簽的作用 是實例化UserServiceImpl類的實例 交給 Spring 容器 -->
<bean id="userService" class="com.wyan.service.impl.UserServiceImpl"></bean>
</beans>
4.3 測試結果
從容器中獲取對象實例,調用提供的方法
public class DemoTest {
public static void main(String[] args) {
ApplicationContext context =
new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
UserService service = (UserService) context.getBean("userService");
service.saveUser();
}
}
解釋:
ApplicationContext
是 Spring 框架提供的一個接口,目前只需要知道它是作為存儲實例化 bean 對象的容器即可。下一節我們會細講。context.getBean ()
方法是通過配置文件中聲明的 bean 標簽 id 屬性獲取容器內的實例。
最終結果如下:
可以看到控制臺打印輸出 證明確實從容器中獲取到了 userService 的實例。入門就是如此簡單…
5. 小結
技術之路很簡單 一是思路步驟清晰,二就是代碼的熟練度。
先理清入門示例的步驟 :
- 創建 Maven 工程;
- 導入 Spring 的依賴;
- 編寫 Spring 的配置文件;
- 編寫測試的代碼。