HEY
本節主要內容爲:基於Spring從0到1搭建一個web工程,適合初學者,Java初級開發者。歡迎與我交流。
MODULE
新建一個Maven工程。
不論你是什麼工具,選這個就可以了,然後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/
哦,對了,我已經寫好了html頁面。
PROJECT
我們看一下工程目錄結構吧
GITHUB
最後的最後,你是不是先問我的測試代碼在哪裏?
好吧,看這裏: