SpringBoot2.0 集成springmvc

SpringBoot2.0 集成springmvc

Spring的注解开发

  • 不需要写配置文件xml,直接用注解
    @Configuration标记在类上,相当于applicationContext.xml
    @Bean配置在返回bean对象的方法上,将返回值对象放入ioc容器
    之后可以使用@Autowired 依赖注入
  • @RestController注解,只要是返回json给浏览器的方法,返回值类型设置为Object,不需要再加@ResponseBody

application.properties

server.port=8090
server.servlet.context-path=/web01

实体类Person

@Data
public class Person {
    private String username;
    private String password;

    public Person() {
        System.out.println("执行Person构造方法");
    }
}

DaoBeanConfig

//因为springboot全注解开发,没有xml配置文件,就没有地方写<bean>
@Configuration
public class DaoBeanConfig {
    @Bean//将当前方法的返回值 放到 ioc容器
    public Person getPerson(){
        Person person=new Person();
        person.setPassword("123456");
        person.setUsername("jack");
        return person;
    }
}

测试类

@SpringBootTest
class Test08springmvcApplicationTests {
    @Autowired
    Person person;

    @Test
    void test01() {
        System.out.println(person);
    }
}

控制台打印
在这里插入图片描述

Demo01Controller

@RestController//只要是返回json给浏览器的方法,返回值类型设置为Object,不需要再加@ResponseBody
public class Demo01Controller {
    @RequestMapping(path = "/test01",method = RequestMethod.GET)
    //将结果转成json,如果不能转,就显示字符串
    Object test01(){
        Person person=new Person();
        person.setPassword("123456");
        person.setUsername("RestController");
        return person;
    }
}

运行启动类,访问路径
在这里插入图片描述

整合SpringMVC拦截器

只拦截用户对Controller的请求
对静态文件不执行拦截器,比如css、js等

MyInterceptor

public class MyInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //拦截器 判断用户是否登录,未登录重定向到登录页
        System.out.println("preHandle ");
        return true;//true就是放行 false就是不放行
    }
}

MySpringMVCConfiguration

@Configuration
public class MySpringMVCConfiguration  implements WebMvcConfigurer {
    public MyInterceptor getMyInterceptor(){
        MyInterceptor myInterceptor=new MyInterceptor();
        return myInterceptor;
    }
    @Override
    public void addInterceptors(InterceptorRegistry registry){
        registry.addInterceptor(getMyInterceptor()).addPathPatterns("/*");// /*表示拦截所有controller方法
    }
}

访问controller方法,控制台打印,说明拦截器测试成功
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值