Spring Boot maven框架搭建教程圖解
摘要:讓Spring應(yīng)用從配置到運(yùn)行更加快速,演示DIY Spring Boot框架時(shí),如何配置端口號(hào),如何添加日志。
Spring Boot 框架幫助開(kāi)發(fā)者更容易地創(chuàng)建基于Spring的應(yīng)用程序和服務(wù),使得開(kāi)發(fā)者能夠快速地獲得所需要的Spring功能。提供了非功能性的大型項(xiàng)目類(lèi)特性,如(如內(nèi)嵌服務(wù)器、安全、度量、健康檢查、外部化配置),內(nèi)部封裝了tomcat的一些核心jar包,將發(fā)布封裝了,因此不需要將項(xiàng)目(war包)發(fā)布到外部tomcat上。
可以在Spring Boot官網(wǎng) https://start.spring.io/ 快速構(gòu)建項(xiàng)目,這個(gè)簡(jiǎn)單易用,而且會(huì)自動(dòng)生成啟動(dòng)類(lèi)。本文重點(diǎn)介紹如何使用Eclipse構(gòu)建。
搭建一個(gè)簡(jiǎn)單的、基于Restfull 風(fēng)格的Spring web mvc 項(xiàng)目,結(jié)構(gòu)如下:
環(huán)境:
eclipse:Oxygen Release (4.7.0);java version :"1.8.0_77";
maven:3.5.4;Servlet3容器(tomcat)
1. 配置maven的settings.xml
配置文件中加入了阿里巴巴的鏡像。
<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0http://maven.apache.org/xsd/settings-1.0.0.xsd"> <!-- 倉(cāng)庫(kù)的地址--> <localRepository>E:/MyLibs</localRepository> <pluginGroups> </pluginGroups> <proxies> </proxies> <servers> </servers> <mirrors> <mirror> <id>alimaven-central</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/repositories/central/</url> </mirror> <mirror> <id>jboss-public-repository-group</id> <mirrorOf>central</mirrorOf> <name>JBoss Public Repository Group</name> <url>http://repository.jboss.org/nexus/content/groups/public</url> </mirror> </mirrors> <profiles> </profiles> </settings>
2. Eclipse配置Maven
Maven配置如下圖所示,如果已經(jīng)配置,可以忽略此步。
3. 創(chuàng)建maven項(xiàng)目
new-->other-->maven-->Maven Project-->next-->finsh,maven項(xiàng)目就建好了。
包名和項(xiàng)目名根據(jù)需求自定義。
4. 配置pom文件
<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.0http://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>1.4.0.RELEASE</version> </parent> <groupId>com.spring.boot</groupId> <artifactId>TestWebApp</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>TestWebApp</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
5. 添加日志
項(xiàng)目使用了log4j2打印日志。首先,在src/main目錄下新增文件夾resources,然后,在resources下創(chuàng)建log4j2.xml。這個(gè)日志配置比較簡(jiǎn)單,有待優(yōu)化。
<?xml version="1.0" encoding="UTF-8"?> <configuration> <appenders> <Console name="Console" target="SYSTEM_OUT"> <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY" /> <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n" /> </Console> <File name="log" fileName="log/webApp.log" append="false"> <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n" /> </File> <RollingFile name="RollingFile" fileName="log/webAppRoll.log" filePattern="log/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log"> <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n" /> <SizeBasedTriggeringPolicy size="50MB" /> </RollingFile> </appenders> <loggers> <root level="INFO"> <appender-ref ref="RollingFile" /> <appender-ref ref="Console" /> </root> </loggers> </configuration>
6. 設(shè)置端口號(hào)
在resources下創(chuàng)建application.properties。
1. 編寫(xiě)測(cè)試代碼
javaBean定義如下,包括用戶(hù)ID和用戶(hù)名。
import java.io.Serializable; public class User implements Serializable { private static final long serialVersionUID = 7797704227043955944L; private Long id; private String name; // getter/setter omitted @Override public String toString() { return "User [id=" + id + ", name=" + name + "]"; } }
控制器代碼:
import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/user") public class UserController { private static Logger logger = LoggerFactory.getLogger(UserController.class); /** * @Title view<br/> * @Description 示例地址 http://localhost:8080/user/100 <br/> * @param id * @return * @Author 樓蘭的胡楊<br/> * @Time 2018-08-26 11:47<br/> */ @RequestMapping("/{id}") public User view(@PathVariable("id") Long id) { logger.info("接收的請(qǐng)求參數(shù) begin --- id = {}", id); User user = new User(); user.setId(id); user.setName("Spring Boot"); return user; } }
通過(guò)在UserController中加上@RequestMapping 配置請(qǐng)求路徑。通過(guò)在main方法中運(yùn)行SpringApplication.run()來(lái)啟動(dòng)項(xiàng)目:
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class); } }
這時(shí)候項(xiàng)目就可以運(yùn)行了,在Application 中run as-->java application 。控制臺(tái)打印結(jié)果:
截圖中紅色方框圈中的文字說(shuō)明了系統(tǒng)啟動(dòng)成功,而且,端口號(hào)是8080。此時(shí)在瀏覽器輸入http://localhost:8080/user/100即可看到頁(yè)面效果:
控制臺(tái)打印結(jié)果:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(1)
下面小編就為大家?guī)?lái)一篇Java基礎(chǔ)的幾道練習(xí)題(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,希望可以幫到你2021-07-07JavaFX實(shí)現(xiàn)簡(jiǎn)易時(shí)鐘效果(二)
這篇文章主要為大家詳細(xì)介紹了JavaFX實(shí)現(xiàn)簡(jiǎn)易時(shí)鐘效果的第二篇,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11詳解分別用Kotlin和java寫(xiě)RecyclerView的示例
本篇文章主要介紹了詳解分別用Kotlin和java寫(xiě)RecyclerView的示例,詳解分別用Kotlin和java寫(xiě)RecyclerView的示例2017-12-12Struts中action線(xiàn)程安全問(wèn)題解析
這篇文章主要介紹了Struts中action線(xiàn)程安全問(wèn)題解析,涉及實(shí)例代碼,還是挺不錯(cuò)的,具有一定參考價(jià)值,需要的朋友可以了解下。2017-10-10Java調(diào)用Zookeeper的實(shí)現(xiàn)步驟
本文主要介紹了Java調(diào)用Zookeeper的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08Oracle + Mybatis實(shí)現(xiàn)批量插入、更新和刪除示例代碼
利用MyBatis動(dòng)態(tài)SQL的特性,我們可以做一些批量的操作,下面這篇文章主要給大家介紹了關(guān)于Oracle + Mybatis實(shí)現(xiàn)批量插入、更新和刪除的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2018-01-01