日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

creo配置文件config选项详解_5年资深架构师重点聚焦:SpringBoot的配置详解+内嵌Servlet容器

發布時間:2025/3/15 javascript 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 creo配置文件config选项详解_5年资深架构师重点聚焦:SpringBoot的配置详解+内嵌Servlet容器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Spring Boot的配置詳解

在本節中,我們將重點聚焦在Spring Boot的配置方面。

理解Spring Boot的自動配置

按照“約定大于配置”的原則,Spring Boot通過掃描依賴關系來使用類路徑中可用的庫。對于每個pom文件中的“pring-boot-starter-*” 依賴,Spring Boot會執行默認的AutoConiguration類。

AutoConfiguration類使用*AutoConfiguration詞法模式,其中*代表類庫。例如,JPA 存儲庫的自動配置是通過JpaRepositoriesAutoConfiguration來實現的。

使用-deboug運行應用程序可以查看自動配置的相關報告。下面的命令用于顯示在3.1節中“spring-boot-rest"應用的自動配置報告。

$ java -jar build/libs/spring-boot-rest-1.0.0.jar --debug

以下是自動配置類的一-些示例:

●ServerPropertiesAutoConfiguration;

●RepositoryRestMvcAutoConfiguration;

●JpaRepositoriesAutoConfiguration; .

●JmsAutoConfiguration。

如果應用程序有特殊的要求,比如需要排除某些庫的自動配置,也是能夠完全實現的。以下是排除DataSourceAutoConfiguration的示例。

@EnableAutoConfiguration (exclude= {DataSourceAutoConfiguration.class})

重寫默認的配置值

也可以使用應用程序覆蓋默認配置值。重寫的配置值配置在application.properties文件中即可。

比如,如果想更改應用啟動的端口號,則可以在application.properties文件中添加如下內容。

server .port=8081

這樣,這個應用程序再次啟動時,就會使用端口8081。

更換配置文件的位置

默認情況下,Spring Boot將所有配置外部化到application.properties文件中。但是, 它仍然是應用程序構建的一部分。

此外,可以通過設置來實現從外部讀取屬性。以下是設置的屬性:

●spring.config.name: 配置文件名;

●spring.config.location: 配置文件的位置。

這里,spring.config.location 可以是本地文件位置。

以下命令從外部啟動Spring Boot應用程序來提供配置文件。

$ java -jar build/ libs/ spring-boot-rest-1.0.0.jar -- spring . config . name=bootrest. properties

自定義配置

開發者可以將自定義屬性添加到application.properties文件中。

例如,我們自定義了一個名為“ile.server.url"” 的屬性在application.properties 文件中。在Spring Boot啟動后,我們就能將該屬性自動注入應用中。

下面是完整的例子。

@Controller@RequestMapping("/u")public class UserspaceController {@Value("$ {file.server.url}")private String fileServerUrl;@GetMapping ("/ {username} /blogs/edit")public ModelAndView createBlog (@PathVariable ("username") Stringusername, Model model) {model . addAttribute ("blog", new Blog (null,null, null)) ;model . addAttribute ("fileServerUrl", fileServerUrl) ;//文件服務器的地址返回給客戶端return new ModelAndView (" /userspace/blogedit", "blogModel", mod-el) ;

使用.yaml 作為配置文件

我們使用的是.yaml文件,以此來作為application.properties文件的一種替代方式。YAML與平面屬性文件相比,提供了類似JSON的結構化配置。YAML數據結構可以用類似大綱的縮排方式呈現,結構通過縮進來表示,連續的項目通過減號“_”來表示,map結構里面的key/value對用冒號“:來分隔。樣例如下。

spring: application:name: waylaudatasource:driverClassName: com. mysql. jdbc.Driverurl: jdbc:mysql: / /localhost/testserver:port: 8081

profiles的支持

Spring Boot支持profiles,即不同的環境使用不同的配置。通常需要設置-一個系統屬性( spring.profiles.active )或OS環境變量( SPRING_ PROFILES_ ACTIVE) 。例如,使用-D參數啟動應用程序(記住將其放在主類或jar之前)。$ java -jar -Dspring . profiles.active-production

build/ libs/spring-boot-rest-1.0.0.jar

在Spring Boot中,還可以在aplication.properties中設置激活的配置文件,例如,

spring. profiles .active=production

YAML文件實際上是由“__” 行分隔的文檔序列,每個文檔分別解析為平坦化的映射。

如果-一個YAML文檔包含-一個spring.profiles鍵,那么配置文件的值(逗號分隔的配置文件列表)將被反饋到Spring Enironmentaccptsrofiles)中,并且如果這些配置文件中的任何-一個被激活,那么文檔被包含在最終的合并中。

例如,

server:port: 9000spring:profiles: developmentserver:port: 9001spring:profiles: productionserver :port: 0

在此示例中,默認端口為9000,但是如果Spring profile的“development" 處于激活狀態,則端口為9001,如果“production” 處于激活狀態,則為0。

要使.properties文件做同樣的事情,可以使用“aplication-S {profile};properties”的方式來指定特定于配置文件的值。


內嵌Servlet容器

Spring Boot Web Starter 內嵌了Tomcat服務器。在應用中使用嵌人式的Servlet容器,可以方便我們來進行項目的啟動和調試。

Spring Boot包括支持嵌入式Tomcat、Jetty 和Undertow服務器。默認情況下,嵌入式服務器將偵聽端口 8080上的 HTTP 請求。

注冊Servlet、過濾器和監聽器

當使用嵌人式Servlet容器時,可以通過使用Spring bean或掃描Servlet組件從Servlet規范(如HttpSessionListener )中注冊Servlet、 過濾器和所有監聽器。

默認情況下,如果上下文只包含-一個Servlet, 它將映射到“/” 路徑。在多個Servlet bean的情況下,bean名稱將被用作路徑前綴,過濾器將映射到“/*” 路徑。

如果覺得基于慣例的映射不夠靈活,可以使用ServletRegistrationBean. FilterRegistrationBean和ServletListenerRegistrationBean類進行完全控制。

Servlet上下文初始化

嵌人式Servlet 容器不會直接執行Servlet 3.0+的javax.servlet. ServletContainerInitializer接口或Spring的org.springframework. web.WebApplicationitializer接口。這是因為在war中運行的第三方庫會帶來破壞Spring Boot應用程序的風險。

如果您需要在Spring Boot應用程序中執行Servlet上下文初始化,則應注冊一個實現org.springframework.boot.web.servlet.ServletContextInitializer接口的bean。onStartup 方法提供對Servlet-Context的訪問,并且如果需要,可以輕松地用作現有WebApplicationInitializer的適配器。

當使用嵌人式容器時,可以使用@ServletComponentScan來自動注入啟用了@WebServlet、@WebFilter和@WebListener注解的類。

需要注意的是,@ServletComponentScan 在獨立部署的容器中不起作用,這是因為在獨立部署的容器中將使用容器內置的發現機制。

ServletWebServerApplicationContext

Spring Boot使用一種新型的ApplicationContext 來支持嵌人式的Servlet 容器。ServletWeb-

ServerApplicationContext 就是這樣- - 種特殊類型的WebApplicationContext,它通過搜索單個Serv-

letWebServerFactory bean來引導自身。通常, TomcatServletWebServerFactory 、JettyServletWebServer

Factory或UndertowServletWebServerFactory將被自動配置。

通常,開發者并不需要關心這些實現類。在大多數應用程序中將被自動配置,并將創建適當的ApplicationContext和ServletWebServerFactory。

更改內嵌Servlet容器

Spring Boot Web Starter默認使用了Tomcat 來作為內嵌的容器。在依賴中加入相應Servlet 容器的Starter,就能實現默認容器的替換,如下所示。

spring-boot- starterjetty: 使用Jetty 作為內嵌容器,可以替換spring bot-starter-tomcat。

springoboot-starter-undertow:使用Undertow作為內嵌容器,可以替換spring-boot-starter-tomcat。

可以使用Spring Environment屬性配置常見的Servlet 容器的相關設置。通常將在application.properties文件中來定義屬性。

常見的Servlet容器設置如下所示。

●網絡設置:監聽HTTP請求的端口( server.port)、綁定 到server.address 的接口地址等。

會話設置:會話是否持久( server.session.persistence)、會話超時( server.session.timeout)、會話數據的位置( server.session.store-dir )和會話cookie配置( serversession.cookie.* )錯誤管理:錯誤頁面的位置( serererror.path)等。

SSL。

●HTTP壓縮。

Spring Boot盡可能地嘗試公開這些常見公用設置,但也會有一些特殊的配置。對于這些例外的情況,SpringBoot提供了專用命名空間來對應特定于服務器的配置(比如server.tomcat和server.undertow )。

本篇給大家講解的是SpringBoot的配置詳解+內嵌Servlet容器這兩塊兒的內容,覺得內容不錯的朋友可以轉發關注小編一下!

下篇文章將介紹基于Sprin Security 實現的基本認證及 OAuth2,大家得空可以學習一下子~~

學以致用,努力提升自己!

總結

以上是生活随笔為你收集整理的creo配置文件config选项详解_5年资深架构师重点聚焦:SpringBoot的配置详解+内嵌Servlet容器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。