你好,【程序職場】專注於:Spring Boot ,微服務 和 前端APP開發,閒暇之餘一起聊聊職場規劃,個人成長,還能帶你一起探索 副業賺錢渠道,在提升技術的同時我們一起交流 敏捷流程 提高工作效率,從技術到管理一步步提升自我!
標籤:一個執着的職場程序員!
本文是Spring Boot系列的第四篇,瞭解前面的文章有助於更好的理解本文:
1.Spring Boot(一)初識Spring Boot框架
2.Spring Boot(二)Spring Boot基本配置
3.Spring Boot(三)Spring Boot自動配置的原理
4.Spring Boot(四)Spring Boot web項目開發
前言
(一). Spring MVC的相關配置
(二). Tomcat配置
(三). Tomcat替換
(四). Favicon配置
上篇文章爲大家講述了 Spring Boot的web項目開發,但是我們缺少了一部分配置;本篇文章接着上篇內容繼續爲大家介紹web項目開發的相關配置功能。
(一). Spring MVC的相關配置
正常情況下 Spring Boot提供的Spring MVC默認配置基本符合我們的需求了,如果出現特殊情況,我們可以通過一個配置類(註解有@Configuration的類)加上@EnableWebMvc註解來實現完全自己控制的 MVC配置。
如果我們既需要保留Spring Boot 提供的便利還想要增加自己的額外配置的時候,可以定義一個配置類並繼承 WebMvcConfigurationAdapter 無需使用@EnableWebMvc。
代碼如下:
package org.cxzc.myyoung.springboot_4;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
//@EnableWebMvc//無需使用該註解,否則會覆蓋掉SpringBoot的默認配置值
public class WebMVCConfig extends WebMvcConfigurerAdapter {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/hello").setViewName("/hello");
}
}
代碼解釋:
1. 需要指出的是 在這裏重寫的 addViewControllers 方法,不會覆蓋WebMvcAutoConfiguration中的addViewController方法,需要注意的是 在此方法中 Spring Boot 將 “/”映射值index.html。
這就說明 我們自己的配置和spring Boot的自動配置同時有效。
(二). Tomcat配置
Spring Boot 默認內嵌的Tomcat爲servlet容器。
1. 配置文件配置tomcat
Spring Boot 在org.springframework.boot.autoconfigure.web.ServerProperties 類中 定義了Tomcat的全部屬性。我們可以在 application.properties文件中配置屬性。Tomcat特有配置都以 server.tomcat 作爲前綴
實例如下:
##配置servlet容器
#配置服務器端口,默認爲8080
server.port=8081
#用戶回話session過期時間,以秒爲單位
server.session-timeout=1000000
#配置訪問路徑,默認爲
servlet.context-path=/index
##配置Tomcat
#配置Tomcat編碼,默認爲UTF-8
server.tomcat.uri-encoding=UTF-8
#Tomcat是否開啓壓縮,默認爲關閉 on off
server.tomcat.compression=on
2. 代碼配置
package org.cxzc.myyoung.springboot_4;
import org.springframework.boot.web.server.ErrorPage;
import org.springframework.boot.web.server.ErrorPageRegistrar;
import org.springframework.boot.web.server.ErrorPageRegistry;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
@Component
public class ErrorPageConfig implements ErrorPageRegistrar {
@Override
public void registerErrorPages(ErrorPageRegistry registry) {
ErrorPage error400Page=new ErrorPage(HttpStatus.BAD_REQUEST,"/error400" );
ErrorPage error401Page=new ErrorPage(HttpStatus.UNAUTHORIZED,"/error401");
ErrorPage error404Page=new ErrorPage(HttpStatus.NOT_FOUND,"/404" );
ErrorPage error500Page=new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR,"/error500");
registry.addErrorPages(error400Page,error401Page,error404Page,error500Page);
}
}
自定義類實現
ErrorPageRegistrar接口,然後設置端口、設置錯誤請求頁面、
設置會話超時時間等,這裏的404頁面放在src/main/resources/static文件夾下,有了這個之後,當我訪問一個不存在的頁面的時候就會跳轉到404.html頁面了。
(三). Tomcat替換
上面講到了Tomcat的配置,開發web中不僅僅只使用Tomcat 還有 jetty和undetow 容器。
如果要使用jetty爲servlet作爲容器,需要修改spring-boot-starter-web的依賴即可。
代碼如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
修改成
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
<scope>provided</scope>
</dependency>
修改後啓動項目,控制檯輸出會成爲jetty。
(四). Favicon配置
我們打開每一個網頁頁籤 都會看到一個 圖標,這個圖標就是favicon,SpringBoot提供了一個默認的,訪問的時候可以看到效果,如果我們需要屏蔽掉可以通過添加配置實現
#開啓和關閉Favicon true false
spring.mvc.favicon.enabled=true
如果需要自定義一個 Favicon,我們只需要將自己的favicon.ico文件放置到src/main/resources目錄下即可,重新運行項目,再看瀏覽器左上角圖標就會變了
ok,Spring Boot的web項目開發相關配置 到這裏就完成了,如果小夥伴還有疑問,可以關注我,我們一起進步
本案例下載地址:
https://github.com/ProceduralZC/itcxzc/tree/master/springboot_5