1. 程式人生 > >spring 框架簡介與搭建

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框架了, 其他需要的東西都可以往裡配置,因為篇幅有限其他功能性的東西,這裡不再提供配置。。