使用Java的Spring框架編寫第一個程序Hellow world
Spring框架是什么?
Spring是為企業(yè)Java最流行的應(yīng)用程序開發(fā)框架。數(shù)以百萬計(jì)的世界各地的開發(fā)人員使用Spring框架來創(chuàng)建高性能,易于測試的,可重用的代碼。
Spring框架是一個開源的Java平臺,它最初是由Rod Johnson編寫并在2003年6月在Apache2.0許可下首次發(fā)布。
Spring是輕量級的,當(dāng)涉及到大小和透明度。 spring框架的基本版本是大約2MB。
Spring框架的核心功能可以在任何Java應(yīng)用程序中使用,但也有擴(kuò)展的Java EE平臺上構(gòu)建Web應(yīng)用程序。 Spring框架的目標(biāo),以使J2EE開發(fā)更容易使用,并且通過使基于POJO的編程模型,促進(jìn)良好的編程習(xí)慣。
使用Spring框架的好處:
以下是一些使用Spring框架的極大的好處列表:
Spring 使開發(fā)人員使用POJO來開發(fā)企業(yè)級應(yīng)用程序。僅使用POJO的好處是不需要EJB容器產(chǎn)品,如應(yīng)用服務(wù)器,但必須只使用一個強(qiáng)大的servlet容器,如Tomcat 或某些商業(yè)產(chǎn)品的選擇。
Spring 被組織在一個模塊化的方式。雖然包和類的數(shù)量是巨大的,你只有擔(dān)心那些需要的,而其它的就忽略了。
Spring不重新發(fā)明輪子,而是真正利用了一些像一些ORM框架,日志框架,JEE,Quartz和JDK定時器,其他視圖技術(shù)的現(xiàn)有技術(shù)。
編寫測試Spring的應(yīng)用程序很簡單,因?yàn)榄h(huán)境相關(guān)的代碼被移動到這個框架中。此外,通過使用JavaBean風(fēng)格的POJO,它變得更容易使用依賴注入注入測試數(shù)據(jù)。
Spring web框架是一個設(shè)計(jì)良好的Web MVC框架,它提供了一個很好的替代Web框架,如Struts或其他過度設(shè)計(jì)或不太流行的Web框架。
Spring提供了一個方便的API平移技術(shù)特定的異常(通過JDBC,Hibernate,或者JDO拋出,例如)成一致,未經(jīng)檢查的異常。
輕量級的IoC容器往往是輕量級的,尤其是相對EJB容器,例如。這有利于開發(fā)和有限的內(nèi)存和CPU資源的計(jì)算機(jī)上部署應(yīng)用程序。
Spring提供了一致的事務(wù)管理接口,可向下擴(kuò)展到(使用一個單一的數(shù)據(jù)庫,例如)本地事務(wù)并擴(kuò)展到全局事務(wù)(使用JTA,例如)。
依賴注入(DI):
Spring最有確定的技術(shù)是依賴注入控制反轉(zhuǎn)(DI)??刂品崔D(zhuǎn)(IoC)是一個籠統(tǒng)的概念,它可以表現(xiàn)在許多不同的方式和依賴注入僅僅是控制反轉(zhuǎn)的一個具體的例子。
當(dāng)編寫一個復(fù)雜的Java應(yīng)用程序,應(yīng)用程序類應(yīng)該盡可能獨(dú)立其他Java類來增加重復(fù)使用這些類,并獨(dú)立于其他類別的測試它們,而這樣做單元測試的可能性。依賴注入有助于粘合這些類在一起,同時保持他們的獨(dú)立。
什么是依賴注入是什么呢?讓我們來看看這兩個詞分開。這里的依賴性部分轉(zhuǎn)化為兩個類之間的關(guān)聯(lián)。例如,A類是依賴B類,現(xiàn)在,讓我們來看看第二部分,注入。這一切都意味著,B類將由IOC注入到A類得到。
依賴注入可以將參數(shù)傳遞給構(gòu)造函數(shù)的方式或使用后建設(shè)setter方法發(fā)生。依賴注入是Spring框架的核心,所以會在一個單獨(dú)的章節(jié),一個不錯的例子解釋這個概念。
面向切面編程(AOP):
Spring的一個關(guān)鍵組件是面向切面編程(AOP)框架??缭蕉鄠€點(diǎn)的應(yīng)用程序的功能被稱為橫切關(guān)注點(diǎn)和這些橫切關(guān)注點(diǎn)是從應(yīng)用程序的業(yè)務(wù)邏輯概念上區(qū)分開來。有方面的各種常見很好的例子包括日志記錄,聲明性事務(wù),安全性和高速緩存等。
模塊化的OOP關(guān)鍵單元是類,而在AOP中模塊化的單元則是切面。DI幫助您從彼此分離的應(yīng)用程序?qū)ο?,AOP可以幫助你消除來自他們影響的對象橫切關(guān)注點(diǎn)。
Spring框架AOP模塊提供了面向方面編程實(shí)現(xiàn),允許您定義方法攔截器和切入點(diǎn),以干凈脫鉤,實(shí)現(xiàn)的功能,應(yīng)該分開代碼。我將在單獨(dú)的一章討論Spring AOP的概念。
Hello World
讓我們從實(shí)際編程中使用Spring框架。在開始編寫使用Spring框架的第一個例子,你必須確保已經(jīng)設(shè)置Spring環(huán)境。需要對Eclipse IDE有一點(diǎn)知識。
因此,讓我們著手編寫一個簡單的Spring應(yīng)用程序?qū)⒋蛴?“Hello World!” 或基于Spring bean 配置文件來完成配置的其他信息。
第1步 - 創(chuàng)建Java項(xiàng)目:
第一步是使用Eclipse IDE 創(chuàng)建一個簡單的Java項(xiàng)目。選項(xiàng) File -> New -> Project 最后選擇 Java Project 從向?qū)Я斜硐驅(qū)А,F(xiàn)在,項(xiàng)目命名為 HelloSpring 使用向?qū)Т翱?,如下所示?br />
項(xiàng)目創(chuàng)建成功后,將在 Project Explorer 看到下面的內(nèi)容:
第2步 - 添加必需的庫:
第二步添加 Spring框架,并在我們的項(xiàng)目中通用的日志API庫。要做到這一點(diǎn),右鍵單擊您的項(xiàng)目名稱 HelloSpring 然后按照上下文菜單中提供以下選項(xiàng): Build Path -> Configure Build Path 如下顯示的Java 構(gòu)建路徑窗口:
現(xiàn)在,使用Add External JARs 選項(xiàng) Libraries 卡提供外部JAR按鈕,添加從Spring框架和通用日志安裝目錄下面的核心JAR文件:
- antlr-runtime-3.0.1
- org.springframework.aop-3.1.0.M2
- org.springframework.asm-3.1.0.M2
- org.springframework.aspects-3.1.0.M2
- org.springframework.beans-3.1.0.M2
- org.springframework.context.support-3.1.0.M2
- org.springframework.context-3.1.0.M2
- org.springframework.core-3.1.0.M2
- org.springframework.expression-3.1.0.M2
- commons-logging-1.1.1
第3步 - 創(chuàng)建源文件:
現(xiàn)在讓我們根據(jù)實(shí)際創(chuàng)建的源文件 HelloSpring 項(xiàng)目。首先,我們需要創(chuàng)建一個名為包 com.yiibai. 要做到這一點(diǎn),右鍵點(diǎn)擊 src 在包資源管理部分,并按照選項(xiàng):New -> Package.
下一步我們創(chuàng)建 HelloWorld.java 和 MainApp.java 在com.yiibai 包下文件。
這里是 HelloWorld.java 的文件的內(nèi)容:
package com.yiibai; public class HelloWorld { private String message; public void setMessage(String message){ this.message = message; } public void getMessage(){ System.out.println("Your Message : " + message); } }
下面是第二個文件 MainApp.java 的內(nèi)容:
package com.yiibai; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class MainApp { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml"); HelloWorld obj = (HelloWorld) context.getBean("helloWorld"); obj.getMessage(); } }
有以下兩個要點(diǎn)需要注意在主要程序中:
第一步是創(chuàng)建在這里我們使用框架API ClassPathXmlApplicationContext() 應(yīng)用程序上下文。這個API加載 beans 的配置文件,并最終基于所提供的API,它需要創(chuàng)建并初始化所有的對象。在配置文件中提到的beans 類。
第二個步驟是用來使用創(chuàng)建的上下文的 getBean() 方法獲得所需的bean。此方法使用 bean 的 id 返回,最終可以創(chuàng)建實(shí)際對象的通用對象。一旦有了對象,就可以使用這個對象調(diào)用任何類方法。
第4步 - 創(chuàng)建bean配置文件:
需要創(chuàng)建一個bean 配置文件,該文件是一個XML文件,并作為 cement 等類組合在一起。這個文件需要在src 目錄下創(chuàng)建如下圖所示:
通常開發(fā)人員保留此文件的名稱為 beans.xml 文件,但是必須為獨(dú)立的,選擇你喜歡的任何名稱。必須確保這個文件在 CLASSPATH 中可用,并使用相同的名稱在主應(yīng)用程序而創(chuàng)建的應(yīng)用程序上下文,如圖MainApp.java文件。
在 beans.xml 中用于分配唯一的ID,以不同的 bean 和控制創(chuàng)造不同的值對象,而不會影響任何 Spring 的源文件。例如,使用下面的文件,可以通過為“message”變量的任何值,這樣你就可以打印消息的不同的值,而不會影響的 HelloWorld.java 和 MainApp.java 文件。讓我們來看看它是如何工作的:
<?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 http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="helloWorld" class="com.yiibai.HelloWorld"> <property name="message" value="Hello World!"/> </bean> </beans>
在Spring 應(yīng)用程序被加載到內(nèi)存中,框架利用了上面的配置文件來創(chuàng)建所有定義的 Bean,并在 <bean> 標(biāo)記定義為它們分配一個唯一的 ID。您可以使用 <property> 標(biāo)簽來傳遞在創(chuàng)建對象時使用不同的變量的值。
第5步 - 運(yùn)行程序:
創(chuàng)建源代碼和 bean 配置文件來完成,準(zhǔn)備好這一步是編譯和運(yùn)行程序。要做到這一點(diǎn),保持 MainApp.Java 文件選項(xiàng)卡激活并使用在Eclipse IDE中提供 Run 選項(xiàng),或使用Ctrl + F11可以編譯并運(yùn)行應(yīng)用程序MainApp。如果一切順利那么應(yīng)用程序這將打印以下信息在 Eclipse IDE 控制臺:
Your Message : Hello World!
恭喜,你已經(jīng)創(chuàng)建了第一個Spring應(yīng)用并成功執(zhí)行。您可以通過更改“message”屬性的值,并保持兩者的源文件不變見上 Spring 應(yīng)用程序的靈活性。
- 使用IntelliJ IDEA2020.2.2 x64 新建java項(xiàng)目并且輸出Hello World
- linux環(huán)境下java程序打包成簡單的hello world輸出jar包示例
- Java的MyBatis框架項(xiàng)目搭建與hellow world示例
- Linux下Java開發(fā)環(huán)境搭建以及第一個HelloWorld
- Java之JFrame輸出Helloworld實(shí)例
- Java基礎(chǔ)教程之Hello World到面向?qū)ο?/a>
- java 學(xué)習(xí)筆記(入門篇)_java程序helloWorld
- Java輸出Hello World完美過程解析
相關(guān)文章
Spring security基于數(shù)據(jù)庫中賬戶密碼認(rèn)證
這篇文章主要介紹了Spring security基于數(shù)據(jù)庫中賬戶密碼認(rèn)證,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-03-03Java學(xué)習(xí)之如何進(jìn)行JSON解析
JSON(JavaScript?Object?Notation)是一種輕量級的數(shù)據(jù)交換格式,它算是JavaScript語言的一部分,與XML一樣都可以用于數(shù)據(jù)的存儲和傳輸,本文講給大家介紹如何進(jìn)行JSON解析,需要的朋友可以參考下2023-12-12Java實(shí)現(xiàn)時間日期格式轉(zhuǎn)換示例
本篇文章主要介紹了ava實(shí)現(xiàn)時間日期格式轉(zhuǎn)換示例,實(shí)現(xiàn)了各種時間輸出的類型,有興趣的可以了解一下。2017-01-01