考慮下面的代碼,
@RestController
@RequestMapping("/v1")
class Controller {
}
我應該做的是,洗掉 @RequestMapping并通過application.properties配置路徑。
我遇到了兩種方法來實作這一目標,
spring.mvc.servlet.path=/v1
和
server.servlet.contextPath=/v1
但是它們有什么不同,因為我沒有注意到這兩種配置有什么不同?哪一個最適合我想要實作的目標?
uj5u.com熱心網友回復:
背景關系路徑是用于訪問 Web 應用程式的名稱。它是應用程式的根,默認情況下,Spring Boot 提供根背景關系路徑(“/”)上的內容。可以使用屬性更改此背景關系路徑server.servlet.context-path。
另一方面,servlet 路徑代表 main 的路徑DispatcherServlet。默認值類似于背景關系路徑,即(“/”),可以通過配置不同的spring.mvc.servlet.path屬性來更改。鑒于 servlet 屬于 servlet 背景關系,更改背景關系路徑也會影響 servlet 路徑。
如果您有以下配置,請記住這兩條資訊:
server.servlet.context-path=/context-path
spring.mvc.servlet.path=/servlet-path
然后應用 servlet 路徑將變為http://localhost:8080/context-path/servlet-path.
寫完所有這些后,我會說在您的情況下可以使用任何屬性。
uj5u.com熱心網友回復:
通過server.servlet.contextPath手段的路徑通過你的申請將被最終用戶那里訪問spring.mvc.servlet.path意味著servlet路徑。如果您未設定任何 servlet 路徑[默認值為/],contextPath則將用于用戶與您的服務的互動。但是如果servlet提供了路徑,那么您的背景關系路徑將像這樣更改:
http://application_domain_name:port/cotextPath_provided/_servlet_path_provided
uj5u.com熱心網友回復:
Spring Boot 默認同時提供 ("/")。
如果我們為兩者輸入不同的值,就會出現它們的差異;
例如:
spring.mvc.servlet.path=/test
server.servlet.contextPath=/demo
這個端點: http://localhost:8080/demo/test/.....
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/395180.html
