Spring Boot 學習04-----Spring Boot 開發(fā)一個Web應用程序
接著來學習Spring Boot,很焦慮,很彷徨,但是日子還是要過,生活還是要繼續(xù),我始終有一顆不服輸?shù)男摹?/p>
Spring Boot 非常適合來開發(fā)Web應用。你可以通過Tomcat,Jetty,Undertow或者Netty來創(chuàng)建一個安全的HTTP服務器。大多數(shù)Web 應用服務通過引入spring-boot-starter-web
模塊就可以運行得很快。當然,你也可以通過引入spring-boot-starter-webflux
來創(chuàng)建一個靈活的Web應用。
Spring Web MVC Framework
Spring Web MVC Framework 簡稱為 Spring MVC, 作為一種 “model view controller” Web框架,Spring MVC 讓你可以創(chuàng)建特殊@Controller
或者@RestController
beans 來處理HTTP請求??刂破魍ㄟ^@RequestMapping
注解來映射HTTP請求。
以下就是使用@RestController
,服務器放回JSON數(shù)據
@RestController
@RequestMapping(value="/users")
public class MyRestController {
@RequestMapping(value="/{user}", method=RequestMethod.GET)
public User getUser(@PathVariable Long user) {
// ...
}
@RequestMapping(value="/{user}/customers", method=RequestMethod.GET)
List<Customer> getUserCustomers(@PathVariable Long user) {
// ...
}
@RequestMapping(value="/{user}", method=RequestMethod.DELETE)
public User deleteUser(@PathVariable Long user) {
// ...
}
}
Spring MVC 是Spring Framework的一部分。詳細的信息可以參考reference documentation
Spring MVC 的自動配置
Spring Boot為Spring MVC提供了自動配置。適用于大多數(shù)的應用
這些自動配置在以下的屬性中
1. 包括ContentNegotiatingViewResolver
以及BeanNameViewResolver
2. 支持靜態(tài)資源
3. 自動注冊Converter
,GenericConverter
以及Formatter
4. 支持HttpMessageConverters
5. 自動注冊MessageCodesResolver
6. 支持靜態(tài)的index.html
7. 支持定制化的Favicon
8. 自動的使用ConfigurableWebBindingInitializer
如果你想保持Spring Boot MVC的特性以及你想增加額外的MVC 配置(攔截器,格式化,視圖控制器以及其他的屬性),
你可以添加你自己的@Configuration
注解作為WebMvcConfigurer
,替換@EnableWebMvc
。如果你希望提供自定義的RequestMappingHandlerMapping
,RequestMappingHandlerAdapter
或者ExceptionHandlerExceptionResolver
,你可以申明一個WebMvcRegistrationsAdapter
實例。
HttpMessageConverters
Spring MVC 使用HttpMessageConverters
接口來轉化HTTP 請求和響應。
例如:實體自動轉化為JSON(通過Jackson library)
參考:
https://docs.spring.io/spring-boot/docs/2.0.0.RELEASE/reference/htmlsingle/#boot-features-spring-mvc-static-content
作者:碼農飛哥
微信公眾號:碼農飛哥