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。如果你希望提供自定義的RequestMappingHandlerMappingRequestMappingHandlerAdapter或者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)飛哥