開啓 Spring 之旅:第一個 Spring 程序 ![Spring][Eclipse 使用 Spring][Eclipse 配置 Spring 約束文件][Eclipse 配置 xml 模版]

您的「關注」和「點贊」,是信任,是承認,是支持,是動力......html

如意見相佐,可留言。
本人必將不遺餘力試圖作到準確和全面,終其一輩子進行修改補充更新。web

具體案例:演示 IoC 容器的使用

經過具體實例演示 IoC 容器的使用,步驟以下所示。
本文使用的開發工具爲:spring

Eclipse IDE for Enterprise Java Developers.

Version: 2018-12 (4.10.0)
Build id: 20181214-0600

第一步:建立工程項目

工程項目是基礎。在 Eclipse 中建立 Web 項目spring-demoapache

將 Spring 框架所需的 JAR 包複製到項目的 lib 目錄中,並將其添加到類路徑下(選中每一個 jar 包 → 右鍵 → Build Path → Add to Build Path),添加後的項目以下圖所示:
在這裏插入圖片描述微信

第二步:建立實現類

建立交給 Spring 來實例化的實現類。一般先建立 Dao 接口,再建立 Dao 接口的實現類。app

(1)先建立 Dao 接口框架

在項目的 src 目錄下建立一個名爲 com.manongajie.dao 的包,在該包中建立一個名爲 UserDao 的接口,並在接口中添加一個 add() 抽象方法,以下所示:eclipse

package com.manongajie.dao;

/**
 * Dao 接口(演示用)
 * 
 * @author manongajie
 *
 */
public interface UserDao {

	public void add();
}

(2)建立 Dao 接口的實現類 UserDaoImplwebapp

com.manongajie.ioc 包下建立 UserDao的實現類 UserDaoImpl,代碼以下所示:ide

package com.manongajie.ioc;

import com.manongajie.dao.UserDao;

public class UserDaoImpl implements UserDao {

	@Override
	public void add() {
		// TODO Auto-generated method stub
		System.out.println("添加了一個 user 。");
	}

}

第三步:建立 Spring 配置文件

1 配置 Spring 約束

1.1 Spring 約束概述

Spring 自己是基於 xml 配置來工做的,在使用 Spring 的過程當中不可避免的要編寫大量 xml 配置,Spring 官方提供了這些 xml 文件的編寫規範,這是經過提供 xml 的約束文件來實現的。

簡單理解, xml 的約束實際上是一種限定 xml 文件寫法的技術,主要分爲兩種:

  • DTD,一般文件的後綴.dtd
  • Schema,一般文件的後綴爲.xsd

Spring 提供了 Schema 格式的約束,來限定 Spring 配置文件的寫法。

1.2 將 Spring 的約束文件交給 Eclipse 管理

開發者能夠經過閱讀 Spring 提供的約束文件來了解 Sprinig 的 xml 配置的寫法。

可是,這麼整的話會很麻煩,因此,一般咱們會將約束文件交給開發工具管理(本文用的是 Eclipse),開發工具能夠經過解析約束文件瞭解 xml 的寫法,並在須要時爲開發者提供標籤提示。

如何將 Spring 的約束文件(這裏只整 Spring beans 的約束文件)交給 Eclipse 來管理呢?

請參見如下步驟,

(1)找到 Spring 的約束文件,路徑爲:\spring-5.2.6.RELEASE-dist\spring-framework-5.2.6.RELEASE\schema\beans。一步步打開存放 Spring 框架的目錄spring-framework-5.2.6.RELEASE,以下圖所示:

在這裏插入圖片描述
打開此目錄,以下圖所示:

在這裏插入圖片描述
再打開schema目錄,以下圖所示:

在這裏插入圖片描述
再打開beans目錄,就找到 Spring beans 約束文件了。以下圖所示:

在這裏插入圖片描述
(2)打開 Eclipse 的 /Window/Preferences ,配置其中的XML Catalog,以下圖所示:

在這裏插入圖片描述
找到上圖中的 ③ 按鈕「Add」,點擊在新彈出的選項卡中導入上一步找到的spring-beans.xsd文件,並設置好名稱空間,一般是在自動識別的名稱空間以後再加上/文件名/spring-beans.xsd),點擊OK便可。以下圖所示:

在這裏插入圖片描述

2 配置 xml 模版,用來快速生成 xml 文件

xml 文件模版代碼,能夠去官網獲取,不一樣版本的 Spring 框架,配置文件頭約束的寫法是不一樣的,建議去官網獲取。以下所示(spring 5.2.6 版本):

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="..." class="...">  
        <!-- collaborators and configuration for this bean go here -->
    </bean>

    <bean id="..." class="...">
        <!-- collaborators and configuration for this bean go here -->
    </bean>

    <!-- more bean definitions go here -->

</beans>

因爲 Eclipse 不會自動生成如上所示的 xml 文件(至少本人所安裝的 Eclipse 沒有自動生成),須要手動敲寫代碼,能夠看出來,通常人真記不住,得複製粘貼,比較麻煩。常常要用到的話,仍是配置一個 xml 模版比較好,能夠快速生成 所需的 xml 文件。

配置 xml 模版步驟以下所示:

(1)在 Eclipse 中的/Window/Preferences中配置新模版,以下圖所示:

在這裏插入圖片描述
(2)點擊New 按鈕,進入到New Template選項框中,進行設置模版,所有搞定以後,點擊OK便可。以下圖所示:

在這裏插入圖片描述

3 建立 Spring 配置文件(使用 xml 模版)和編寫配置文件內容

3.1 建立 Spring 配置文件(使用 xml 模版)

src 目錄下建立 Spring 的核心配置文件 applicationContext.xml(這個 xml 文件名是能夠自定義的),以下圖所示:

在這裏插入圖片描述
選中咱們提早建立好的模版,肯定以後,以下圖所示:

在這裏插入圖片描述

3.2 編寫配置文件內容

applicationContext.xml配置文件建立好以後,就能夠寫配置了,以下代碼所示:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">
	<!-- 2 到 5 行是 Spring 的約束配置 -->
	
    <!-- 由 Spring 容器建立該類的實例對象:bean spring 管理的類都稱爲 bean
    	id 表示文件的惟一標識,不能重複,「駝峯命名法」首字母小寫;
    	class 表示指定須要實例化的 Bean 的全限定類名(包名+類名)。 -->
    	
	<bean id="userDaoImpl" class="com.manongajie.ioc.UserDaoImpl"></bean>
	
	<!-- 還能夠設置別名標籤:經過 IoC 容器獲取 userDao 實例。applicationContext.getBean("user") -->
	<alias name="userDaoImpl" alias="user"></alias>
	
</beans>

第四步:編寫測試類

com.manongajie.test 包下建立測試類 SpringTest1,並在該類中添加一個名爲 test1() 的方法,代碼以下所示:

package com.manongajie.test;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.manongajie.dao.UserDao;

public class SpringTest1 {
	@Test
	public void test1() {
		
		// 定義Spring配置文件的路徑
		String xmlPath = "applicationContext.xml";
		
		// 初始化 Spring 容器,加載配置文件
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);
		
		// 經過 IoC 容器獲取 userDao 實例。applicationContext.getBean(id)
		//UserDao userDaoImpl = (UserDao) applicationContext.getBean("userDaoImpl");
		
		// 經過 IoC 容器獲取 userDao 實例。applicationContext.getBean(全限定類名.class)	
		UserDao userDaoImpl = (UserDao) applicationContext.getBean(com.manongajie.ioc.UserDaoImpl.class);
		
		// 別名標籤:經過 IoC 容器獲取 userDao 實例。applicationContext.getBean("user")		
//		UserDao userDaoImpl = (UserDao) applicationContext.getBean("user");

		// 調用 UserDao 的 add() 方法
		userDaoImpl.add();
	}
}

運行結果(使用 JUnit 測試運行 test1() 方法,運行成功後,控制檯的輸出結果):

添加了一個 user 。

由以上代碼能夠看出,在程序執行時,對象的建立並非經過 new 一個類完成的,而是由 Spring 容器管理實現的。這就是 Spring IoC 容器思想的工做機制。

【文章其餘地址】

微信公衆號:碼農阿杰

CSDN 博客

【參考資料】

spring

Artifact Repository Browser

Apache Commons

相關文章
相關標籤/搜索