zoukankan      html  css  js  c++  java
  • springboot基础知识学习

    一、springboot中常用的注解:

         原文链接:http://blog.csdn.net/lafengwnagzi/article/details/53034369

         原文链接:http://www.cnblogs.com/m4tech/p/6610301.html

    二、SpringBoot返回JSON

        SpringBoot支持RESTFul风格,在springmvc请求类上加上@RestController(等同于@RequestMapping和@ResponseBody)标志请求方法返回为json

    三、springboot全局异常捕获

    一、单个 controller 范围的异常处理

     package com.xxx.secondboot.web;
    
    import org.springframework.web.bind.annotation.ExceptionHandler;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RestController;
    
    import com.xxx.secondboot.exception.MyExceptionResponse;
    
    import io.swagger.annotations.Api;
    
    @Api("测试controllerAdvice和全局异常处理")
    @RestController
    @RequestMapping("/advice1")
    public class AdviceController {
    
        @RequestMapping(value = "/test1", method = RequestMethod.GET)
        public String test1() {
            throw new RuntimeException("advice1 - exception1");
        }
    
        @RequestMapping(value = "/test2", method = RequestMethod.GET)
        public String test2() {
            throw new RuntimeException("advice1 - exception2");
        }
    
        @ExceptionHandler(RuntimeException.class)
        public MyExceptionResponse exceptionHandler() {
            MyExceptionResponse resp = new MyExceptionResponse();
            resp.setCode(300);
            resp.setMsg("exception-Handler");
            return resp;
        }
    
    }
    

    说明:

    • 在 controller 中加入被 @ExceptionHandler 修饰的类即可(在该注解中指定该方法需要处理的那些异常类)
    • 该异常处理方法只在当前的 controller 中起作用

    二、全部 controller 范围内起作用的异常处理(全局异常处理)

    1、全局异常处理类

    package com.xxx.secondboot.web;
    
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.web.bind.annotation.ControllerAdvice;
    import org.springframework.web.bind.annotation.ExceptionHandler;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.bind.annotation.RestController;
    
    import com.xxx.secondboot.exception.MyExceptionResponse;
    import com.xxx.secondboot.exception.MyRuntimeException;
    
    //@ControllerAdvice(annotations=RestController.class)
    //@ControllerAdvice(basePackages={"com.xxx","com.ooo"})
    @ControllerAdvice
    public class GlobalExceptionHandler {
        @ExceptionHandler(RuntimeException.class)
        //    @ExceptionHandler(value={RuntimeException.class,MyRuntimeException.class})
        //    @ExceptionHandler//处理所有异常
        @ResponseBody //在返回自定义相应类的情况下必须有,这是@ControllerAdvice注解的规定
        public MyExceptionResponse exceptionHandler(RuntimeException e, HttpServletResponse response) {
            MyExceptionResponse resp = new MyExceptionResponse();
            resp.setCode(300);
            resp.setMsg("exception-Handler");
            //        response.setStatus(600);
            return resp;
        }
    }
    

    说明:

    • @ControllerAdvice 是 controller 的一个辅助类,最常用的就是作为全局异常处理的切面类
    • @ControllerAdvice 可以指定扫描范围
    • @ControllerAdvice 约定了几种可行的返回值,如果是直接返回 model 类的话,需要使用 @ResponseBody 进行 json 转换

    2、单个controller异常和全局异常处理类

    package com.xxx.secondboot.web;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RestController;
    import io.swagger.annotations.Api;
    
    @Api("测试controllerAdvice和全局异常处理")
    @RestController
    @RequestMapping("/advice1")
    public class AdviceController {
    
        @RequestMapping(value = "/test1", method = RequestMethod.GET)
        public String test1() {
            throw new RuntimeException("advice1 - exception1");
        }
    
        @RequestMapping(value = "/test2", method = RequestMethod.GET)
        public String test2() {
            throw new RuntimeException("advice1 - exception2");
        }
    
        //    @ExceptionHandler(RuntimeException.class)
        //    public MyExceptionResponse exceptionHandler() {
        //        MyExceptionResponse resp = new MyExceptionResponse();
        //        resp.setCode(300);
        //        resp.setMsg("exception-Handler");
        //        return resp;
        //    }
    
    }
    

    注意:

    • 同一个异常被局部范围异常处理器和全局范围异常处理器同时覆盖,会选择小范围的局部范围处理器
    • 同一个异常被小范围的异常类和大范围的异常处理器同时覆盖,会选择小范围的异常处理器
    • 原文链接:http://bbs.itmayiedu.com/article/1494079310050

    三、springboot修改端口号

    springboot默认是加载srcmain esources目录下的配置文件,配置文件命名为application.properties,为此,修改端口号只需在其配置文件中加上

    server.port=2345(自己设定的端口号)即可

    四、SpringBoot整合定时任务

       spingboot自带了定时任务的框架,我们只需要使用@EnableScheduling注解即可启用定时任务 

    代码片断:

     

     

  • 相关阅读:
    修改其他输入法为android 默认输入法
    {php 数据类型}
    转:PHP.ini配置文件(中文)
    php导出任意mysql数据库中的表去excel文件
    php输出、写入csv
    smarty二级分类代码和模版循环例子
    笔记:使ecshop 模板中可引用 常量
    Windows下Apache2不同域名解析不同目录解决方法
    {php 数组}
    Apache中.htaccess文件功能
  • 原文地址:https://www.cnblogs.com/kelly-one/p/7388141.html
Copyright © 2011-2022 走看看