|
課程主要內容
|
目錄
Spring能做什麼?
Spring是一個輕量級的控制反轉(IoC/di)和麪向切面編程(AOP) 的對象容器框架
Spring官網:http://spring.io/
Spring 是一個於 2003 年興起的一個輕量級的 Java 開源開發框架
如今Spring已是Java項目的標配,它極大的簡化了開發過程,降低了開發難度。
- 方便解耦,簡化開發;
- AOP 編程的支持;
- 聲明式事務的支持;
- 方便程序的測試;
- 方便集成各種優秀框架。
IoC
Inversion of Control
AOP
Aspect Oriented Programming
Spring5新特性
Spring5 是一個重要的版本,距離SpringFramework4差不多四年
- 支持JDK8
- Spring 接口中的默認方法
- 基於 Java8 反射增強的內部代碼改進
- 在框架代碼中使用函數式編程 - lambda表達式 和 stream流
- 響應式編程支持Spring Web Reactive異步的、非阻塞的、事件驅動的服務
- 支持J2EE7
- Servlet 3.1
- JMS 2.0
- JPA 2.1
- JAX-RS 2.0
- Bean Validation 1.1
- Hibernate 5
- Jackson 2.6
- EhCache 2.10
- JUnit 5
- Tiles 3
- Kotlin
開發環境
Spring Jar包
SpringFramework官網下載地址:
https://repo.spring.io/libs-release-local/org/springframework/spring/
解壓縮Jar包可以看見如下結構
- Doc 文檔
- Libs Jar包
- Schema XML約束
- license.txt 許可協議
- notice.txt 注意事項
- readme.txt 讀我
常用Jar包
spring-core |
框架的基礎功能,包括IOC和AOP功能 |
spring-aspects |
提供了與AspectJ的集成,AspectJ是一個面向切面的框架,它擴展了Java語言。AspectJ定義了AOP語法,它有一個專門的編譯器用來生成遵守Java字節編碼規範的Class文件。 |
spring-beans |
所有應用都要用到,包含訪問配置文件、創建和管理 bean 以及進行 Inversion of Control(控制反轉) / Dependency Injection(依賴注入)操作相關的所有類。外部依賴 spring-core |
spring-context |
|
spring-aop、spring-instrument |
面向切面編程、植入代理 |
spring-expression |
模塊提供了強大的表達式語言去支持查詢和操作運行時對象圖。這是對JSP 2.1規範中規定的統一表達式語言的擴展。該語言支持設置和獲取屬性值,屬性分配,方法調用,訪問數組,集合和索引器的內容,邏輯和算術運算,變量命名以及從Spring的IoC容器中以名稱檢索對象。 它還支持列表投影和選擇以及常見的列表聚合。 |
spring-messaging |
消息傳遞 |
spring-jdbc、spring-jms、spring-orm |
數據訪問支持 |
spring-jcl |
Jakarta Commons Logging採用了設計模式中的“適配器模式”,它對外提供統一的接口,然後在適配類中將對日誌的操作委託給具體的日誌框架。 |
spring-tx |
事務 |
spring-webmvc、spring-web |
Webmvc框架支持 |
spring-webflux |
Servlet3.1 + Netty 方式的WebMvc |
spring-websocket |
對ws支持 |
commons-logging
運行Spring程序額外還需要commons-logging包
http://commons.apache.org/proper/commons-logging/download_logging.cgi
開發工具
可以使用Eclipse、Idea等
推薦使用官方開發工具STS
環境變量
window下配置
- 新建->變量名"JAVA_HOME",變量值"C:\Java\jdk1.8.0_05"(即JDK的安裝路徑)
- 編輯->變量名"Path",在原變量值的最後面加上“;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin”
- 新建->變量名“CLASSPATH”,變量值“.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar”
在控制檯分別輸入java,javac,java -version 命令,測試環境是否設置成功
Hello world
新建java項目
包引入
配置文件
在src下新建
applicationContext.xml
<?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:p="http://www.springframework.org/schema/p"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
"src/applicationContext.xml"
<bean id="user" class="com.msb.User"></bean>
</beans>
Bean
建立準備由Spring管理的Bean
包含兩個屬性,生成get/set方法
private String name;
private Integer age;
測試類
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
User user = (User)ctx.getBean("user");
user.setName("uu");
user.setAge(18);
System.out.println(ToStringBuilder.reflectionToString(user));;
ToStringBuilder 工具類
- Commons項目中用來處理Java基本對象方法的工具類包,可以簡化很多平時經常要用到的寫法,例如判斷字符串是否爲空等等。
- 是一個最常用的工具,作爲jdk的補充。
- Lang下有很多Utils類,提供了若干static方法供調用,涵蓋了字符串操作、字符操作、JVM交互操作、歸類、異常和位域校驗等等。
項目地址
http://commons.apache.org/proper/commons-lang/download_lang.cgi