快速建立一個基於SpringBoot與Maven的專案
基礎SpringBoot與maven專案
根目錄
│ .classpath
│ .project
│ pom.xml
│ README.md
│
├─src
│ ├─main
│ │ ├─java
│ │ │ └─com
│ │ │ └─iamzwhui
│ │ │ └─springboottest
│ │ │ │ GateSpringBootApplication.java
│ │ │ │
│ │ │ └─test
│ │ │ ├─controller
│ │ │ │ TestController.java
│ │ │ │ TestRestController.java
│ │ │ │
│ │ │ └─service
│ │ ├─resources
│ │ │ application.properties
│ │ │
│ │ └─webapp
│ │ │ test.html
│ │ │
│ │ └─WEB-INF
│ │ ├─js
│ │ └─jsp
│ │ test.jsp
一、建立
1、先建立maven專案
選擇專案型別
- Ctrl+n喚出建立視窗
- 搜尋maven
- 選擇maven project
- 點選next
選擇專案模板
- 勾選create a simple project
- 勾選use default workspace location(不要修改)
- 點選next
完善專案資訊
- group id(專案字首)
- 例如com.iamzwhui
- artifact id(專案名稱)
- 例如SpringBootTest
- version(專案版本)
- 例如0.0.1-SNAPSHOT
- packaging(打包方式)
- 例如war
- 其他(暫時不需要)
- 點選finish
若沒有報錯,則maven專案建立完成
2、往maven新增SpringBoot
新增pom資訊
- 找到當前maven專案的pom.xml檔案
- 新增SpringBoot
<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.iamzwhui</groupId>
<artifactId>SpringBootTest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!--打包格式:SpringBoot使用JSP時需打包為war型別 -->
<packaging>war</packaging>
<!--繼承SpringBoot預設的父工程-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.0.RELEASE</version>
</parent>
<!--配置資訊 ,jdk建議1.7或者以上,使用SprintBoot會少很多麻煩-->
<properties>
<java.version>1.7</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<!--<tomcat.version>7.0.52</tomcat.version> --><!-- 如果jdk1.6,需要放開這個版本的tomcat來適配1.6 -->
</properties>
<!--依賴管理 -->
<dependencies>
<!-- SpringBoot的web元件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 熱更新 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.5.RELEASE</version><!--$NO-MVN-MAN-VER$-->
</dependency>
<!-- tomcat 的支援.-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<!-- jsp 的支援.-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!-- 工具 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<!-- 測試模組 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<!--構建外掛 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
若沒有報錯,則SpringBoot新增完成
- jdk建議1.7或者以上,使用SprintBoot會少很多麻煩
二、設定
1、建立SpringBoot的入口
建立GateSpringBootApplication.java
- 位置為src/main/java/com/iamzwhui/springboottest/GateSpringBootApplication.java
- 添加註解@SpringBootApplication
- 它是一個複合註解,包括以下功能
- @ComponentScan
- 包掃描,掃描當前路徑下所有的@Controller、@Service等
- @SpringBootConfiguration
- 設定當前類是配置類
- 會將當前類內以@Bean標記的方法的新增到spring容器中
- 簡單來說就是可以在這裡加key:value,例如map.put(“username”,”iamzwhui”)
@Bean
public Map config() {
Map map = new HashMap();
map.put("username", "iamzwhui");
return map;
}
- 在其他類可以通過ConfigurableApplicationContext物件獲取到username
- @EnableAutoConfiguration
- SpringBoot自動配置,想知道詳情可以自行百度,這裡不詳解
- @ComponentScan
- 它是一個複合註解,包括以下功能
實現EmbeddedServletContainerCustomizer
- 可以自定義容器,非必須,想知道詳情可以自行百度,這裡不詳解
繼承SpringBootServletInitializer
- 是spring對servlet初始化元件,想知道詳情可以自行百度,這裡不詳解
具體程式碼如下:
package com.iamzwhui.springboottest;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;
import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.stereotype.Controller;
//******************************
//******************************
/**
* Spring入口類
* @author iamzwhui
* @since 20180825
*/
//******************************
//******************************
/**
* @RestController
* 是一個複合註解,直接返回json,包括以下功能
* @ResponseBody
* @Controller
* 如果需要返回jsp、html等,請使用@Controller
*/
//@RestController
/**
* @SpringBootConfiguration
* 承自@Configuration,標註當前類是配置類
* 會將當前類內宣告的一個或多個以@Bean註解標記的方法的例項納入到spring容器中,並且例項名就是方法名
*/
//@SpringBootConfiguration
/**
* @SpringBootApplication
* 是一個複合註解,包括以下功能
* @ComponentScan
* @SpringBootConfiguration
* @EnableAutoConfiguration
*/
@SpringBootApplication
public class GateSpringBootApplication extends SpringBootServletInitializer implements EmbeddedServletContainerCustomizer {
/**
* 標註了@SpringBootApplication
* 表示這個是Spring應用的入口
* 是Spring應用的配置起點,可以配置Spring上下文
* 需要在這個Spring應用的入口類中新增一個main()方法
* 在main()方法中呼叫Spring Boot的SpringApplication類的run()方法,以啟動該Spring應用
*/
public static void main(String[] args) {
SpringApplication.run(GateSpringBootApplication.class, args);
}
/**
* EmbeddedServletContainerCustomizer
* web容器的例項化,比如tomcat
* 在這裡可以設定伺服器的配置,比如埠
*/
public void customize(ConfigurableEmbeddedServletContainer container) {
container.setPort(8080);
}
/**
* SpringBootServletInitializer
* 若要展示jsp頁面
* 則必須繼承SpringBootServletInitializer類重寫裡面的方法
*/
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(GateSpringBootApplication.class);
}
}
2、建立controller
註解說明
/**
* class前面設定註解
* 配置@EnableAutoConfiguration,根據新增的jar依賴自動配置Spring
* 配置@Controller,則return test,其實返回的是/WEB-INF/jsp/test.jsp
* 前提是需要配置檔案內容(src/main/source/application.properties)
* spring.mvc.view.prefix=/WEB-INF/jsp/
* spring.mvc.view.suffix=.jsp
* 配置@RestController,則返回的直接是test字串
*/
基於@Controller建立TestController
package com.iamzwhui.springboottest.test.controller;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
//@RestController
@Controller
//@EnableAutoConfiguration
public class TestController {
@RequestMapping("/testController")
public String test(){
return "test";
}
}
基於@RestController建立TestRestController
package com.iamzwhui.springboottest.test.controller;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
//@Controller
//@EnableAutoConfiguration
public class TestRestController {
@RequestMapping("/testRestController")
public String test(){
return "test";
}
}
建立前端檔案
- jsp檔案
- 路徑:src/main/webapp/WEB-INF/jsp/test.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>jsp</title>
</head>
<body>
this is jsp
</body>
</html>
- html檔案
- 路徑:src/main/webapp/test.html
- 內容:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>html</title>
</head>
<body>
this is html
</body>
</html>
建立配置檔案
- 位置:src/main/source/application.properties
- 內容:
################# 專案 #####################
#訪問的根目錄
#server.context-path=/
################# 伺服器 #####################
#埠
#server.port=8080
#session超時
#server.session-timeout=30
#編碼格式
#server.tomcat.uri-encoding=utf-8
################# jsp #####################
#這裡添加了之後,在controller裡面return jsp頁面的名稱即可,這裡會預設新增前後綴
#例如return test,其實返回的是/WEB-INF/jsp/test.jsp
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
#關閉預設模板引擎
#spring.thymeleaf.cache=false
#spring.thymeleaf.enabled=false
#server.servlet.jsp.init-parameters.development=true
三、執行
1、執行專案
- 專案右鍵
- 選擇debug as
- 選擇第一個maven build
- 如果之前沒有執行過,需要輸入執行指令
- 第一次,會彈出介面
- 在name中輸入隨意名稱
- 例如clean and run
- 在goals中輸入指令
- clean package spring-boot:run(意思是打包執行專案)
- 點選debug確定即可
- 專案啟動完成
- console列印:Tomcat started on port(s): 8080 (http)
- console列印:FrameworkServlet ‘dispatcherServlet’: initialization completed in 34 ms
- 若要修改指令
- 專案右鍵
- 選擇debug as
- 選擇底部的debug configuration
- 左邊看板找到你起的名稱
- 右邊找到goals修改指令
2、請求專案
測試如下:
請求testRestController
- http://localhost:8080/testRestController
- 返回test字串
請求testController
- http://localhost:8080/testController
- 返回/WEB-INF/jsp/test.jsp頁面
請求html
- http://localhost:8080/test.html
- 返回/webapp/test.html頁面
四、問題
相關推薦
快速建立一個基於SpringBoot與Maven的專案
基礎SpringBoot與maven專案 根目錄 │ .classpath │ .project │ pom.xml │ README.md │ ├─src │ ├─main │ │ ├─java │ │ │ └─com │ │
快速建立一個基於Gradle構建的SpringBoot Web專案(SpringBoot-01)
快速建立一個基於Gradle構建的SpringBoot Web專案 在建立SpringBoot專案之前需要提前配置好電腦環境:JDK 、Gradle。 首先我們會通過 SpringBoot 官方提供的 Spring Initializr 這樣的一個專
Intellij IDEA通過SVN匯入基於Springboot的maven專案以及對已有專案做更新
一.匯入外部maven專案 點選“+”,輸入SVN地址並下載專案 彈出視窗,選擇new window(自己覺得哪個好就選哪個) 等待執行完畢,執行完後會出現以下情況,就需要配置一下你的maven庫了 配置Maven 彈出視窗,選擇new window(自己覺得哪個好就選哪個) 配置
【SpringBoot】手把手使用IDEA快速建立一個SpringBoot專案
微信公眾號: 關注可獲得更多幹貨。問題或建議,請公眾號留言; 關注小編微信公眾號獲取更多資源 手把手使用IDEA快速建立一個SpringBoot專案 目錄 1.New Project
快速建立一個springboot專案
本文主要介紹使用spring官方網站快速生成springboot腳手架 1.開啟網站 https://start.spring.io 2.填寫專案資訊以及maven依賴(新增web,devtools依賴即可) 3.解壓生成的zip檔案,然後在id
基於springboot多模組專案使用maven命令打成war包放到伺服器上執行的問題
首先,大家看到這個問題,可能並不陌生,而且腦子裡第一映像就是使用mava中的clear package 或者 clear install進行打包,然後在專案中的target資料夾下面找到xxx.war,將這個war包放到外接的tomcat伺服器下的webapps下面,最後執行tomcat的bin資料夾下面的s
如何建立一個基於 .NET Core 3 的 WPF 專案
在 Connect(); 2018 大會上,微軟釋出了 .NET Core 3 Preview,以及基於 .NET Core 3 的 WPF;同時還發布了 Visual Studio 2019 預覽版。不過 Visual Studio 2019 的預覽版中並沒有攜帶 WPF on .NE
建立一個基於Spring IO Platform的多模組Gradle專案
最近有同學問我,能不能讓我弄一個基於Spring-Platform的多模組Gradle專案的例子,最近終於試著弄了一下,所以寫篇文章介紹一下。 首先介紹一下Spring IO Platform,它主要為了幫助我們管理專案中龐大的類庫的版本。做過專案的同學都肯定
如何快速建立一個VUE專案(介紹專案結構)
建立vue專案流程 1.安裝node.js 首先檢視一下你的node.js是否安裝成功,如果安裝成功第一步可以略過。 驗證是否安裝成功 node -v #檢視nodejs版本號 比如:v8.4.0 如果未安裝,windows 在官網下載安裝包,直接安裝即可
【springboot】【一】用idea建立一個簡易springboot專案
在idea中File->new->project選擇Spring Initializr (spring初始化程式)2.如果你用過maven name這個你應該認識了3.選擇spring元件,由於是web專案,先選擇webTemplateEngines 中有Free
建立一個入門springboot專案(controller層)
那麼我們又來疑問了:假如我的Controller所在的包不在不和啟動類在一個包下呢?我們需要在啟動類(DemoApplication)加一個註解@ComponentScan(basePackages = {"com.*"})這也是為什麼有些同學啟動成功,但是卻訪問不了你自己寫的controller,報404錯
SpringBoot2.x入門:快速建立一個SpringBoot應用
## 前提 這篇文章是《SpringBoot2.x入門》專輯的**第2篇**文章,使用的`SpringBoot`版本為`2.3.1.RELEASE`,`JDK`版本為`1.8`。 常規的套路會建議使用`Spring`官方提供的工具[Spring Initializr](https://start.spri
安裝angular cli 及建立一個基於angular 的程式
發現了一個很好的頁面效果,裡面使用了angular . 來學習一下 angular 。 參考官網,安裝angular-cli . 在安裝 angular-cli 前,先安裝一下node 與 npm, node中自帶npm . 在 命令視窗 使用命令 node -v npm -v
快速建立一個pandas Data_Frame ,方便測試
import numpy as np import pandas as pd data = np.random.randn(6, 4) df = pd.DataFrame(data,columns=['a','b','c','d']) print(df) a
基於SpringBoot搭建SSM專案
在idea中我們先建立好maven專案,匯入好依賴包 pom.xml如下 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=
## **如何建立一個最簡單的struts2專案
1.建立web專案並匯入struts2相關jar *jar包可以去官網下載 2. web.xml中配置struts2的核心過濾器 核心過濾器:StrutsPrepareAndExecuteFilter 配置核心過濾器: 3.建立action類 4.在str
Eclipse搭建基於Springboot的Maven多模組工程
1,寫在前面的話 1.1,我想說點啥 公司提供介面服務的專案要進行重構,主旨是構建基於Springboot的Maven多模組聚合工程.因之前接觸Springboot較少,於是就在網上查閱資料,查了好多部落格發現大部分都是寫用idea構建的,部分用Ec
[Swift通天遁地]二、表格表單-(9)快速建立一個美觀強大的表單
本文將演示如何利用第三方庫,快速建立一個美觀強大的表單 首先確保在專案中已經安裝了所需的第三方庫。 點選【Podfile】,檢視安裝配置檔案。 1 platform :ios, '12.0' 2 use_frameworks! 3 4 target 'DemoApp' do 5
MyEclipse2017破解設定與maven專案搭建
下載 版本:MyEclipse2017 Stable 2.0 破解步驟 把補丁包裡面patch下的所有檔案覆蓋到你myeclipse安裝路徑下的plugins目錄; 斷開網路,雙擊開啟crack.bat檔案; 按照下圖順序依次操作: 開啟
基於Springboot框架 web專案 真實路徑對映到虛擬url路徑的實現
最近有一個需求 前提是很不靠譜的需求 最後一定會刪掉重做的 但是要現在湊合用的 就是用springboot的框架 搭建的一個web專案 因為springboot是自帶tomcat的 所以會打包成jar包 放到伺服器上部署 問題就是說 我們需要在伺服器上 建立一個資料夾 來存放