亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇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的入門學習有一定參考價值。

        關(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]. 清華大學出版社出版社,2020.

        一本一本久久a久久精品综合| 国产精品熟女视频一区二区三区 | 国产91久久精品成人看网站| 精品欧美一区二区三区久久久| 乱色熟女综合一区二区三区| 99精品国产高清一区二区麻豆| 人妻少妇不满足中文字幕| 中文字幕无码免费久久9一区9| 日本熟妇裸体视频在线| 偷拍综合在线视频二区日韩| 亚洲中文无码av永久| 国产麻豆成人精品av| 中文字幕无码精品亚洲资源网久久 | 国产av一卡二卡日韩av| 女人被爽到高潮视频免费国产| 四虎影视永久在线精品| 无码日日模日日碰夜夜爽| 午夜无码亚| 偷拍美女一区二区三区视频| 五月婷婷六月丁香久久综合| 精品国产av一区二区三区| 国内精品久久久久久中文字幕| 久久久国产精品免费无卡顿| 扒开双腿操女人逼的免费视频| 国产二区中文字幕在线观看| 国产一区二区三区小说| 亚洲av成人无码久久精品| 91精品国产91久久久无码色戒| 男人天堂亚洲一区二区| 成人在线免费电影| 婷婷四房播播| 中文在线最新版天堂av| 亚洲国产成人av二区| 国产精品成人va在线观看| 久久精品中文字幕第23页| 日韩精品一区二区三区含羞含羞草| 丰满女人猛烈进入视频免费网站| 久久久久久伊人高潮影院| 亚洲国产精品综合福利专区 | 亚洲高清国产品国语在线观看| 一本色道久久亚洲精品|