自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Tyler.shi的博客

博观而约取,厚积而薄发

  • 博客(10)
  • 资源 (2)
  • 收藏
  • 关注

原创 如何优雅的消灭if...else...代码

其实我们都钟爱if...else if...else...在我们的代码中很常见,一遇到逻辑判断,我们基本第一个会想到它(应该不止我一个人更钟爱于if...else...,而很少使用switch...case..吧)。的确,if...else...确实很好用,但是如果多层if...else嵌套在一起,看起来是不是很让人抓狂,尤其是看别人代码的,瞬间有一种想打人的冲动(if.....

2019-10-18 14:42:40 865

原创 自定义注解结合AOP实现接口权限校验

在编写接口api时,基于数据安全的考虑,我们通常会在接口进行权限校验,有权限的才可以查询数据,没有权限我们可以抛出异常“没有权限,禁止访问“。通常,我们实现是这样的: @ApiOperation("根据id查询用户信息") @GetMapping("/data/{id}") public BaseResponse<String> getData(@PathVa...

2019-09-07 11:51:18 1360 1

原创 Tk.mybatis零sql语句实现动态sql查询

有时候,查询数据需要根据条件使用动态查询,这时候需要使用动态sql.,通常我们会自己写动态sql来实现,比如:<select id="findStudentByCondition" resultType="com.example.service.entity.Student"> SELECT id, name, score FROM tbl_student ...

2019-08-22 16:02:36 8961 3

原创 如何使用Feign优雅的调用远程服务

1.Feign是什么?官网地址:https://cloud.spring.io/spring-cloud-openfeign/single/spring-cloud-openfeign.html#spring-cloud-feign官网的解释是: Feign是一个声明性的Web服务客户端。它使编写Web服务客户端变得更容易。要使用Feign,请创建一个界面并对其进行...

2019-07-23 21:21:06 2725

原创 使用Redis实现分布式锁

1.为什么要使用分布式锁 传统项目中,大部分项目都是部署一个实例就行了,这个时候使用JDK自带的锁基本就可以解决并发问题。但是,一旦项目部署了多个实例,那么使用Java自带的锁,就没有用了;举个栗子,项目A部署了三个实例,有一段代码是通过定时任务定时触发的,比如发送报表,时间是每天早上9点,这个时候,你会发现每天早上9点,同一个人会收到3份一样的报表。但是这并不是我们想要的,正...

2019-07-22 15:04:57 268

原创 Java8 新特性之Optional 的使用

/** * @author yigen shi * @version 1.0 * @date 2019/7/11 9:51 * @description Optional 类的使用 */public class OptionalTest { private final Logger logger = LoggerFactory.getLogger(OptionalTest.cl...

2019-07-22 11:10:43 201

原创 Java 8 新特性 Stream流的使用

stream三点特性:1、stream不存储数据2、stream不改变源数据3、stream的延迟执行特性/** * @author yigen shi * @date 2019/7/1 19:35 */public class StreamTest { private Random random; private List<Student>...

2019-07-22 11:07:55 345

原创 使用Mockito编写单元测试用例

/** * @author yigen shi * @version 1.0 * @date 2019/7/13 10:28 * @description 单元测试之Mockito * 官方文档: https://static.javadoc.io/org.mockito/mockito-core/2.23.4/org/mockito/Mockito.html */@SpringB...

2019-07-22 11:04:46 839

原创 REST接口定义全局异常码以及异常信息

在编写REST接口时,常常会抛出各种各样的异常,比如系统错误,请求参数不合法,没有权限,token检验未通过等等,这时如果直接抛出异常,不仅对使用者不友好,而且会暴露程序内部信息,这种做法是不可取的,程序可以对异常进行拦截,并进一步封装。同时,对于程序异常,如果有一整套异常码以及对应的异常信息,那么也非常便于排查异常。下面就来介绍一下基于拦截器实现全局异常拦截。一、定义接...

2019-04-29 14:46:10 1966

原创 SpringBoot整合Swagger UI,别再写开发文档了

开发文档的弊端 随着软件开发的分工明确化,前后端分离成为越来越流行的一种开发形式,这样可以更好的提高开发效率和项目进度。可是在开发web项目时,因为需求变动等原因,免不了要修改后台代码,可能是修改了方法签名(方法名和参数列表),可能是新增或者删除了方法,结果开发文档忘记更新了,前端开发时,看着错误的文档开发,发现接口参数不对,或者接口不存在,然后就噼里啪啦的各种问,结果才发...

2018-08-28 19:34:48 1003

dubboAdmin控制台

dubboAdmin控制台,支持JDK1.8版本(目前好多是仅支持JDK1.7的),程序采用dubbo来进行远程调用时,可以通过控制台查看生成者与消费者信息,而不用再去zookeeper查看服务状况

2018-09-22

quartz表达式生成器,定时任务表达式

生成定时任务的表达式,根据条件框选择,可以生成表达式示例,以及列举触发时间,不需要自己再去写quartz表达式了

2018-09-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除