Spring | 手把手教你SSM最優雅的整合方式

HEY

本節主要內容爲:基於Spring從0到1搭建一個web工程,適合初學者,Java初級開發者。歡迎與我交流。

MODULE

新建一個Maven工程。

Maven Web App

不論你是什麼工具,選這個就可以了,然後next,直至finish。

POM.XML

引jar是一個難點,都是一股腦的引入,這是我們開始的第一步,很關鍵,我們分開說。

先看Spring,我們可能需要的jar:

<!-- spring核心依賴-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <!-- spring ioc依賴 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <!-- spring aop依賴 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <!-- spring 擴展依賴 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <!-- spring web相關依賴 -->
        <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>

        <!-- spring test相關依賴 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!-- spring依賴  end-->

大抵就是這樣,當然,還有其他的作爲輔助開發,這個可以看源碼,然後我們看一下版本。

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>

    <junit.version>5.3.1</junit.version>
    <lombok.version>1.18.2</lombok.version>
    <jetty.version>9.4.12.v20180830</jetty.version>
    <spring.version>5.0.9.RELEASE</spring.version>
    <JavaLib.version>1.0.4.RELEASE</JavaLib.version>
    <slf4j.version>1.8.0-beta2</slf4j.version>
    <log4j.version>1.2.17</log4j.version>
</properties>

WEB.XML

先配請求攔截,意思是說,這個請求交給Spring管理。

<!-- 配置DispatcherServlet -->
<servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring/spring-*.xml</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <!-- 默認匹配所有的請求 -->
    <url-pattern>/</url-pattern>
</servlet-mapping>

總有人會遇到亂碼問題,那我們也解決一下。

<!-- 編碼  -->
<filter>
    <filter-name>characterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>characterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

最後,我們加一個首頁響應頁面路徑

<welcome-file-list>
    <welcome-file>/</welcome-file>
</welcome-file-list>

SPRING.XML

配一個掃描

<!-- 開啓SpringMVC註解模式 -->
<mvc:annotation-driven />

<!--向容器自動注入配置-->
<context:annotation-config />

<!--將靜態資源交由默認的servlet處理-->
<mvc:default-servlet-handler />

<!-- 掃描web相關的bean -->
<context:component-scan base-package="com.fengwenyi.springweb.controller" />

用springmvc的人,大抵都會用到頁面,那我們也配一下。

<!-- configure the InternalResourceViewResolver -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
      id="internalResourceViewResolver">
    <!-- 前綴 -->
    <property name="prefix" value="/WEB-INF/pages/" />
    <!-- 後綴 -->
    <property name="suffix" value=".html" />
</bean>

CODE

package com.fengwenyi.springweb.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

/**
 * @author Wenyi Feng
 * @since 2018-09-18
 */
@Controller
public class IndexController {

    @GetMapping("/")
    public String index() {
        return "index";
    }
}

RUN

運行,會自動跳轉這個頁面

http://localhost:8080/

Hello World

哦,對了,我已經寫好了html頁面。

PROJECT

我們看一下工程目錄結構吧

project

GITHUB

最後的最後,你是不是先問我的測試代碼在哪裏?

好吧,看這裏:

https://github.com/fengwenyi/ssm/tree/master/springweb

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