Spring家族介紹與開發環境

 

    

    

課程主要內容

  1. Spring能做什麼?
  2. Spring開發環境搭建
  3. HelloWorld程序

 

 

目錄

課程主要內容.... 0

Spring能做什麼?.... 2

Spring5新特性.... 2

開發環境.... 3

Spring Jar包.... 3

開發工具.... 4

環境變量.... 5

Hello world.. 5

ToStringBuilder 工具類.... 6

配置文件講解.... 7

 

Spring能做什麼?

Spring是一個輕量級的控制反轉(IoC/di)和麪向切面編程(AOP) 的對象容器框架

Spring官網:http://spring.io/

Spring 是一個於 2003 年興起的一個輕量級的 Java 開源開發框架

如今Spring已是Java項目的標配,它極大的簡化了開發過程,降低了開發難度。

  1. 方便解耦,簡化開發;
  2. AOP 編程的支持;
  3. 聲明式事務的支持;
  4. 方便程序的測試;
  5. 方便集成各種優秀框架。

IoC

Inversion of Control

AOP

Aspect Oriented Programming

Spring5新特性

Spring5 是一個重要的版本,距離SpringFramework4差不多四年

http://1.file.leanote.top/5a929813ab644121e3000f8c?e=1560150010&token=ym9ZIrtxjozPN4G9he3-FHPOPxAe-OQmxzol5EOk:npFpg7jUGhsDamOZ-QCijJHAqJE

  1. 支持JDK8
    1. Spring 接口中的默認方法
    2. 基於 Java8 反射增強的內部代碼改進
    3. 在框架代碼中使用函數式編程 - lambda表達式 和 stream流
  2. 響應式編程支持Spring Web Reactive異步的、非阻塞的、事件驅動的服務
  3. 支持J2EE7
    1. Servlet 3.1
    2. JMS 2.0
    3. JPA 2.1
    4. JAX-RS 2.0
    5. Bean Validation 1.1
  4. Hibernate 5
  5. Jackson 2.6
  6. EhCache 2.10
  7. JUnit 5
  8. Tiles 3
  9. Kotlin

開發環境

Spring Jar包

SpringFramework官網下載地址:

https://repo.spring.io/libs-release-local/org/springframework/spring/

解壓縮Jar包可以看見如下結構

  1. Doc  文檔
  2. Libs Jar
  3. Schema XML約束
  4. license.txt 許可協議
  5. notice.txt 注意事項
  6. 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

https://spring.io/tools

環境變量

window下配置

  1. 新建->變量名"JAVA_HOME",變量值"C:\Java\jdk1.8.0_05"(即JDK的安裝路徑)
  2. 編輯->變量名"Path",在原變量值的最後面加上“;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
  3. 新建->變量名“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 工具類

  1. Commons項目中用來處理Java基本對象方法的工具類包,可以簡化很多平時經常要用到的寫法,例如判斷字符串是否爲空等等。
  2. 是一個最常用的工具,作爲jdk的補充。
  3. Lang下有很多Utils類,提供了若干static方法供調用,涵蓋了字符串操作、字符操作、JVM交互操作、歸類、異常和位域校驗等等。

項目地址

http://commons.apache.org/proper/commons-lang/download_lang.cgi

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章