使用Eclipse安裝STS plug-in來建立Spring Boot專案。或是你可以直接安裝Spring Tool Suite(STS) IDE來建立spring boot專案。
使用工具
- jdk1.8
- Eclipse version: 2019-03 (4.11.0)
- Spring Tool Suite
- Spring Boot 2.1.6
首先使用Notepad++或記事本開啟Eclipse目錄下的eclipse.ini
,加入-vm
參數指向jdk1.8做為運行環境,例如
-vm
C:/Program Files/Java/jdk1.8.0_60/bin/javaw.exe
然後建立一個工作目錄(workspace),例如D:\myspringboot\workspace
然後將Eclipse開啟,並將workspace設為剛剛建立的目錄,當然你也可以使用Eclipse預設的workspace。
此時就是一個乾淨完好的Eclipse了,接著設定Eclipse的一些基本設定(可以跳過)。
接著要使用Eclipse的Spring Tools (STS) plug-in來幫助我們建立SpringBoot的Web專案。
在Eclipse的MarketPlace搜尋STS然後安裝。
安裝好後,新增一個Eclipse專案,點選Eclipse工具列的File -> New -> Other -> Spring Boot -> Spring Starter Project
。
接著設定Project,
Service URL維持預設(http://start.spring.io)
Name自行任意命名
Type為Maven
Java Version為8
Language使用Java
Packageing改成War,即要打包成的檔案。
下面的Group,Artifact及Package為Maven的設定,完成後按Next >
接著因為是要建立Web專案,選擇Spring Web Starter加入為dependency,然後按Finish。
然後新的專案及依賴的函式庫就會開始下載,完成後專案結構如下
打開Spring Boot的預設配置檔,即src/main/resoucres
下的application.properties
來設定專案的context path及port。
application.properties
#context path
server.servlet.context-path=/MySpringBoot
#port
server.port=8080
至此Spring Boot專案便建立完成,在專案上按滑鼠右鍵 -> Run As -> Spring Boot App
啟動。
啟動時在console會有以下訊息。
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.7.RELEASE)
2019-08-15 23:20:26.715 INFO 8576 --- [ main] i.matt.springboot.SpringbootApplication : Starting SpringbootApplication on matt-PC with PID 8576 (D:\MyProject\workspace\springboot\target\classes started by matt in D:\MyProject\workspace\springboot)
2019-08-15 23:20:26.718 INFO 8576 --- [ main] i.matt.springboot.SpringbootApplication : No active profile set, falling back to default profiles: default
2019-08-15 23:20:27.719 INFO 8576 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2019-08-15 23:20:27.748 INFO 8576 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2019-08-15 23:20:27.748 INFO 8576 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.22]
2019-08-15 23:20:27.936 INFO 8576 --- [ main] org.apache.jasper.servlet.TldScanner : At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
2019-08-15 23:20:27.942 INFO 8576 --- [ main] o.a.c.c.C.[.[localhost].[/MySpringBoot] : Initializing Spring embedded WebApplicationContext
2019-08-15 23:20:27.942 INFO 8576 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1179 ms
2019-08-15 23:20:28.137 INFO 8576 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2019-08-15 23:20:28.308 INFO 8576 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '/MySpringBoot'
2019-08-15 23:20:28.312 INFO 8576 --- [ main] i.matt.springboot.SpringbootApplication : Started SpringbootApplication in 1.927 seconds (JVM running for 2.76)
在本機專案的url為http://localhost:8080/MySpringBoot/
。
如果專案是前後端分離,就不用繼續進行以下的jsp頁面設定。
以下是傳統後端jsp頁面的設定。
此時仍無頁面,因此新增一個Controller類別及一個jsp頁面。
新增一個HelloController.java
如下,與SpringBootApplication
放在同一個package。
HelloController.java
package idv.matt.springboot;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HelloController {
@RequestMapping("/hello")
public ModelAndView hello() {
return new ModelAndView("hello"); // 根據view resolver mapping至hello.jsp
}
}
在src/main/
下新增webapp/WEB-INF/jsp
目錄,然後在src/main/webapp/WEB-INF/jsp
目錄下新增hello.jsp
。
hello.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>HelloSpringBoot</title>
</head>
<body>
<h1>Hello SpringBoot!!</h1>
</body>
</html>
然後設定SpringBoot的View Resolver來mapping Controller至jsp的路徑,開啟src/main/resources/
下的application.properties
來新增,設定如下
application.properties
#context path
server.servlet.context-path=/MySpringBoot
#port
server.port=8080
#view
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
以上除了view的設定外,還設定了context路徑及應用程式的port。請參考Appendix A. Common application properties
最後記得要在Maven的pom.xml
加入下面的dependency,尤其是tomcat-embed-jasper
,因為少了這個函式庫則jsp無法編譯。
pom.xml
<?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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<groupId>idv.matt</groupId>
<artifactId>springboot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot</name>
<description>My SpringBoot Demo</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- Sprng Starter自動產生 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- 加入以下 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
完成以上就可以啟動了,在專案上按滑鼠右鍵 -> Run As -> Spring Boot App
便可啟動。
然後開啟瀏覽器並在網址列輸入url http://localhost:8080/MySpringBoot/hello
,網頁開啟如下
如果要停止運行,可在Eclipse上方工具列點選停止按鈕即可。
完成後的專案結構如下。
如果覺得文章有幫助的話還幫忙點個Google廣告,感恩。
參考:
說明雖然簡單但重點都沒漏,照著一步一步真的就能做出一個能跑的spring boot專案,非常感謝。
回覆刪除內容簡潔,很適合我用,感恩
回覆刪除你好
回覆刪除我在運行你的範例時遇到了抓不到jsp的情況發生
發現了是新增hello.jsp時的路徑問題
原先為「src/webapp/WEB-INF/jsp」
更改為「src/main/webapp/WEB-INF/jsp」
就能找到hello.jsp了
不曉得是筆誤又或是我的版本問題
@3樓 匿名
回覆刪除您好,謝謝您的提醒,可能當初版本比較舊,而新版的專案目錄跟之前不太一樣,因此整篇文章我已經根據目前的版本做了更新,感謝您。
做的出來,感謝
回覆刪除非常有幫助, 但是對目錄大小寫非常敏感
回覆刪除原先src/main/webapp/WEB-INF/JSP, 會error
改為src/main/webapp/WEB-INF/jsp, 才正確, 供大家參考