SpringBoot MVC

环境搭建

  1. 在pom.xml添加spring-boot-starter-web

    1.  
      <dependency>
    2.  
      <groupId>org.springframework.boot</groupId>
    3.  
      <artifactId>spring-boot-starter-web</artifactId>
    4.  
      </dependency>
  2. 修改application.yml配置

    1.  
       
    2.  
      spring:
    3.  
      datasource:
    4.  
      username: system
    5.  
      password: 123456
    6.  
      url: jdbc:oracle:thin:@localhost:1521:XE
    7.  
      driverClassName: oracle.jdbc.OracleDriver
    8.  
      server:
    9.  
      port: 8889
  3. 编写Controller,使用@RequestMapping和@RestController

    1.  
      @RestController
    2.  
      public class BookService {
    3.  
       
    4.  
      @Autowired
    5.  
      private BookDao bookDao;
    6.  
       
    7.  
      @RequestMapping(value="/book",method=RequestMethod.GET)
    8.  
      public List<Book> loadAll(){
    9.  
      return bookDao.findAll();
    10.  
      }
    11.  
       
    12.  
      @RequestMapping(value="/book/{id}",method=RequestMethod.GET)
    13.  
      public Book load(@PathVariable("id")int id){
    14.  
      return bookDao.findById(id);
    15.  
      }
    16.  
       
    17.  
      @RequestMapping(value="/book/{id}",method=RequestMethod.DELETE)
    18.  
      public boolean delete(@PathVariable("id")int id){
    19.  
      int row = bookDao.deleteById(id);
    20.  
      if(row >= 1){
    21.  
      return true;
    22.  
      }else{
    23.  
      return false;
    24.  
      }
    25.  
      }
    26.  
       
    27.  
      @RequestMapping(value="/book/{id}",method=RequestMethod.PUT)
    28.  
      public boolean update(@PathVariable("id")int id, @RequestBody Book book){
    29.  
      book.setId(id);
    30.  
      int row = bookDao.update(book);
    31.  
      if(row >= 1){
    32.  
      return true;
    33.  
      }else{
    34.  
      return false;
    35.  
      }
    36.  
      }
    37.  
       
    38.  
      @RequestMapping(value="/book",method=RequestMethod.POST)
    39.  
      public boolean add(@RequestBody Book book){
    40.  
      bookDao.save(book);
    41.  
      return true;
    42.  
      }
    43.  
      }
  4. 编写Filter,解决Ajax调用跨域问题

    1.  
      @WebFilter(servletNames={"dispatcherServlet"})
    2.  
      public class AjaxDomainFilter implements Filter{
    3.  
       
    4.  
      @Override
    5.  
      public void destroy() {
    6.  
      // TODO Auto-generated method stub
    7.  
       
    8.  
      }
    9.  
       
    10.  
      @Override
    11.  
      public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
    12.  
      throws IOException, ServletException {
    13.  
      HttpServletResponse httpResponse = (HttpServletResponse)response;
    14.  
      httpResponse.setHeader("Access-Control-Allow-Origin", "*");//设置允许哪些域名应用进行ajax访问
    15.  
      httpResponse.setHeader("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE");
    16.  
      httpResponse.setHeader("Access-Control-Allow-Headers", "Content-Type");
    17.  
      chain.doFilter(request, response);//调用后续serlvet
    18.  
      }
    19.  
       
    20.  
      @Override
    21.  
      public void init(FilterConfig arg0) throws ServletException {
    22.  
      // TODO Auto-generated method stub
    23.  
       
    24.  
      }
    25.  
       
    26.  
      }
  5. 配置Filter,使用@WebFilter和@ServletComponentScan

    1.  
      @SpringBootApplication//开启扫描、自动配置、bean定义
    2.  
      @MapperScan(basePackages={"cn.xdl.dao"})//开启扫描Mapper接口
    3.  
      @ServletComponentScan//开启WebFilter、WebServlet、WebListener配置支持
    4.  
      public class BootApplication {
    5.  
       
    6.  
      public static void main(String[] args){
    7.  
      SpringApplication.run(BootApplication.class, args);
    8.  
      }
    9.  
       
    10.  
      }
  6. 修改pc_web前端的common.js,将请求路径改为

    var path = "http://localhost:8889";

SpringBoot 热启动

当修改完毕程序代码后,可以自动重新部署。

  1.  
    <dependency>
  2.  
    <groupId>org.springframework.boot</groupId>
  3.  
    <artifactId>spring-boot-devtools</artifactId>
  4.  
    </dependency>

如果修改了pom.xml定义,要从新启动,修改了java代码可以自动重新启动。

SpringBoot MyBatis分页

  1.  
    <dependency>
  2.  
    <groupId>com.github.pagehelper</groupId>
  3.  
    <artifactId>pagehelper-spring-boot-starter</artifactId>
  4.  
    <version>1.2.3</version>
  5.  
    </dependency>

然后在调用查询代码之前执行PageHelper.startPage方法

  1.  
    Page page = PageHelper.startPage(p, 3);
  2.  
    //分页查询
  3.  
    List list = bookDao.findAll();
  4.  
    //获取总页数
  5.  
    int totalPage = page.getPages();

SpringBoot 拦截器

  1. 编写拦截器类,实现HandlerInterceptor接口,实现PreHandle、PostHandle、afterCompletion方法

    1.  
      public class AjaxDomainInterceptor implements HandlerInterceptor{
    2.  
       
    3.  
      @Override
    4.  
      public boolean preHandle(
    5.  
      HttpServletRequest request,
    6.  
      HttpServletResponse response, Object handler)
    7.  
      throws Exception {
    8.  
      response.setHeader("Access-Control-Allow-Origin", "*");//设置允许哪些域名应用进行ajax访问
    9.  
      response.setHeader("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE");
    10.  
      response.setHeader("Access-Control-Allow-Headers", "Content-Type");
    11.  
      return true;
    12.  
      }
    13.  
       
    14.  
      //...
    15.  
      }
  2. 编写配置类,继承WebMvcConfigurerAdapter,重写addInterceptors方法

    1.  
      //@Configuration
    2.  
      @Component
    3.  
      public class InterceptorConfiguration extends WebMvcConfigurerAdapter{
    4.  
       
    5.  
      public void addInterceptors(InterceptorRegistry registry) {
    6.  
      //配置拦截器
    7.  
      AjaxDomainInterceptor ajaxDomain = new AjaxDomainInterceptor();
    8.  
      registry.addInterceptor(ajaxDomain).addPathPatterns("/**");
    9.  
      }
    10.  
       
    11.  
      }
 

SpringBoot MVC 拦截器的更多相关文章

  1. mvc拦截器

    在ASP.NET MVC中,有三种拦截器:Action拦截器.Result拦截器和Exception拦截器.这里说的是第一种和第三种.其实所谓的ASP.NET MVC拦截器,也没什么神秘的,就是一个普 ...

  2. SpringBoot自定义拦截器实现IP白名单功能

    SpringBoot自定义拦截器实现IP白名单功能 转载请注明源地址:http://www.cnblogs.com/funnyzpc/p/8993331.html 首先,相关功能已经上线了,且先让我先 ...

  3. SpringBoot使用拦截器

    SpringBoot的拦截器只能拦截流经DispatcherServlet的请求,对于自定义的Servlet无法进行拦截. SpringMVC中的拦截器有两种:HandlerInterceptor和W ...

  4. SpringBoot 注册拦截器方式及拦截器如何获取spring bean实例

    SpringBoot 注册拦截器时,如果用New对象的方式的话,如下: private void addTokenForMallInterceptor(InterceptorRegistry regi ...

  5. SSM(spring mvc+spring+mybatis)学习路径——2-2、spring MVC拦截器

    目录 2-2 Spring MVC拦截器 第一章 概述 第二章 Spring mvc拦截器的实现 2-1 拦截器的工作原理 2-2 拦截器的实现 2-3 拦截器的方法介绍 2-4 多个拦截器应用 2- ...

  6. spring mvc 拦截器的使用

    Spring MVC 拦截器的使用 拦截器简介 Spring MVC 中的拦截器(Interceptor)类似于 Servler 中的过滤器(Filter).用于对处理器进行预处理和后处理.常用于日志 ...

  7. 【Java Web开发学习】Spring MVC 拦截器HandlerInterceptor

    [Java Web开发学习]Spring MVC 拦截器HandlerInterceptor 转载:https://www.cnblogs.com/yangchongxing/p/9324119.ht ...

  8. Spring Boot 2.X(九):Spring MVC - 拦截器(Interceptor)

    拦截器 1.简介 Spring MVC 中的拦截器(Interceptor)类似于 Servlet 开发中的过滤器 Filter,它主要用于拦截用户请求并作相应的处理,它也是 AOP 编程思想的体现, ...

  9. springboot+springmvc拦截器做登录拦截

    springboot+springmvc拦截器做登录拦截 LoginInterceptor 实现 HandlerInterceptor 接口,自定义拦截器处理方法 LoginConfiguration ...

随机推荐

  1. linux 单引号,双引号,反引号

    单引号 目的: 为了保护文字不被转换.除了他本身. 就是说除去单引号外, 在单引号内的所有文字都是原样输出. 1. [root@jszwl161 SP49EP9]# echo '$*><! ...

  2. Get与Post的主要区别

    这里附一篇自己的简短理解 get相对于post更不安全,虽然都可以加密 get的参数会显示在浏览器地址栏中,而post的参数不会显示在浏览器地址栏中: 使用post提交的页面在点击[刷新]按钮的时候浏 ...

  3. a dive in react lifecycle

    背景:我在react文档里找生命周期的图,居然没有,不敢相信我是在推特上找到的... 正文 react v16.3 新生命周期: static getDerivedStateFromProps get ...

  4. 学习记录(一)之h5_canvas

    canvas(画布) canvas(画布): 利用JS在网页中绘制图像. 标签:<canvas></canvas> 属性:height,width(宽高属性要写在行内样式中); ...

  5. mac svn的使用

    一.概述 在windows下,我们常常用TortoiseSVN管理svn代码.在mac下,自带svn客户端和服务器端功能. 二.服务端:创建代码仓库,用来存储客户端所上传的代码 (1)创建svn代码存 ...

  6. 移动前端—H5实现图片先压缩再上传

    在做移动端图片上传的时候,用户传的都是手机本地图片,而本地图片一般都相对比较大,拿iphone6来说,平时拍很多图片都是一两M的,如果直接这样上传,那图片就太大了,如果用户用的是移动流量,完全把图片上 ...

  7. -moz、-ms、-webkit浏览器前缀解释(PS:后续在详细解释)

    -moz-是Firefox Gecko内核,moz代表的是Firefox的开发商Mozill -ms代表ie浏览器私有属性 -webkit代表safari.chrome私有属性

  8. 在PeopleSoft中,什么是AlterAudit,Sysaudit和DDDAudit报告

    Alter Audit-是一个进程,它标识任何需要SQL Alter process的记录.即:如果AD中定义的record与数据库的中定义不匹配则标识该记录为应该修改. SQL Alter-AD中的 ...

  9. 你不可不知的Java引用类型之——虚引用

    定义 虚引用是使用PhantomReference创建的引用,虚引用也称为幽灵引用或者幻影引用,是所有引用类型中最弱的一个.一个对象是否有虚引用的存在,完全不会对其生命周期构成影响,也无法通过虚引用获 ...

  10. Ubuntu16.04下postgresql-10

      这里使用源码安装的方式进行: Linux版本:ubuntu16.04 PostgresSQL版本:postgresql-10.3 在PostgreSQL官网下载地址:https://www.pos ...