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