javascript
在Spring Boot中配置web app
文章目錄
- 添加依賴(lài)
- 配置端口
- 配置Context Path
- 配置錯(cuò)誤頁(yè)面
- 在程序中停止Spring Boot
- 配置日志級(jí)別
- 注冊(cè)Servlet
- 切換嵌套服務(wù)器
在Spring Boot中配置web app
本文將會(huì)介紹怎么在Spring Boot中創(chuàng)建和配置一個(gè)web應(yīng)用程序。
添加依賴(lài)
如果要使用Spring web程序,則需要添加如下依賴(lài):
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>配置端口
正如我們之前文章中提到的,要想配置端口需要在application.properties文件中配置如下:
server.port=8083如果你是用的是yaml文件,則:
server:port: 8083或者通過(guò)java文件的形式:
@Component public class CustomizationBean implementsWebServerFactoryCustomizer<ConfigurableServletWebServerFactory> {@Overridepublic void customize(ConfigurableServletWebServerFactory container) {container.setPort(8083);} }配置Context Path
默認(rèn)情況下,Spring MVC的context path是‘/’, 如果你想修改,那么可以在配置文件application.properties中修改:
server.servlet.contextPath=/springbootapp如果是yaml文件:
server:servlet:contextPath:/springbootapp同樣的,可以在java代碼中修改:
@Component public class CustomizationBeanimplements WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> {@Overridepublic void customize(ConfigurableServletWebServerFactorycontainer) {container.setContextPath("/springbootapp");} }配置錯(cuò)誤頁(yè)面
默認(rèn)情況下Spring Boot會(huì)開(kāi)啟一個(gè)whitelabel的功能來(lái)處理錯(cuò)誤,這個(gè)功能本質(zhì)上是自動(dòng)注冊(cè)一個(gè)BasicErrorController如果你沒(méi)有指定錯(cuò)誤處理器的話(huà)。同樣的,這個(gè)錯(cuò)誤控制器也可以自定義:
@RestController public class MyCustomErrorController implements ErrorController {private static final String PATH = "/error";@GetMapping(value=PATH)public String error() {return "Error haven";}@Overridepublic String getErrorPath() {return PATH;} }當(dāng)然,和之前講過(guò)的自定義服務(wù)器信息一樣,你也可以自定義錯(cuò)誤頁(yè)面,就像在web.xml里面添加error-page:
@Component public class CustomizationBeanimplements WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> {@Overridepublic void customize(ConfigurableServletWebServerFactorycontainer) { container.addErrorPages(new ErrorPage(HttpStatus.BAD_REQUEST, "/400"));container.addErrorPages(new ErrorPage("/errorHaven"));} }通過(guò)這個(gè)功能,你可以對(duì)錯(cuò)誤進(jìn)行更加細(xì)致的分類(lèi)。
在程序中停止Spring Boot
SpringApplication提供了一個(gè)靜態(tài)的exit()方法,可以通過(guò)它來(lái)關(guān)停一個(gè)Spring Boot應(yīng)用程序:
@Autowiredpublic void shutDown(ApplicationContext applicationContext) {SpringApplication.exit(applicationContext, new ExitCodeGenerator() {@Overridepublic int getExitCode() {return 0;}});}第二個(gè)參數(shù)是一個(gè)ExitCodeGenerator的實(shí)現(xiàn),主要用來(lái)返回ExitCode。
配置日志級(jí)別
我們可以在配置文件中這樣配置日志級(jí)別:
logging.level.org.springframework.web: DEBUG logging.level.org.hibernate: ERROR注冊(cè)Servlet
有時(shí)候我們需要將程序運(yùn)行在非嵌套的服務(wù)器中,這時(shí)候有可能會(huì)需要自定義servlet的情況,Spring Boot 也提供了非常棒的支持,我們只需要在ServletRegistrationBean中,注冊(cè)servlet即可:
@Beanpublic ServletRegistrationBean servletRegistrationBean() {ServletRegistrationBean bean = new ServletRegistrationBean(new SpringHelloWorldServlet(), "/springHelloWorld/*");bean.setLoadOnStartup(1);bean.addInitParameter("message", "SpringHelloWorldServlet special message");return bean;}切換嵌套服務(wù)器
默認(rèn)情況下,Spring Boot會(huì)使用tomcat作為嵌套的內(nèi)部服務(wù)器,如果想切換成jetty則可以這樣:
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jetty</artifactId></dependency> </dependencies>exclude自帶的Tomcat,并額外添加spring-boot-starter-jetty即可。
本文的例子可參考: https://github.com/ddean2009/learn-springboot2/tree/master/springboot-config-webapp
更多精彩內(nèi)容且看:
- 區(qū)塊鏈從入門(mén)到放棄系列教程-涵蓋密碼學(xué),超級(jí)賬本,以太坊,Libra,比特幣等持續(xù)更新
- Spring Boot 2.X系列教程:七天從無(wú)到有掌握Spring Boot-持續(xù)更新
- Spring 5.X系列教程:滿(mǎn)足你對(duì)Spring5的一切想象-持續(xù)更新
- java程序員從小工到專(zhuān)家成神之路(2020版)-持續(xù)更新中,附詳細(xì)文章教程
更多教程請(qǐng)參考 flydean的博客
超強(qiáng)干貨來(lái)襲 云風(fēng)專(zhuān)訪(fǎng):近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的在Spring Boot中配置web app的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 自定义spring boot的自动配置
- 下一篇: Spring Boot中的测试