學(xué)習(xí)路徑:
阿里云上部署tomcat
從0搭建SpringMVC工程
[使用Mybatis鏈接遠(yuǎn)程數(shù)據(jù)庫(kù)] (http://www.reibang.com/p/bba31c8fc26d
Demo已經(jīng)準(zhǔn)備好了
https://github.com/Amberllo/SpringMVCExample
搭建環(huán)境:Maven + SpringMVC + Tomcat 9.0 + IntelliJ Idea
目標(biāo):在遠(yuǎn)程服務(wù)器冰更,跑一個(gè)基于SpringMVC的服務(wù)
具體步驟:
1.本地安裝Tomcat著角,Maven,配置環(huán)境變量(略)
2.使用IntelliJ Idea 創(chuàng)建普通Web工程,并設(shè)置工作目錄
3.在Web工程上添加Maven環(huán)境,添加Spring的相關(guān)依賴
4.配置web.xml,以及spring-mvc.xml
5.編寫(xiě)測(cè)試用的Controller
6.設(shè)置本地調(diào)試的tomcat
7.使用maven打war包,并部署到服務(wù)器中
1.本地安裝Tomcat, Maven
直接到Tomcat官網(wǎng)下載頁(yè)https://tomcat.apache.org/download-90.cgi
本地下載zip朋鞍,和服務(wù)器下載tar.gz并解壓
wget https://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v9.0.35/bin/apache-tomcat-9.0.35.zip
tar -zxvf apache-tomcat-9.0.35.tar.gz
maven也一樣,去官網(wǎng)下載妥箕,https://maven.apache.org/download.cgi
本地下載zip番舆,并設(shè)置環(huán)境變量,并在intelliJ Idea上配置Maven
在maven的conf/settings.xml矾踱,一定一定要配置阿里云鏡像恨狈,不然就慢慢等吧。
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
2.使用IntelliJ Idea 創(chuàng)建普通Web工程呛讲,并設(shè)置工作目錄
創(chuàng)建工程的方法很多禾怠,這次我選擇了,"裸奔"贝搁,從0搭建
所以選擇了Java + Web Application
選擇Project Structure吗氏,配置好web.xml路徑,src路徑雷逆,resources路徑
建立好webapp目錄弦讽,并把web文件夾的全部拖進(jìn)來(lái)(WEB-INF/web.xml,index.jsp)最后設(shè)置好工程web.xml的路徑
3.在Web工程上添加Maven環(huán)境,添加Spring的相關(guān)依賴
剛剛可以直接用maven創(chuàng)建工程..但苦于maven創(chuàng)建選項(xiàng)太多往产,還是選擇了Web工程從0搭建比較有學(xué)習(xí)價(jià)值
這樣被碗,我們的pom.xml 就構(gòu)建好了,在idea上pom.xml也是藍(lán)色的(個(gè)人試驗(yàn)過(guò)仿村,直接新建pom.xml文件锐朴,最后下載的依賴都關(guān)聯(lián)不到工程上)
添加關(guān)于Spring的核心依賴,并在terminal執(zhí)行 mvn clean install
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>SpringWeb</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<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>
<!--1.定義spring 版本號(hào)-->
<spring.version>5.1.6.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</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>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
</project>
4.配置web.xml蔼囊,以及spring-mvc.xml
web.xml上焚志,主要配置welcome-file, DispatcherServlet,以及contextConfigLocation
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!--welcome pages-->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- 配置springmvc DispatcherServlet-->
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<!--Sources標(biāo)注的文件夾下需要新建一個(gè)spring文件夾-->
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/spring-*.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
這里classpath是指代碼里面的路徑畏鼓。具體是值工程里src/main/java, src/main/resources
剛開(kāi)始我把spring-mvc.xml酱酬,放在java目錄里,后續(xù)會(huì)一直報(bào)錯(cuò)
使用spring-*也是是后續(xù)添加別的配置做準(zhǔn)備云矫。
<?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: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-3.0.xsd">
<!-- 1.開(kāi)啟注解模式岳悟!非常重要 -->
<mvc:annotation-driven/>
<!-- 2.自動(dòng)掃描該包,使SpringMVC認(rèn)為包下用了@controller注解的類(lèi)是控制器 -->
<context:component-scan base-package="com.example.mvc">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!-- 默認(rèn)的視圖解析器 在上邊的解析錯(cuò)誤時(shí)使用 (默認(rèn)使用html)- -->
<bean id="defaultViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/views/"/><!--設(shè)置JSP文件的目錄位置-->
<property name="suffix" value=".jsp"/>
</bean>
</beans>
這里xsi:schemaLocation要注意泼差,把后面schemaLocation的具體http路徑要補(bǔ)全,否則跑起來(lái)tomcat會(huì)無(wú)法解析mvc:annotation-driven呵俏, context:component-scan 等堆缘。總之就是用一個(gè)補(bǔ)一個(gè)普碎,一個(gè)不能少吼肥。
5.編寫(xiě)測(cè)試用的Controller
在配置好的目錄,新建HomeController麻车,簡(jiǎn)單寫(xiě)寫(xiě)測(cè)試配置就行了缀皱。
package com.example.mvc.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/home")
public class HomeController {
@RequestMapping("index")
public String indexTest(){
return "Index hello";
}
}
6.設(shè)置本地調(diào)試的tomcat
在Tomcat Server 上,配置Local信息动猬,選擇本地Tomcat
配置發(fā)布信息啤斗,選擇Deployment下Artifact
最后運(yùn)行,看看本地效果:
http://localhost:8080/SpringWeb
http://localhost:8080/SpringWeb/home/index
7.使用maven打war包赁咙,并部署到服務(wù)器中
要注意钮莲,在pom.xml上要配置<packaging>war</packaging>,才打出war包
把war包拷貝到遠(yuǎn)程服務(wù)器上彼水,重啟Tomcat
具體也很簡(jiǎn)單崔拥,使用scp命令,這里就不多說(shuō)了凤覆。
最后看看效果: