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默认是加载src\main\resources目录下的配置文件,配置文件命名为application.properties,为此,修改端口号只需在其配置文件中加上
server.port=2345(自己设定的端口号)即可
四、SpringBoot整合定时任务
spingboot自带了定时任务的框架,我们只需要使用@EnableScheduling注解即可启用定时任务
代码片断:

springboot基础知识学习的更多相关文章
- GCC基础知识学习
GCC基础知识学习 一.GCC编译选项解析 常用编译选项 命令格式:gcc [选项] [文件名] -E:仅执行编译预处理: -S:将C代码转换为汇编代码: -c:仅执行编译操作,不进行连接操作: -o ...
- (转)Linux基础知识学习
Linux基础知识学习 原文:http://blog.csdn.net/ye_wei_yang/article/details/52777499 一.Linux的磁盘分区及目录 Linux的配置是通过 ...
- Objective-c基础知识学习笔记
Objective-c基础知识学习笔记(一) 一直有记录笔记的习惯.但非常久没分享一些东西了,正好上半年開始学习IOS了,如今有空写点.因开发须要,公司特意为我们配置了几台新MAC.还让我们自学了2周 ...
- AXAJ基础知识学习
AXAJ基础知识学习 博客首页 Ajax简介 ajxa全称是Asynchronous Javascript And XML ,就是异步的JS 和XML 通过Ajax可以再浏览器中向服务器发送异步请求, ...
- Vue2基础知识学习
Vue2基础知识学习 01.初识 new Vue({ el: '#root', //用于指定当前Vue实例为哪个容器服务,值通常为css选择器符 data () { return { } } }); ...
- C#基础知识学习
C#基础知识整理 学习地址:http://blog.csdn.net/column/details/csarp.html
- 韩天峰博客 php基础知识学习记录
http://rango.swoole.com 写好PHP代码真的不容易,给大家几个建议: 慎用全局变量,全局变量不好管理的,会导致你的代码依赖于全局变量,而耦合度太高. 一定不要复制粘贴代码,可重用 ...
- 〖前端开发〗HTML/CSS基础知识学习笔记
经过一天的学习,把慕课网的HTML/CSS基础知识学完了,笔记整理: 1. 文件结构: HTML文件的固定结构: <html> <head>...</head> & ...
- Linq的简介和基础知识学习
学习LINQ之前,我们要知道LINQ是干什么,解决什么问题的,怎样学习? 一.LINQ简介 1.什么是LINQ? 什么是LINQ?LINQ中文翻译为语言集成查询(Language Integrated ...
随机推荐
- Javascript 中 == 和 === 区别是什么?
Javascript 中 == 和 === 区别是什么? 作者:Belleve链接:https://www.zhihu.com/question/31442029/answer/77772323来源: ...
- 在@Async注解下RequestContextHolder.getRequestAttributes() 获得null的情况
我们有的时候会在service层获取request填充一些诸如用户名和IP地址等信息,这个时候如果不想从Controller层传request,可以在service直接使用 HttpServletRe ...
- 【刷题】BZOJ 1143 [CTSC2008]祭祀river
Description 在遥远的东方,有一个神秘的民族,自称Y族.他们世代居住在水面上,奉龙王为神.每逢重大庆典, Y族都会在水面上举办盛大的祭祀活动.我们可以把Y族居住地水系看成一个由岔口和河道组成 ...
- 【刷题】BZOJ 4830 [Hnoi2017]抛硬币
Description 小A和小B是一对好朋友,他们经常一起愉快的玩耍.最近小B沉迷于**师手游,天天刷本,根本无心搞学习.但是已经入坑了几个月,却一次都没有抽到SSR,让他非常怀疑人生.勤勉的小A为 ...
- 【数论数学】【P2152】【SDOI2009】Super GCD
传送门 Description Sheng bill有着惊人的心算能力,甚至能用大脑计算出两个巨大的数的GCD(最大公约 数)!因此他经常和别人比赛计算GCD.有一天Sheng bill很嚣张地找到了 ...
- java oracle clob string 大字符串存储【转】
单位用到了oracle存储string类型到数据库里的clob,上网查看资料找到解决方案.如下: public class ClobTest { static String url = "j ...
- win7无法登陆linux samba共享
网上查了一下资料,总共有以下几种做法: 1.防火墙 2. Open the Run command and type "secpol.msc". Press "conti ...
- c++11新特性之future
std::future可以从异步任务中获取结果,一般与std::async配合使用,std::async用于创建异步任务,实际上就是创建一个线程执行相应任务. 先看段代码: #include < ...
- ACM1558两线段相交判断和并查集
Segment set Problem Description A segment and all segments which are connected with it compose a seg ...
- 大道至简第一章伪代码读后感o(╯□╰)o
import.java.io*; import class duhougan; public static void main(Striing arges[]){ system.out.println ...