999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺談Spring框架的基本應(yīng)用

2022-05-30 02:46:11翟高粵
客聯(lián) 2022年7期

翟高粵

摘 要:Spring是當今流行的Java Web開發(fā)框架,它能解決大部分企業(yè)應(yīng)用開發(fā)的復(fù)雜性問題。對于Java開發(fā)人員來說,掌握Spring框架的基本使用,已是入職Java軟件開發(fā)行業(yè)的必備技能之一。本文主要介紹Spring框架及其體系結(jié)構(gòu)的基本內(nèi)容及應(yīng)用,并通過一個實例說明Spring框架的基本使用方法,理解Spring框架中IoC及DI的基本思想,對于Spring的入門學(xué)習(xí)有一定參考價值。

關(guān)鍵詞:Spring框架;Java EE;IoC;DI

一、引言

Spring 是在2003年興起的一個輕量級的Java應(yīng)用開發(fā)框架,它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring 的核心是控制反轉(zhuǎn)(IoC)和面向切面編程(AOP)。Spring 是可以在 Java SE/EE 中使用的輕量級開源框架。Spring通過使用基本的JavaBean來實現(xiàn)以前只能由EJB(企業(yè)JavaBean)完成的工作,一面世即迅速取代EJB臃腫、低效的開發(fā)模式,受到大批JAVA開發(fā)者的歡迎和支持。Spring致力于JavaEE應(yīng)用各層的解決方案,在表現(xiàn)層它提供了SpringMVC以及與Struts框架的整合功能;在業(yè)務(wù)邏輯層可以管理事務(wù)、記錄日志等;在持久層可以整合MyBatis、Hibernate、JdbcTemplate等技術(shù)。因此,Spring框架是企業(yè)應(yīng)用開發(fā)很好的框架之一。

二、相關(guān)理論

(一)Spring框架的特點

Spring具有簡單、可測試和松耦合等特點,Spring不僅可以用于服務(wù)器端的開發(fā),也可以用于任何Java軟件開發(fā)中。具體有如下特點:

(1)非侵入式設(shè)計

(2)方便解耦,簡化開發(fā)

(3)支持AOP

(4)支持聲明式事務(wù)處理

(5)方便程序測試

(6)方便集成各種框架

(7)降低Java EE API的使用難度

(二)Spring的體系結(jié)構(gòu)

Spring框架采用的分層設(shè)計架構(gòu),它根據(jù)一系列的功能分成20個模塊,具體如圖1所示。接下來對主要核心模塊進行簡單介紹。

(1)Core Container(核心容器)

Spring的核心容器是其他模塊建立的基礎(chǔ),它主要由Beans模塊、Core模塊、Context模塊、Context-support模塊和SpEL模塊構(gòu)成。Beans模塊提供了工廠模式的經(jīng)典實現(xiàn);Core模塊提供了Spring框架的基本組成部分,包括IcC和DI功能;Context模塊建立在Core和Beans模塊的基礎(chǔ)上,它是訪問定義和配置的任何對象的媒介;Context-support提供了對第三方庫嵌入Spring應(yīng)用的集成支持;SpEL模塊提供了Spring Expression Language支持,是運行時查詢和操作對象圖的強大的表達式語言。

(2)Data Access/Integration(數(shù)據(jù)訪問/集成)

數(shù)據(jù)訪問集成包括JDBC、ORM、OXM、JMS和Transactions模塊。JDBC模塊提供了一個JDBC的抽象層,大幅度地減少了在開發(fā)過程中對數(shù)據(jù)庫操作的編碼;ORM提供了對流行的對象關(guān)系映射API,包括JPA、JDO和Hibernate提供了集成層支持;OXM模塊提供了一個支持對象/OXM映射的抽象層實現(xiàn);JMS模塊指的是Java的消息傳遞服務(wù);Transactions事務(wù)模塊支持對實現(xiàn)特殊接口以及所有POJO類的編程和聲明式的事務(wù)管理。

(3)Web

Spring的Web層包括WebSocket、Servlet、Web和Portlet模塊。WebSocket模塊提了WebSocket和SockJS的實現(xiàn),以及對STOMP的支持;Servlet模塊提供了Spring的模型-視圖-控制器(MVC)和REST WebServices實現(xiàn)的Web應(yīng)用程序;Web模塊提供了基本的Web開發(fā)集成特性;Portlet模塊提供了在Portlet環(huán)境中使用MVC實現(xiàn),類似Servlet模塊的功能。

(4)其他模塊

Spring的其他模塊有AOP、Aspects、Instrumentation以及Test模塊。AOP模塊提供了面向切面編程實現(xiàn),允許定義方法攔截器和切入點,將代碼按照功能進行分離,以降低耦合性;Aspects模塊提供了與AspectsJ的集成功能,AspectsJ是一個功能強大且成熟的面向切面編程(AOP)框架;Instrumentation模塊提供了類工具的支持和類加載器的實現(xiàn),可以在特定的應(yīng)用服務(wù)器中使用;Messaging模塊提供了對消息傳遞體系結(jié)構(gòu)和協(xié)議的支持;Test模塊提供了對單元測試和集成測試的支持;

三、Spring核心容器

Spring框架的主要功能是通過其核心容器來實現(xiàn)的,Sping框架提供了兩種核心容器,分別為BeanFactory和ApplicationContext。

(一)BeanFactory容器

BeanFactory是由org.springframework.beans.factory.BeanFactory接口定義,是基礎(chǔ)類型的IoC容器,它提供了完整的IoC服務(wù)支持。BeanFactory是一個管理Bean的工廠,它主要負責初始化各種Bean,并調(diào)用它們的生命周期方法。

BeanFactory接口提供幾個實現(xiàn)類,其中最常用的是XmlBeanFactory,該類會通過XML配置文件中的定義來裝配Bean,語法實例如下:

BeanFactory beanFactory=new

XmlBeanFactory(new FileSystemResource(“c:/applicationContext.xml”);

(二)ApplicationContext

ApplicationContext是BeanFactory的子接口,也被稱為應(yīng)用上下文,是另一種Spring核心容器。它由org.springframework.context.ApplicationContext接口定義,不僅包含了BeanFactory的所有功能,還添加了對國際化、資源訪問、事件傳播等方面的支持。創(chuàng)建ApplicationContext接口實例,通常采用兩種方法。

(1)通過ClassPathXmlApplicationContext創(chuàng)建

ClassPathXmlApplicationContext會從類路徑classPath中尋找指定的XML配置文件,找到并加載ApplicationContext的實例化工作,其使用語法如下:

ApplicationContext applicationContext=new ClassPathXmlApplicationContext(String configLocation)

(2)通過FileSystemXmlApplicationContext會從指定的文件系統(tǒng)路徑中尋找指定的XML配置文件,找到并裝載完成ApplicationContext的實例化工作,其使用語法如下:

ApplicationContext applicationContext=new FileSystemXmlApplicationContext(String configLocation)

與ClassPathXmlApplicationContext有所不同的是,在讀取Spring的配置文件時,F(xiàn)ileSystemXmlApplicationContext不再從類路徑中讀取配置文件,而是通過參數(shù)指定配置文件的位置,這種采用絕對路徑的方式,會導(dǎo)致程序的靈活性變差,所以這種方法一般不推薦使用。

(三)Spring編程實現(xiàn)

以上是對Spring的核心容器的介紹,接下來通過一個實例說明Spring框架的編程步驟。

(1)在MyEclipse中,創(chuàng)建一個名為firstSpring的Web項目,將Spring的4個基礎(chǔ)包以及commons-logging的JAR包復(fù)制到lib目錄中,并發(fā)布到類路徑下,如圖2所示。

(2)在src目錄下,創(chuàng)建一個com.szjm.ioc包,并在包中創(chuàng)建接口UserDao,然后在接口中定義一個say()方法,代碼如下所示。

public interface UserDao{

public void say();}

(3)在com.szjm.ioc包下,創(chuàng)建UserDao接口的實現(xiàn)類UserDaoImpl,該類需要實現(xiàn)接口中的say()方法,并編寫一條輸出語句,代碼如下所示。

public class UserDaoImpl implements UserDao {

public void say() {

System.out.println("userDao say hello World !");

}

}

(4)在src目錄下,創(chuàng)建Spring的配置文件applicationContext.xml,并在配置文件中創(chuàng)建一個id為userDao的Bean,代碼如下所示。

<!-- 將指定類配置給Spring,讓Spring創(chuàng)建其對象的實例 -->

(5)在com.szjm.ioc包下,創(chuàng)建測試類TestIoC,并在類中編寫main() 方法,該main()方法需要初始化Spring容器,并加載配置文件,然后通過Spring容器獲取userDao實例,最后調(diào)用實例中的say()方法,代碼如下所示。

public class TestIoC {

public static void main(String[] args) {

ApplicationContext applicationContext =

new ClassPathXmlApplicationContext("applicationContext.xml");

UserDao userDao = (UserDao) applicationContext.getBean("userDao");

userDao.say();

}

}

執(zhí)行上述程序后,在控制臺的輸出結(jié)果如下所示。

四、結(jié)論

本文主要介紹Spring框架的基礎(chǔ)知識及一般應(yīng)用。首先講解了Spring框架的概念、作用、優(yōu)點、體系結(jié)構(gòu),然后介紹了Spring的兩種核心容器,接下來通過一個實例來說明如何使用Spring框架,并初步掌握Spring框架的使用方法。

參考文獻:

[1]沃爾斯. Spring實戰(zhàn) [M]. 人民郵電出版社,2016.

[2]卡內(nèi)爾. Spring開發(fā)三劍客[M],人民郵電出版社, 2020.

[3] 陳恒等. Spring Boot從入門到實戰(zhàn)[M]. 清華大學(xué)出版社出版社,2020.

主站蜘蛛池模板: 亚洲天堂2014| 国产欧美日韩另类| 国产91丝袜在线播放动漫 | 亚洲成aⅴ人在线观看| 欧美特黄一免在线观看| 婷婷伊人五月| 亚洲欧美日韩动漫| 中文字幕 日韩 欧美| 久久a级片| 成人年鲁鲁在线观看视频| 五月天久久综合| 日韩欧美国产成人| 国产精品19p| 亚洲AⅤ永久无码精品毛片| 97国内精品久久久久不卡| 亚洲女人在线| 特级精品毛片免费观看| 青青热久免费精品视频6| av无码久久精品| 77777亚洲午夜久久多人| 91视频国产高清| 午夜免费视频网站| 真实国产精品vr专区| 亚洲视屏在线观看| 老司机午夜精品网站在线观看| 无码电影在线观看| 国产香蕉在线视频| 91啪在线| 婷婷综合亚洲| 666精品国产精品亚洲| 91在线视频福利| 奇米影视狠狠精品7777| 99久久人妻精品免费二区| 女人毛片a级大学毛片免费 | 亚洲人成人伊人成综合网无码| 亚洲精品国偷自产在线91正片| 国产在线第二页| 亚洲中文字幕无码爆乳| 久久男人资源站| 国产微拍一区二区三区四区| 四虎国产精品永久一区| 亚洲欧美在线综合一区二区三区 | 秋霞一区二区三区| 亚洲无线国产观看| 久久夜夜视频| 国产不卡网| 国产精品污视频| 亚洲av无码久久无遮挡| 尤物亚洲最大AV无码网站| 国产一级无码不卡视频| 色综合手机在线| 国产三级国产精品国产普男人| 毛片网站观看| 一本大道在线一本久道| 91毛片网| 国产精品毛片一区| 欧美亚洲另类在线观看| 国产呦视频免费视频在线观看 | 99视频只有精品| 亚洲国产中文欧美在线人成大黄瓜| 制服丝袜在线视频香蕉| 亚洲欧洲日韩综合色天使| 亚洲综合香蕉| 69精品在线观看| 热伊人99re久久精品最新地| 久久久久国产精品嫩草影院| 波多野结衣在线一区二区| 亚洲综合九九| 毛片网站在线播放| 亚洲天堂久久久| 亚洲国产清纯| 国产麻豆永久视频| 一区二区影院| 99热这里只有精品国产99| 久久久国产精品无码专区| 亚洲看片网| 国产精欧美一区二区三区| 99视频精品在线观看| 国产在线精品香蕉麻豆| 国产麻豆aⅴ精品无码| 天天躁夜夜躁狠狠躁躁88| 亚洲最大福利网站|