第一章、Spring入門
一、Spring特點
(1)IOC解耦使用IOC機制避免硬編碼造成程序耦合
Spring就是一個大工廠,可以將所有對象創建和依賴關係維護,交給Spring管理
(2)AOP:Aspect Orentied Programing 面向切面編程
Spring提供面向切面編程,可以方便的實現對程序進行權限攔截、運行監控等功能
(3)聲明式事務管理
只需要通過配置就可以完成對事務的管理,而無需手動編程
(4)對JDBC進行封裝,更加靈活操作數據庫
(5)提供MVC設計模式:Spring MVC
(6)提供文件上傳,定時器等工具類
(7)對其他框架的支持(集成其他框架)
Spring不排斥各種優秀的開源框架,其內部提供了對各種優秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持
二、Spring框架結構
- Data Access/Integration層包含有JDBC、ORM、OXM、JMS和Transaction模塊。
-
Web層包含了Web、Web-Servlet、WebSocket、Web-Porlet模塊。
-
AOP模塊提供了一個符合AOP聯盟標準的面向切面編程的實現。
-
Core Container(核心容器):包含有Beans、Core、Context和SpEL模塊。
-
Test模塊支持使用JUnit和TestNG對Spring組件進行測試。
三、Spring框架的功能總覽
核心功能:
(1)Spring容器與bean的生命週期管理
(2)AOP
將輔助代碼在不修改原來代碼基礎上織入到原始對象的代碼中,對原來的代碼增強.
(3)數據訪問和集成
1.事務管理
1.編程式事務
2.無侵入性聲明式事務
2.JDBCTemplate支持
3.DAO支持
4.ORM框架支持
Hibernate JPA MyBatis
(4)Web
SpringMVC
視圖技術
其他WEB框架的集成
(5)外部系統集成
WEB Services EJB JMS JMX JCA CCI
Email 任務調度 動態語言支持 緩存
四、Spring快速入門
(1)引入Spring maven座標
在pom.xml引入spring-context maven座標
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.15.RELEASE</version>
</dependency>
</dependencies>
(2)編寫Spring核心配置文件
在src/main/resources右鍵-new-other-xml-XML File-next-applicationContext.xml,創建配置文件
名稱:任意,約定:applicationContext.xml
內容:參考spring文檔:spring-framework-5.1.5.RELEASE/docs/spring-framework-reference/core.html#spring-core
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>
在程序中讀取Spring配置文件,通過Spring框架獲得Bean,完成相應操作
(3)HelloWorld 實現
核心包:
spring-framework-5.1.5.RELEASE-dist.zip
包結構:org.springframework
Spring核心開發包:
spring-core-5.1.5.RELEASE.jar
包含Spring框架基本的核心工具類,Spring其它組件要都要使用到這個包裏的類,是其它組件的基本核心。
spring-beans-5.1.5.RELEASE.jar
所有應用都要用到的,它包含訪問配置文件、創建和管理bean
以及進行Inversion of Control(IoC) / Dependency Injection(DI)操作相關的所有類
spring-context-5.1.5.RELEASE.jar
Spring提供在基礎IoC功能上的擴展服務,此外還提供許多企業級服務的支持,
如郵件服務、任務調度、JNDI定位、EJB集成、遠程訪問、緩存以及各種視圖層框架的封裝等。
spring-expression-5.1.5.RELEASE.jar
Spring表達式語言
public class HelloService {
public String sayHello(String name) {
return "Hello "+name;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd">
<!--
id:bean的名稱,一般約定:類名首字母小寫
class:類的全限定名(包名+類名)
-->
<bean id="helloService" class="com.tjetc.service.HelloService"></bean>
</beans>
public static void main(String[] args) {
//實例化Spring容器對象
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
//從容器對象拿bean
HelloService helloService = (HelloService) context.getBean("helloService");
//調用對象的方法
String result = helloService.sayHello("李四");
//打印結果
System.out.println(result);
}