Spring Boot 入门

来源:互联网 发布:config.php 编辑:程序博客网 时间:2024/05/16 18:55
  • 前端控制器是DispatcherServlet;
  • 应用控制器其实拆为处理器映射器(Handler Mapping)进行处理器管理和视图解析器(View Resolver)进行视图管理;
  • 页面控制器/动作/处理器为Controller接口(仅包含ModelAndView handleRequest(request, response) 方法)的实现(也可以是任何的POJO类);
  • 支持本地化(Locale)解析、主题(Theme)解析及文件上传等;
  • 提供了非常灵活的数据验证、格式化和数据绑定机制;提供了强大的约定大于配置(惯例优先原则)的契约式编程支持。
package com.xxx;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@SpringBootApplication@RestControllerpublic class Application {    @RequestMapping("/")    public String greeting() {        return "Hello World!";    }    public static void main(String[] args) {        SpringApplication.run(Application.class, args);    }}
  1. SpringApplication是Spring Boot框架中描述Spring应用的类,它的run()方法会创建一个Spring应用上下文(Application Context)。另一方面它会扫描当前应用类路径上的依赖,例如本例中发现spring-webmvc(由 spring-boot-starter-web传递引入)在类路径中,那么Spring Boot会判断这是一个Web应用,并启动一个内嵌的Servlet容器(默认是Tomcat)用于处理HTTP请求。
  2. Spring WebMvc框架会将Servlet容器里收到的HTTP请求根据路径分发给对应的@Controller类进行处理,@RestController是一类特殊的@Controller,它的返回值直接作为HTTP Response的Body部分返回给浏览器。
  3. @RequestMapping注解表明该方法处理那些URL对应的HTTP请求,也就是我们常说的URL路由(routing),请求的分发工作是有Spring完成的。

1. 使用@Controller实现URL路由

1.1 @RequestMapping可以注解@Controller类

@RestController@RequestMapping("/classPath")public class Application {    @RequestMapping("/methodPath")    public String method() {        return "mapping url is /classPath/methodPath";    }}

1.2 URL中的变量:PathVariable

@RequestMapping("/users/{username}")public String userProfile(@PathVariable("username") String username) {    return String.format("user %s", username);}@RequestMapping("/posts/{id}")public String post(@PathVariable("id") int id) {    return String.format("post %d", id);}

  URL中的变量可以用{variableName}来表示,同时在方法的参数中加上@PathVariable(“variableName”),那么当请求被转发给该方法处理时,对应的URL中的变量会被自动赋值给被@PathVariable注解的参数(能够自动根据参数类型赋值,例如上例中的int)

1.3 支持HTTP方法

  对于HTTP请求除了其URL,还需要注意它的方法(Method)。例如在浏览器中访问一个页面通常是GET方法,而表单的提交一般是POST方法。@Controller中的方法同样需要对其进行区分:

@RequestMapping(value = "/login", method = RequestMethod.GET)public String loginGet() {    return "Login Page";}@RequestMapping(value = "/login", method = RequestMethod.POST)public String loginPost() {    return "Login Post Request";}

PUT方法用来添加的资源      -增
GET方法用来获取已有的资源    -查 / 默认
POST方法用来对资源进行状态转换  -改
DELETE方法用来删除已有的资源  -删

原创粉丝点击