工做閒着,快速回顧一下spring框架。Spring框架,是進行對象管理,對象關聯,解耦的一箇中間層框架。SSH(Struts+Spring+Hibernate)三大Spring在中間就起着一個承上啓下的做用。好,首先咱們先來看一下Spring框架的一些知識點,經過下邊這張圖來總括一下:spring
好,這篇博客我們先來對Spring框架進行一個初步的瞭解。編程
一,框架介紹:設計模式
1,先看一下幫助文檔的這張圖,裏邊主要包括了Spring自身的功能,還有能夠和其框架結合的一些框架,經過這張圖能夠看出,Spring框架和其餘框架的集成能力是很是強的。服務器
2,Spring是一個輕量級的IOC和AOP容器框架: app
a,輕量級:程序實現不是很複雜,代碼不是不少,佔用資源不是不少,沒有侵入性;框架
b,IOC(Inversion of Control 控制反轉):對象建立責任的反轉(重點,核心);單元測試
c, Aop(Aspect Oriented Programming):一種面向橫切面編程的思想方式,能夠進行功能性擴展,看前邊的一篇轉載的博客:面向橫切面(AOP)編程測試
d,容器:能夠容納對象,而且能夠控制對象的生命週期;spa
二,看一下使用步驟吧!(框架用多了,感受步驟都大同小異).net
1,仍是拷貝jar包:
2,拷貝框架的核心配置文件,存放在src目錄下:
3,編寫框架的核心配置文件,將聲明對象都交給Spring框架來建立,以及初始化,例如service層的類,action層類,dao層類等等,均可以交給Spring進行管理,看一個例子:
<bean id="loginAction" class="com.ljh.struts2.action.LoginAction" scope="prototype"></bean>
分析:
a,框架建立對象的方式:框架默認建立對象是單例的:scope="singleton",固然action咱們想要多例建立,須要設置:scope="prototype"
b,利用beanFactory加載配置文件:
工廠BeanFactory,,若是使用BeanFactory來加載Spring配置文件,那麼是在調用getBean時,框架調用對象的默認構造方法來建立對象。BeanFactory功能是對bean對象的生命週期進行管理的。(建立,初始化,銷燬)
//加載配置文件,建立Spring的應用環境 String path = "applicationContext.xml"; Resource resource = new ClassPathResource(path); //推薦 //Resource resource = new FileSystemResource("src/applicationContext.xml"); //Resource resource = new ServletContextResource(servletContext, path); //若是文件存放到WEB-INF目錄下 BeanFactory factory = new XmlBeanFactory(resource); //從Spring環境中獲取對象 Object obj = factory.getBean("loginAction"); LoginAction action = (LoginAction)obj ;
c, 利用ApplicationContext加載配置文件:
來用纔對象來加載Spring配置文件,會在加載時解析配置文件,建立對象,而不是在getBean時建立。其實,ApplicationContext接口繼承了BeanFactory,因此具有BeanFactory全部功能,同時增長擴展的功能,例如加載資源配置文件,國際化支持等!
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); Object obj = ac.getBean("loginAction");
三,Sping框架的優缺點:
優勢:
輕量級的容器框架,沒有侵入性
IoC更加容易組合對象之間的關係,經過面向接口進行編程,能夠低耦合開發。
易於本地測試(Junit單元測試,不用部署服務器)
AOP能夠更加容易的進行功能擴展,遵循OCP開發原則。
Spring默認對象的建立爲單例的,咱們不須要再使用單例的設計模式來開發單體類。
Spring的集成很強大,另外能夠對其餘框架的配置進行一元化管理。
Spring的聲明式事務的方便使用。
缺點:
自我感受是全部框架共有的,就是開發對設計要求較高,集成測試麻煩,對框架有必定的依賴性。
總而言之,Spring框架功能是很是強大的,單獨使用可能感受不是很深,和其餘的框架結合使用,就會張顯她的魅力了。