Spring框架簡介(一)
標簽: Spring框架
Spring是什么?
Spring框架致力于JavaEE應用各層的解決方案,Spring貫穿了表現層、業務層、持久層。然而,Spring并不是取代那些已有的框架,而是以高度的開放性與他們無縫整合。下圖是Spring框架通過IOC和AOP事務管理進行的SSH整合,其中包括了Shiro安全框架,用于身份驗證。
Spring的特點
- 輕量級:Spring是非侵入性的-基于Spring開發的應用中的對象可以不依賴于Spring的API,也就是不需要繼承或者實現接口或者實現類。
- 依賴注入(DI--- dependencyinjection、IOC),如A需要調用B,則A依賴B,只需要在A中聲明,Spring容器會將B的Bean注入A中。
- 面向切面編程(AOP--- aspect oriented programming)
- 容器:Spring是一個容器, 因為它包含并且管理應用對象的生命周期
- 框架:Spring實現了使用簡單的組件配置組合成一個復雜的應用.在Spring中可以使用XML和Java注解組合這些對象
- 一站式:在IOC和AOP的基礎上可以整合各種企業應用的開源框架和優秀的第三方類庫(實際上Spring自身也提供了展現層的SpringMVC和持久層的Spring JDBC)
Spring模塊圖
Spring主要由org.springframework.core、org.springframework.beans、org.springframework.context、org.springframework.expression 包組成,當使用Spring框架時必須使用Spring Core Container ,包含了核心(Core),Bean組件(Beans),上下文(Context)和表達式語言(Expression Language)模塊。
Spring的模塊大概分為6個,分別是:
1、Core Container(Spring的核心)【重要】
2、AOP(面向切面變成)【重要】
3、Messaging(消息發送的支持)
4、Data Access/Integration(數據訪問和集成)
5、Web(主要是SpringWeb內容,包括MVC)【重要】
6、Test(Spring測試支持,包含JUint等測試單元的支持)
7、Instrumentation(設備支持,比如Tomcat的支持)如果需要發布使用了Spring框架的 Java Web 項目,還需要將Spring框架包和commons-loggin-1.1.3.jar添加到Web應用的WEB-INF路徑下。
Spring核心容器管理著一切Java對象和Java組件,Spring一切管理的對象均被稱為bean
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<!-- Spring配置可以管理一切java對象和組件 -->
<bean id="string" class="java.lang.String"></bean>
<!-- 將User類交給Spring管理器進行管理 -->
<bean id="User" class="org.jcq.bean.User"></bean>
</beans>
Spring框架內對配置文件進行解析,Spring底層會執行如下形式的代碼
//解析XML<bean>標簽中的id屬性的值
String idStr = "user";
//解析XML<bean>標簽中的class屬性的值
String classStr = "org.jcq.bean.User";
//通過反射獲取Class類
Class clazz=Class.forName(classStr);
//用Class類獲取對象
Object obj=clazz.newInstance();
//以key-value的方式將obj放到Spring容器中便于管理
container.put(idStr,obj);
Spring中被人使用最多的可能就是他的依賴注入了,比如SSH整合的時候,必然會使用Spring的依賴注入。依賴注入簡寫DI,全稱:Dependency Injection。依賴注入也有另外一個名字叫做控制反轉(IOC)。智能推薦
CoreData 框架簡介(一)
CoreData 框架簡介(一) 這是該系列文章的第一篇,總體上介紹一下CoreData,目的是讓我們對其概念和使用有個初步的印象和了解,由于大部分都是文字內容,看起來可能會比較枯燥,但是還是建議大家努力看完。 iOS3.0引入的CoreData,用于本地存儲和檢索持久化數據;CoreData是一個功能強大的對象數據庫,提供了強大的數據存儲和管理能力。 CoreData能將對象映射到關系數據庫,讓...
spring 框架簡介與搭建
Spring的一個最大的目的就是使J2EE開發更加容易。同時,Spring之所以與Struts、Hibernate等單層框架不同,是因為Spring致力于提供一個以統一的、高效的方式構造整個應用,并且可以將單層框架以最佳的組合揉和在一起建立一個連貫的體系。可以說Spring是一個提供了更完善開發環境的一個框架,可以為POJO(Plain Old Java Object)對象提供企業級的服務。 Sp...
Java Spring MVC 框架:(一)SpringMVC的簡介與框架搭建
SpringMVC的簡介與框架搭建 1.Spring mvc 的概念 2.SpringMVC的框架搭建 為什么學習SpringMVC : 我們發現,每當用戶發送一個請求,就對應后臺一個servlet,如果用戶有100個請求,這個時候就需要用戶書寫100個servlet 使用現在servlet進行頁面數據接受的時候,我們發現相當的麻煩 我們書寫的java代碼和servlet 之間的耦合太高 1.Sp...
spring data 簡介(一)
目錄 Spring Data 概述 JPA Spring Data 概述 Spring Data JPA HelloWorld Repository 接口 Repository 子接口 Spring Data Repository 查詢方法定義規范 spring data 支持的關鍵字 級聯查詢 Spring Data 概述 Spring Data: ...
Spring MVC(一) 簡介
Spring MVC 簡介 作用:用于開發Java Web程序,搭建MVC結構。 Spring Web MVC具體實現 Spring Web MVC的底層實現過程 Spring Web MVC使用 搭建Spring Web MVC框架環境 引入spring ioc、webmvc核心包 引入applicationContext.xml 根據需求設計一個流程 需求:發出一個hello.do,響應一個h...
猜你喜歡
Spring框架(一)——Spring的簡介及其所用的依賴
1、Spring 1.1、簡介 Spring:春天------> 給軟件行業帶來了春天! 2002,首次推出了Spring框架的雛形:interface21框架! Spring框架即以interface21框架為基礎,經過重新設計,并不斷豐富其內涵,于*2004年3月24日,*發布了1.0正式版。 Rod Johnson ,Spring Framework創始人,著名作者。很難想象Rod J...
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...