Spring Boot 學(xué)習(xí)04-----Spring Boot 開發(fā)一個(gè)Web應(yīng)用程序
作者
接著來學(xué)習(xí)Spring Boot,很焦慮,很彷徨,但是日子還是要過,生活還是要繼續(xù),我始終有一顆不服輸?shù)男摹?/p>
Spring Boot 非常適合來開發(fā)Web應(yīng)用。你可以通過Tomcat,Jetty,Undertow或者Netty來創(chuàng)建一個(gè)安全的HTTP服務(wù)器。大多數(shù)Web 應(yīng)用服務(wù)通過引入spring-boot-starter-web
模塊就可以運(yùn)行得很快。當(dāng)然,你也可以通過引入spring-boot-starter-webflux
來創(chuàng)建一個(gè)靈活的Web應(yīng)用。
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
,服務(wù)器放回JSON數(shù)據(jù)
@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的一部分。詳細(xì)的信息可以參考reference documentation
Spring MVC 的自動(dòng)配置
Spring Boot為Spring MVC提供了自動(dòng)配置。適用于大多數(shù)的應(yīng)用
這些自動(dòng)配置在以下的屬性中
1. 包括ContentNegotiatingViewResolver
以及BeanNameViewResolver
2. 支持靜態(tài)資源
3. 自動(dòng)注冊Converter
,GenericConverter
以及Formatter
4. 支持HttpMessageConverters
5. 自動(dòng)注冊MessageCodesResolver
6. 支持靜態(tài)的index.html
7. 支持定制化的Favicon
8. 自動(dòng)的使用ConfigurableWebBindingInitializer
如果你想保持Spring Boot MVC的特性以及你想增加額外的MVC 配置(攔截器,格式化,視圖控制器以及其他的屬性),
你可以添加你自己的@Configuration
注解作為WebMvcConfigurer
,替換@EnableWebMvc
。如果你希望提供自定義的RequestMappingHandlerMapping
,RequestMappingHandlerAdapter
或者ExceptionHandlerExceptionResolver
,你可以申明一個(gè)WebMvcRegistrationsAdapter
實(shí)例。
HttpMessageConverters
Spring MVC 使用HttpMessageConverters
接口來轉(zhuǎn)化HTTP 請求和響應(yīng)。
例如:實(shí)體自動(dòng)轉(zhuǎn)化為JSON(通過Jackson library)
參考:
https://docs.spring.io/spring-boot/docs/2.0.0.RELEASE/reference/htmlsingle/#boot-features-spring-mvc-static-contentspan>碼農(nóng)飛哥
微信公眾號:碼農(nóng)飛哥