日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring松耦合的实现

發布時間:2025/3/21 javascript 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring松耦合的实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

HelloShiyanlou 與松耦合的實現

一、實驗介紹

1.1 實驗內容

本節實驗將帶你入門簡單的 Maven 項目創建和如何實現松耦合。

1.2 實驗知識點

  • Maven 介紹
  • Spring 松耦合

1.3 實驗環境

  • JDK1.7
  • Eclipse JavaEE

二、項目文件結構

三、 實驗步驟

3.1 實驗環境介紹

3.1.1 Maven 簡介

在項目開始之前,我們先來了解一下Maven相關知識。

Maven 是一個項目管理和綜合工具。Maven 提供了開發人員構建一個完整的生命周期框架。開發團隊可以自動完成項目的基礎工具建設,Maven 使用標準的目錄結構和默認構建生命周期。

在多個開發團隊環境時,Maven 可以設置按標準在非常短的時間里完成配置工作。由于大部分項目的設置都很簡單,并且可重復使用,Maven 讓開發人員的工作更輕松,同時能夠創建報表,檢查、構建和測試自動化設置。

Maven提供了開發人員的方式來管理:

  • Builds
  • Documentation
  • Reporting
  • Dependencies
  • SCMs
  • Releases
  • Distribution
  • mailing list

概括地說,Maven簡化和標準化項目建設過程,處理編譯,分配,文檔,團隊協作和其他任務的無縫連接。 Maven增加可重用性并負責建立相關的任務。

3.1.2 Maven 環境搭建

請打開實驗環境桌面上的 Xfce ,輸入:

wget http://labfile.oss.aliyuncs.com/courses/33/apache-maven-3.3.9-bin.tar.gz

獲取 Maven 最新安裝包。 然后解壓,繼續輸入:

tar -zvxf apache-maven-3.3.9-bin.tar.gz

接下來,部署,繼續輸入:

sudo gedit /etc/profile

用 gedit 編輯器打開 profile 文件,修改 Path 。

在 profile 文件的最后輸入:

#set Maven environment export MAVEN_HOME=/home/shiyanlou/apache-maven-3.3.9 export PATH=${MAVEN_HOME}/bin:${PATH}

設置好 MAVEN_HOME 和 PATH 之后,保存退出。

然后輸入:

source /etc/profile

使操作立即生效。

至此,此 Maven 安裝完成,繼續輸入:

mvn -v

顯示如圖,則安裝成功。

3.1.3 導入 Maven 項目所需的包

由于 Maven 新建項目需要很多包,首先會掃描本地倉庫,如果沒有則需要聯網,在中央倉庫下載到本地倉庫。我們已經把本次項目需要的包已經打包傳到服務器上,現在,我們只需要從實驗樓下載所要的包,并安放到正確的位置即可。

仍舊在 Xfce 中,輸入:

wget http://labfile.oss.aliyuncs.com/courses/33/res.tar.gz

然后,解壓:

tar -zvxf res.tar.gz

解壓完成后,生成的 .M2 文件夾和之前我們解壓的 apache-maven-3.3.9 同在目錄:?/home/shiyanlou/?下。已知,默認的 maven 本地倉庫在?/home/shiyanlou/.m2/?下。(作業:由何處可以看出本地倉庫的默認路徑?)所以我們解壓好的文件正好覆蓋源?.m2?文件夾。?.m2?文件夾的默認是隱藏文件夾,若要查看,請點擊?視圖?,點擊:?顯示隱藏文件?。如圖:

3.2 創建 Maven 工程

打開 eclipse ,鼠標右鍵新建,other ,如圖:

在里面可以找到 Maven 選項卡,點擊 Maven Project , 點擊 Next ,如圖:

選擇默認的工程位置如圖:

點擊 Next。

創建普通的 maven 工程,選擇如圖:

點擊 Next 。

填寫:

  • Group Id:項目的組織機構,也是包的目錄結構,一般都是域名的倒序,比如?com.shiyanlou.demo?;
  • Atifact Id :項目實際的名字,比如 spring3-Example ;
  • Packaging :可在 Group Id 后加?.Atifact Id;
  • Version :項目版本號比如?1.0-SNAPSHOT。

這三個選項對應于自動生成的 pom 文件中相應的配置。如圖:

最后點擊 Finish ,創建完成。

3.3 代碼編寫

3.3.1 創建 pom.xml

打開項目的 pom.xml ,進行Spring部署,如圖:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.shiyanlou.demo</groupId><artifactId>spring3-Example</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>spring3-Example</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><!-- Spring3 deploy --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.0.9.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.0.9.RELEASE</version></dependency></dependencies> </project>

實際上,Maven 使用這三個值來唯一指定一個項目。引用一個庫文件也是通過這三個值來確定所引用的庫及其版本號,比如本例引用最新的 junit 庫版本為 3.8.1. 此時假定 junit 還需引用其它庫, Maven 自動管理而無需在 pom 文件中指定。

3.3.2 創建 HelloWorld.java

接下來,我們在項目名上右鍵再創建一個 Spring bean,首先創建一個包,包名為?com.shiyanlou.demo.helloworld?:

再在該包內創建一個類,類名為 HelloWorld:

并將 HelloWorld.java 編輯如下:

package com.shiyanlou.demo.helloworld;public class HelloWorld{private String name;public void setName(String n){this.name=n;}/**創建打印Hello方法*/public void printHello(){System.out.println("The first Spring 3:hello"+name);} }

3.3.3 創建 SpringBeans.xml

我們先在?src/main/?下新建一個 Folder,命名為?resources,如圖所示:

現在可以開始創建 Spring Bean 配置文件,創建文件 SpringBeans.xml ,配置 bean 如下。文件位于?src/main/resources下。

編輯 SpringBeans.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/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsd"><bean id="helloBean" class="com.shiyanlou.demo.helloworld.HelloWorld"><property name="name" value="shiyanlou" /></bean></beans>

3.3.4 創建測試 App

在?com.shiyanlou.demo.spring3_Example?包下創建一個類,類名為 App:

package com.shiyanlou.demo.spring3_Example;import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;import com.shiyanlou.demo.helloworld.HelloWorld;public class App {private static ApplicationContext context;public static void main( String[] args ){context = new ClassPathXmlApplicationContext("SpringBeans.xml");HelloWorld obj = (HelloWorld) context.getBean("helloBean");obj.printHello();}}

3.3.5 作為 java application 運行

結果如下:

至此,helloworld 程序便成功完成!

3.4 松耦合的目的

上一部分,我們已經創建了 Maven 項目,打印出了 HelloShiyanlou 。為了方便,我使用上面的工程, pom.xml 文件一致,不必修改。下面,我們實驗證明 Spring 的松耦合。假設項目需要輸出到 CVS 或者 JSON 。實驗效果如圖: 輸出 CVS :

輸出 JSON :

3.5 松耦合代碼編寫

3.5.1 IOutputGenerator.java

創建?com.shiyanlou.demo.loosely_coupled?包,新建一個一個 IOutputGenerator 接口:

接口內容如下:

package com.shiyanlou.demo.loosely_coupled;public interface IOutputGenerator {public void generateOutput();}

3.5.2 CsvOutputGenerator.java

CVS 輸出,實現了IOutputGenerator 接口。同樣的步驟,步驟如下:

內容如下:

package com.shiyanlou.demo.loosely_coupled;public class CsvOutputGenerator implements IOutputGenerator {public void generateOutput() {System.out.println("Creating CsvOutputGenerator Output......");}}

3.5.3 JsonOutputGenerator.java

JSON 輸出,實現了 IOutputGenerator 接口,步驟如下:

內容如下:

package com.shiyanlou.demo.loosely_coupled;public class JsonOutputGenerator implements IOutputGenerator {public void generateOutput() {System.out.println("Creating JsonOutputGenerator Output......");}}

3.6 用 Spring 依賴注入調用輸出

用 Spring 的松耦合實現輸出相應的格式。
首先在?com.shiyanlou.demo.loosely_coupled?包內創建一個需要用到輸出的類 OutputHelper.java ,內容如下:

package com.shiyanlou.demo.loosely_coupled;public class OutputHelper {IOutputGenerator outputGenerator;public void generateOutput(){this.outputGenerator.generateOutput();}public void setOutputGenerator(IOutputGenerator outputGenerator){this.outputGenerator = outputGenerator;} }

3.7 創建一個 spring 配置文件

此文件用于依賴管理?src/main/resources?下創建配置文件 Spring-Output.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/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsd"><bean id="OutputHelper" class="com.shiyanlou.demo.loosely_coupled.OutputHelper"><property name="outputGenerator" ref="CsvOutputGenerator" /></bean><bean id="CsvOutputGenerator" class="com.shiyanlou.demo.loosely_coupled.CsvOutputGenerator" /><bean id="JsonOutputGenerator" class="com.shiyanlou.demo.loosely_coupled.JsonOutputGenerator" /></beans>

3.8 App.java

此文件用于通過 Spring 調用相應的 output ,內容如下:

package com.shiyanlou.demo.spring3_Example;import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;import com.shiyanlou.demo.loosely_coupled.OutputHelper;public class App {private static ApplicationContext context;public static void main( String[] args ){context = new ClassPathXmlApplicationContext(new String[] {"Spring-Output.xml"});OutputHelper output = (OutputHelper)context.getBean("OutputHelper");output.generateOutput();}}

現在,已經實現了松耦合,當需要輸出改變時,不必修改任何代碼 .java 文件,只要修改 Spring-Output.xml 文件?<property name="outputGenerator" ref="CsvOutputGenerator" />?中的 ref 值,就可以實現輸出不同的內容,不修改代碼就減少了出錯的可能性。

實驗目錄:

3.9 運行結果

當 Spring-Output 如下時:

<bean id="OutputHelper" class="com.shiyanlou.demo.loosely_coupled.OutputHelper"><property name="outputGenerator" ref="CsvOutputGenerator" /></bean>

運行結果為:

當 Spring-Output 如下時:

<bean id="OutputHelper" class="com.shiyanlou.demo.loosely_coupled.OutputHelper"><property name="outputGenerator" ref="JsonOutputGenerator" /></bean>

運行結果為:

四、實驗總結

本節介紹了 HelloWorld 的 spring 簡單項目,并簡單介紹了松耦合的概念。下一節我們將進入 IoC 容器的學習。

五、課后習題

由何處可以看出本地倉庫的默認路徑?

六、參考鏈接

本課程后續實驗基于博客園 leiOOlei 博文制作,內容由原作者?leiOOlei?授權實驗樓使用。



from:?https://www.shiyanlou.com/courses/578/labs/1923/document

總結

以上是生活随笔為你收集整理的Spring松耦合的实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。