Spring Boot 學(xué)習(xí)04-----Spring Boot 開發(fā)一個(gè)Web應(yīng)用程序




作者

接著來(lái)學(xué)習(xí)Spring Boot,很焦慮,很彷徨,但是日子還是要過(guò),生活還是要繼續(xù),我始終有一顆不服輸?shù)男摹?/p>

Spring Boot 非常適合來(lái)開發(fā)Web應(yīng)用。你可以通過(guò)Tomcat,Jetty,Undertow或者Netty來(lái)創(chuàng)建一個(gè)安全的HTTP服務(wù)器。大多數(shù)Web 應(yīng)用服務(wù)通過(guò)引入spring-boot-starter-web模塊就可以運(yùn)行得很快。當(dāng)然,你也可以通過(guò)引入spring-boot-starter-webflux來(lái)創(chuàng)建一個(gè)靈活的Web應(yīng)用。

Spring Web MVC Framework

Spring Web MVC Framework 簡(jiǎn)稱為 Spring MVC, 作為一種 “model view controller” Web框架,Spring MVC 讓你可以創(chuàng)建特殊@Controller或者@RestController beans 來(lái)處理HTTP請(qǐng)求。控制器通過(guò)@RequestMapping注解來(lái)映射HTTP請(qǐng)求。
以下就是使用@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)注冊(cè)Converter,GenericConverter以及Formatter
4. 支持HttpMessageConverters
5. 自動(dòng)注冊(cè)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接口來(lái)轉(zhuǎn)化HTTP 請(qǐng)求和響應(yīng)。
例如:實(shí)體自動(dòng)轉(zhuǎn)化為JSON(通過(guò)Jackson library)

參考:

https://docs.spring.io/spring-boot/docs/2.0.0.RELEASE/reference/htmlsingle/#boot-features-spring-mvc-static-contentspan>碼農(nóng)飛哥

微信公眾號(hào):碼農(nóng)飛哥