摘要:如何降低開發(fā)的復(fù)雜性最小侵入編程通過面向接口和依賴注入實(shí)現(xiàn)松耦合基于編程慣例和切面進(jìn)行聲明式編程通過模板減少樣板式代碼容器在應(yīng)用中,不再由對象自行創(chuàng)建或管理它們之間的依賴關(guān)系容器負(fù)責(zé)創(chuàng)建對象裝配對象配置它們并管理它們的整個(gè)生命周期。
歡迎大家關(guān)注我的微信公眾號,一起探討Java相關(guān)技術(shù)
使用Spring的目的Spring是為了解決企業(yè)級應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的,使用Spring可以讓簡單的JavaBean實(shí)現(xiàn)之前只有EJB才能完成的事情。
Spring如何降低Java開發(fā)的復(fù)雜性最小侵入編程
通過面向接口和依賴注入實(shí)現(xiàn)松耦合
基于編程慣例和切面進(jìn)行聲明式編程
通過模板減少樣板式代碼
Spring容器在Spring應(yīng)用中,不再由對象自行創(chuàng)建或管理它們之間的依賴關(guān)系;Spring容器負(fù)責(zé)創(chuàng)建對象、裝配對象、配置它們并管理它們的整個(gè)生命周期。
容器是Spring框架的核心,是依賴注入和切面的基礎(chǔ),其自帶了多個(gè)容器實(shí)現(xiàn),這多個(gè)實(shí)現(xiàn)可以歸類為兩種不同的類型:
Bean工廠,提供基本的依賴注入支持
ApplicationContext,基于Bean工廠構(gòu)建,提供應(yīng)用框架級別的服務(wù)
ApplicationContext在實(shí)際的應(yīng)用中更廣泛、更受歡迎。
Spring自帶了多種類型的應(yīng)用上下文,其中最常用的幾種為:
AnnotationConfigApplicationContext:從一個(gè)或多個(gè)基于Java的配置類中加載Spring上下文
AnnotationConfigWebApplicationContext:從一個(gè)或多個(gè)基于Java的配置類中加載Spring Web應(yīng)用上下文
ClassPathXmlApplicationContext:從類路徑下的一個(gè)或多個(gè)xml配置文件中加載Spring上下文
FileSystemXmlApplicationContext:從文件系統(tǒng)下的一個(gè)或多個(gè)xml配置文件中加載Spring上下文
XmlWebApplicationContext:從Web應(yīng)用下的一個(gè)或多個(gè)xml配置文件中加載Spring上下文
Spring實(shí)例化Bean
Spring將值和Bean的引用注入到Bean對應(yīng)屬性中
如果Bean實(shí)現(xiàn)了BeanNameAware接口,Spring將Bean的id傳給setBeanName()方法
如果Bean實(shí)現(xiàn)了BeanFactoryAware接口,Spring調(diào)用setBeanFactor()方法,將BeanFactory實(shí)例傳入
如果Bean實(shí)現(xiàn)了ApplicationContextAware接口,Spring調(diào)用setApplicationContext()方法,將Bean所在的應(yīng)用上下文傳入
如果Bean實(shí)現(xiàn)了BeanPostProcessor接口,Spring調(diào)用postProcessBeforeInitialization()方法
如果Bean實(shí)現(xiàn)了InitializingBean接口或使用了init-method聲明了初始化方法,Spring調(diào)用afterPropertiesSet()方法
如果Bean實(shí)現(xiàn)了BeanPostProcessor接口,Spring調(diào)用postProcessAfterInitialization()方法
Bean初始化完畢,可以進(jìn)行使用,其將一直在應(yīng)用上下文中駐留,直到該應(yīng)用上下文銷毀
如果Bean實(shí)現(xiàn)了DesposableBean接口或使用了destroy-method聲明了銷毀方法,Spring將調(diào)用destroy()方法
Spring核心模塊Spring的模塊依據(jù)其所屬的功能可以劃分為6類。
core:Spring核心
context:Spring容器
beans:Spring的Bean工廠
expression:Spring表達(dá)式語言
context-support:Spring容器輔助支撐
aop:面向切面編程
aspectJ:切面注解相關(guān)
JDBC:數(shù)據(jù)庫訪問相關(guān)
JMS:消息相關(guān)
ORM:對象關(guān)系映射模型相關(guān)
OXM:XML映射模型相關(guān)
transaction:事務(wù)相關(guān)
Messaging:消息服務(wù)相關(guān)
Web MVC:Spring提供的MVC框架
Web Servlet:Servlet相關(guān)
WebSocket:Socket編程相關(guān)
使用場景有限,暫時(shí)不需要了解
Spring提供的測試框架
總結(jié)本文從總的方向上對Spring相關(guān)的內(nèi)容進(jìn)行了介紹,并不涉及任何細(xì)節(jié)的東西。主要涉及Spring的優(yōu)勢、Spring容器、Spring應(yīng)用上下文、Spring生命周期、Spring項(xiàng)目的模塊化。在接下來的文章中,將會通過示例的方式展示Spring每一項(xiàng)功能的使用。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/77433.html