spring 框架簡介與搭建
Spring的一個最大的目的就是使J2EE開發更加容易。同時,Spring之所以與Struts、Hibernate等單層框架不同,是因為Spring致力於提供一個以統一的、高效的方式構造整個應用,並且可以將單層框架以最佳的組合揉和在一起建立一個連貫的體系。可以說Spring是一個提供了更完善開發環境的一個框架,可以為POJO(Plain Old Java Object)物件提供企業級的服務。
Spring特性與註解
1. Spring特性IOC和AOP不明白的,可以看下這裡
2. Spring註解理解不太明白,可以看下這裡Spring註解 說的通俗易懂,很好理解。
Spring簡介
Spring為JavaEE開發提供了一個輕量級的解決方案,主要表現為,
- IOC(或者叫做DI)的核心機制,提供了bean工廠(Spring容器),降低了業務物件替換的複雜性,提高了元件之間的解耦。
- AOP的將一些通用任務,如安全、事務、日誌等集中進行管理,提高了複用性和管理的便捷性
- ORM和DAO提供了與第三方持久層框架的良好整合,簡化了底層資料訪問。
- 提供了優秀的Web MVC框架。
可以說Spring是貫穿表現層、業務層、持久層,為javaEE提供一站式解決方案的框架。此外,使用Spring還有如下好處,
- 低侵入設計,程式碼汙染極低。
- 基於Spring框架的應用,可以獨立於各種應用伺服器,實現 write once, run anywhere,
- Spring可以與第三方框架良好整合(如ORM,DAO等模組與其他框架整合),但同時Spring提供了高度開放性,應用不會被強制依賴Spring,開發者可以自由選擇Spring的部分或者全部。
Spring並不侷限於中間層,而是為系統各層都提供了企業級解決方案(例如IOC可以使用Spring框架可以帶來諸多好處,例如進行資料庫事務處理,遠端呼叫,JMS訊息處理,JMX操作處理,而這些處理都不需要開發人員直接使用相關API(JDBC, JMX, JMS 等)
建立Web專案
第一種: 建立maven web工程,詳細可見這裡,不用自己再去下載jar包,只要在pom.xml中設定要依賴就好了。(推薦)
<properties>
<spring.version>4.3.7.RELEASE </spring.version>
</properties>
<dependencies>
<dependency>
<groupId> org.springframework</groupId>
<artifactId> spring-context</artifactId>
<version> ${spring.version}</version>
</dependency>
<dependency>
<groupId> org.springframework</groupId>
<artifactId> spring-core</artifactId>
<version> ${spring.version}</version>
</dependency>
<dependency>
<groupId> org.springframework</groupId>
<artifactId> spring-beans</artifactId>
<version> ${spring.version}</version>
</dependency>
<dependency>
<groupId> org.springframework</groupId>
<artifactId> spring-web</artifactId>
<version> ${spring.version}</version>
</dependency>
<dependency>
<groupId> org.springframework</groupId>
<artifactId> spring-webmvc </artifactId>
<version> ${spring.version}</version>
</dependency>
</dependencies>
第二種:如果你覺著上面建立 maven web工程麻煩, 也可以直接建立一個Dynamic Web Project工程,只是這裡需要去下載Spring需要的jar包。
1. eclipse中點選File–>New–>other 如下圖:
2. 點選next
3. 按照上圖設定,點選 Finish 完成
4. 通過觀察專案結構可以看出,新建的動態web專案缺少web.xml檔案,這裡我們新建一個
5. 至此,專案建立完畢,接下來,開始搭建框架
Spring框架搭建
1.首先配置web.xml檔案
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<!--設定轉發-->
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<!--載入配置檔案-->
<param-value> classpath:applicationContext.xml</param-value>
</init-param>
<!--標記容器是否在啟動的時候就載入這個servlet。
當值為0或者大於0時,表示容器在應用啟動時就載入這個servlet;
當是一個負數時或者沒有指定時,則指示容器在該servlet被選擇時才載入。
正數的值越小,啟動該servlet的優先順序越高。-->
<load-on-startup> 1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<!--接受所有請求-->
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
2.配置applicationContext.xml檔案
<beans xmlns= "http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd ">
<!--這裡可以去掉,因為下面自動掃描包的程式碼,就包含了該行的功能-->
<context:annotation-config/>
<!-- 自動掃描web包 ,將帶有註解的類 納入spring容器管理 -->
<context:component-scan base-package="com.zds"></context:component-scan>
</beans>
- 因為我們使用註解,所以沒有Bean配置,只有一個掃描包的設定
- 關於
<context:annotation-config/>
的介紹不明白的,可以點選這裡 - 這裡的applicationContext.xml檔案存放到 WEB-INF/classes/資料夾下,如果沒有該資料夾,則新建
3.新建Controller檔案
package com.zds;
/**
* @author zds
* @date 2018年3月6日
*/
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/test")
public class TestController {
@RequestMapping(value = "hello", method = RequestMethod.GET)
@ResponseBody
public String helloWorld(@RequestParam("user") String userName) {
String string = "";
string.split(",");
return "Hello " + userName + " !";
}
}
4.把所需要的jar包放入 WEB-INF/lib資料夾中,這些jar包,和這個搭建的專案我都放到這裡,大家如果有興趣可以去下載。(特簡單的東西,沒想要下載積分,但是CSDN沒有免費下載。。沒辦法,大家可以看看這篇文件,自己配置也行)
5.到這裡配置完成, eclipse 中吧專案新增到tomcat中,啟動,瀏覽器中輸入:
http://localhost:8080/SpringWebProject/test/hello?user=world
顯示如下:
總結: 這裡只是一個很簡單的框架, 也沒有頁面互動,以及各種日誌配置,亂碼配置等。但是這裡已經是一個簡單的spring框架了, 其他需要的東西都可以往裡配置,因為篇幅有限其他功能性的東西,這裡不再提供配置。。