springboot spring-mvc

spring-mvc简介

spring-mvc是一个实现了mvc设计模式的web框架,mvc将web应用分为m(model)、v(view)、c(controller)三层来实现职责隔离,使得web开发更加便捷。mcv的结构划分如下图

  • 视图:负责跟客户端(浏览器)的交互,比如资源展示、数据填写、提交等等。
  • 控制器:负责将用户请求正确的交给模型层处理,然后返回处理结果,用户可能是视图层或外部系统等。
  • 模型:负责处理具体的业务逻辑、和数据库交互等。

 下面主要对控制器层的一些常用点展开叙述。

springboot中的controller

我们知道传统的springMVC在项目构建初期需要做一些手动配置,如果在springboot构建时引入了"spring-boot-starter-web",那么就默认配置好了mvc,可以直接使用,如下代码

@RestController //告诉框架这是一个controller
@RequestMapping("/first") //controller的path
public class FirstController {

    @GetMapping("/test1") //告诉框架这是一个get接口方法,且path是"/test",
    public String tset1(){
        return "test1";
    }
}

启动应用,在浏览器访问:http://localhost:8080/first/test1 浏览器将输出“test1”。

消息转换器

springMVC使用HttpMessageConverter对http请求报文和响应报文进行转换,比如将请求json转为对象,将响应对象转json,springboot默认使用jackjson进行报文转换。

在接口方法的对象参数前使用@RequestBody注解,系统会将json数据按属性名称一一对应的写到请求参数对对象。

在接口方法上使用@ResponseBody注解,系统会将响应报文转为json字符串,@RestController包含了@ResponseBody注解,使用了@RestController可不用重复使用@ResponseBody

    @PostMapping("/test2")
    public void test2(@RequestBody Student student){
        System.out.println(student);
    }

    @GetMapping("/test3")
    public Student test3(){
        Student student = new Student();
        student.setName("张三");
        student.setAge(11);
        return student;
    }

跨域的支持

在controller上使用@CrossOrigin注解,可以支持跨域,如要配置全局的跨域支持,需自定义配置类,代码如下

@Configuration(proxyBeanMethods = false)
public class MyCorsConfiguration {

    @Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurer() {

            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/api/**");
            }

        };
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值