[CentOS 7專用] Spring MVC/Maven 部署、入門與示例(純菜鳥專用,一鼓作氣)

[CentOS 7專用] Spring MVC/Maven 部署、入門與示例(純菜鳥專用,一鼓作氣)

前言

針對Spring MVC和Maven的入門教程,網上有較多參考資料。這裏重點分享一下在Linux系統上,進行安裝、部署和示例開發與運行的說明。html

Linux系統版本

$ cat /etc/centos-release
CentOS Linux release 7.4.1708 (Core)

安裝JDK1.8.0

官方下載地址:https://www.oracle.com/technetwork/cn/java/javase/downloads/jdk8-downloads-2133151-zhs.htmljava

下載後,解壓:linux

$ tar -xzvf ./jdk-8u181-linux-x64.tar.gz

解壓後,能夠移到你但願保存的目錄。而後經過root權限修改 /etc/profile 文件,追加對JAVA和JRE的配置。例如:nginx

$ sudo vim /etc/profile

追加剛纔JDK目錄的變量設置JAVA_HOME和JRE_HOME:git

export JAVA_HOME=/path/to/jdk1.8.0_151
export JRE_HOME=/path/to/jdk1.8.0_151/jre

而後,修改PATH變量,追加JDK配置後變成:github

export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

保存後,刷新一下系統變量。web

$ source /etc/profile

驗證一下Java是否安裝成功:spring

$ java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)

若是看到相似上面信息,代表Java已安裝成功!apache

 

安裝Maven

首先,到官網下載Maven的執行包:apache-maven-3.6.0-bin.tar.gz。vim

官網下載連接:https://maven.apache.org/download.cgi

下載後,一樣,進行本地解壓:

$ tar -xzvf ./apache-maven-3.6.0-bin.tar.gz

而後,經過root權限修改/etc/profile,追加Maven系統變量。

export MAVEN_HOME=/path/to/apache-maven-3.6.0

export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$MAVEN_HOME/bin

別忘了要載入新的系統變量,使用:source /etc/profile。

測試一下:

$ mvn -v
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T02:41:47+08:00)
Maven home: /home/dogstar/env/apache-maven-3.6.0
Java version: 1.8.0_151, vendor: Oracle Corporation, runtime: /home/dogstar/env/jdk1.8.0_151/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-862.3.3.el7.x86_64", arch: "amd64", family: "unix"

擴展部分

(此部分不是主線,感興趣能夠稍候再體驗一下)若是是首次使用Maven,爲了加深對Maven的理解,能夠參考官網給的例子,一步步學習使用Maven,傳送門:https://spring.io/guides/gs/maven/

 

到如今,咱們的Java和Maven就已經安裝完畢啦!

 

Spring MVC示例

參考官網的示例:https://spring.io/guides/gs/serving-web-content/

下載源代碼:git clone

首先,先下載須要的示例代碼:

$ git clone https://github.com/spring-guides/gs-serving-web-content.git

進入目錄:

$ cd ./gs-serving-web-content/complete

這時,只有Java源代碼和一些其餘的文件,比較簡單(還沒生成任何編譯的東西):

$ tree
.
├── build.gradle
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── mvnw
├── mvnw.cmd
├── pom.xml
└── src
    ├── main
    │   ├── java
    │   │   └── hello
    │   │       ├── Application.java
    │   │       └── GreetingController.java
    │   └── resources
    │       ├── static
    │       │   └── index.html
    │       └── templates
    │           └── greeting.html
    └── test
        └── java
            └── hello
                └── ApplicationTest.java

 

第一步,maven編譯:mvn compile

重點部分來了,首先,使用maven進行編譯。在當前目錄(gs-serving-web-content/complete, 有pom.xml的目錄),執行如下命令:

$ mvn compile

由於是第一次編譯,這時會下載不少東西。會看到有不少相似這樣的輸出:

Downloaded from central: https://repo.maven.apache.org/maven2/org/iq80/snappy/snappy/0.4/snappy-0.4.pom (15 kB at 42 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/tukaani/xz/1.5/xz-1.5.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/tukaani/xz/1.5/xz-1.5.pom (1.9 kB at 5.6 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-archiver/3.4/plexus-archiver-3.4.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-archiver/3.4/plexus-archiver-3.4.pom (5.3 kB at 16 kB/s)
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-archiver/3.1.1/maven-archiver-3.1.1.jar

稍微等一下,就能編譯完成。若是再次編譯,而且沒有代碼修改時就會看到:

編譯完成後,會在target目錄看到不少編譯的class文件,例如(部分生成的class文件):

└── target
    ├── classes
    │   ├── application.properties
    │   ├── hello
    │   │   ├── Application.class
    │   │   └── GreetingController.class

 

第二步,使用maven進行打包:mvn package

這時,還不能直接運行。須要使用maven進行打包,繼續執行如下命令:

$ mvn package

等屏幕刷完後,在最後,能夠看到【BUILD SUCCESS】字樣,例如:

若是有報錯,就要根據提示進行修正。

 

第三步,運行Sprint MVC示例,java -jar xxx

最後,咱們就能夠執行示例看到效果啦,想一想都激動!

繼續在當前目錄,即:/path/to/gs-serving-web-content/complete,執行如下命令:

$ java -jar ./target/gs-serving-web-content-0.1.0.jar

若是正常的話,就能夠看到大大的Spring字樣,如下相關的輸出信息,例如:

打開瀏覽器,並訪問:http://172.16.30.39:8081/greeting?name=dogstar, 就能看到示例網站運行的最終效果啦!

細心的同窗可能已經發現,上面是8081端口,而不是默認的8080端口。這是爲何呢?由於極可能8080端口已經被佔用,若是補佔用,在運行時就會提示這樣的錯誤:

Description:

The Tomcat connector configured to listen on port 8080 failed to start. The port may already be in use or the connector may be misconfigured.

解決方案是,新建應用配置文件 ./src/main/resources/application.properties ,而且在裏面添加如下配置內容,指定端口。

server.port=8081

搞定!!

 

補充一點,做爲一直喜歡單元測試的我,若是想執行單元測試,能夠執行:mvn test,運行後效果以下:

 

加分操做:配個域名

每次都用IP訪問,有點不方便,而且不雅觀。能夠經過Nginx來配置一個域名。

首先,添加配置文件:/etc/nginx/conf.d/springmvc.examples.com.conf ,放置如下信息:

server {
        listen 80;
        server_name springmvc.examples.com;

        location / {
                proxy_pass http://127.0.0.1:8081;
        }
}

主要是把域名springmvc.examples.com反向代理到本地的8081端口。

 

而後,重啓nginx:

# systemctl  reload nginx

 

最後,在本地客戶端的Windows系統,追加如下Host:

172.16.30.39 springmvc.examples.com

 

這樣,就能夠把原來的:http://172.16.30.39:8081/greeting?name=dogstar

換成:http://springmvc.examples.com/greeting?name=dogstar

相關文章
相關標籤/搜索