自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wilson_m的博客

程序猿菜鸟的成长之路

  • 博客(145)
  • 资源 (1)
  • 收藏
  • 关注

原创 【自定义注解】实现接口请求参数和返回参数的打印

本篇博客主要是实现自定义注解,通过在方法中使用该注解,打印出该方法的请求参数以及返回参数,用于排查问题。减少日志的打印。方法枚举:package cn.eric.jdktools.annotation;/** * 方法返回参数枚举 * @Author wilsonm * @Date 2020/4/13 1:02 下午 * @Param * @return **/public ...

2020-05-06 14:45:50 1820

原创 springboot实现数据库中数据导出Excel功能

功能介绍       网上查找了一堆的数据导出代码,可能是自己基础比较薄弱的原因还是别的什么原因,导致一直没有运行成功,就算是运行成功的,结果也是差强人意。在此总结一下自己借鉴别人已经经过自己整合出来的一个demo。步骤解析        1. 前台页面添加数据导出按钮。         2. 后台进行数据的导出功能。         2. 1 数据库信息的查询

2018-01-10 11:09:22 49718 61

原创 Springboot+easyUI分栏展示数据库信息及详细信息

信息及详细信息的展示      本篇博客主要实现信息及用户信息详情的展示,也就是说将一个frame分成两部分,左边一部分显示数据库中的信息,右边一部分显示详细信息(也就是你点击左边一部分时,右边会通过获取左边选中行中的一个属性,作为查询的条件去数据库中另一张表进行检索。)介绍      数据库中的表信息如下所示: 表一 教学评价表 表二 教学评价教师信息表 表三

2017-12-21 15:47:07 3099 5

原创 Java线程池

线程池线程池由两个核心数据结构组成:1、线程集合(workers):存放执行任务的线程,是一个HashSet;2、任务等待队列(workQueue):存放等待线程池调度执行的任务,是一个阻塞式队列BlockingQueue;就是一个线程集合workerSet和一个阻塞队列workQueue。当用户向线程池提交一个任务(也就是线程)时,线程池会先将任务放入workQueue中。workerSet中的线程会不断的从workQueue中获取线程然后执行。当workQueue中没有任务的时候,worker就

2022-03-11 00:00:00 700

原创 记一次开发条件表达式遇到的bug【包装类的自动拆箱】

在介绍本次的文章之前,先来科普下一些基础知识Java基本数据类型Java基本类型共有八种,基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。数值类型又可以分为整数类型byte、short、int、long和浮点数类型float、double。byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。short:16位,最大数据存储量是65536,数据范围是-32768~32767之间。

2021-10-06 20:49:52 222

原创 【LeetCode】3、无重复字符的最长子串

题目链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/变更:无重复子串的最长子串的内容(求子串,原题求子串长度)思路:双指针滑动窗口法思路分析示例:以frankissohandsome为例,我们要从中找出我们想要的子串,那少不了需要遍历,我们设置两个变量from,to,分别存储寻找的目标子串在原字符串中的首尾位置。首先,from和to的初始值都为0(String的序号从0开始)

2021-06-21 22:27:09 334 2

原创 自定义切面

@Aspect@Componentpublic class ParamSignResolver { public final Logger logger = LoggerFactory.getLogger(getClass()); public static final Validator validator = Validation.buildDefaultValidatorFactory().getValidator(); @Around("@annotation(.

2021-05-31 22:51:44 125

原创 【HashMap】手写一个简易的hashMap

手写一个简易的hashMap,包含put、set和size功能(数组+链表)Java code/** * @author wilsonM * @date 2021年04月20日 3:38 下午 * @description */public class MyHashMapTest<K, V> { private int size = 0; private static int DEFAULT_CAPACITY = 1 << 4; privat

2021-04-20 16:23:13 143

原创 【mysql】时间字段设值为时间戳问题

相关博客链接:https://www.cnblogs.com/tommy-huang/p/9365128.htmlhttps://blog.csdn.net/weter_drop/article/details/89924451https://unclewang.blog.csdn.net/article/details/108895635

2021-02-05 18:33:57 128

原创 【java】接口返回参数按照请求参数进行排序

在项目实际开发中可能遇到过这种问题,接口请求参数顺序是[a,b,c],结果返回的数据是[bObject,cObject,aObject],导致这种原因可能是底层采用了设计模式,或者是表拼接查询,本文主要就是为了实现这种功能,采用流的方法代码实现import lombok.Data;import java.io.Serializable;/** * @description 模拟接口结果类 * @author: WilsonMeng * @create: 2021-01-26 14:26

2021-01-26 14:43:48 1285

原创 【Java开发工具类】集合数组数据抽取工具类

集合数组数据抽取工具类功能1:抽取对象数组中的某一个字段形成的数据(去重)1、某一字段数据抽取描述:从一个Object对象数组中,提取Object对象中A字段形成的数组反射工具类:import com.google.common.base.Optional;import lombok.extern.slf4j.Slf4j;import org.apache.commons.lang3.StringUtils;import java.lang.reflect.Field;import

2021-01-15 15:18:59 443

原创 条件表达式自动拆装箱遇到的坑

相关链接:https://blog.csdn.net/weixin_30760895/article/details/95742267话不多说,先上代码 @Data @AllArgsConstructor @NoArgsConstructor public class StoreStock implements Serializable { /** * 门店id */ private Long storeI

2020-12-22 18:48:57 85

原创 fastJson输出json时避免$ref

场景:新手小白在开发中使用fastJson打印返回结果时出现$ref情况。场景问题描述:对现有接口新增了分页功能,因为分页功能返回前端的是固定模板,返回的数组数据字段名必须为resultList,考虑到前端可能没上线,后台新增get方法,两种方式兼容@ToString(callSuper = true)public class CQryCourseTabProductRespVo extends PageRespInfoVo { private List<CProductFlatVo&

2020-12-10 10:51:24 584

原创 谷歌浏览器http请求之curl使用

CURL简介curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。在开发中我们可以使用postman来进行http请求测试,获取请求和响应结果,如果不借助工具可以使用CURL命令CURL命令详解参考链接:https://www.jianshu.com/p/07c4dddae43ahttp://www.ruanyifeng.com/blog/2019/09/curl-reference.html谷歌浏览器请求拷贝为CURL技巧1、

2020-11-11 16:46:54 8162

原创 菜鸟程序员成长之路--Java开发工程师

选择公司距离上一次更新博客已经有一个月的时间了,从毕业至今工作已经快1年半的时间了,这一年半中,收获很多,不过都是些不好的收获。如果有博友看到这篇博客的时候,选择公司的时候一定要注意,我现在所处的公司虽然是一家上市公司,可完全没有上市公司对应的条件(公司名不便透露),整个公司全是野路子出身,体系不完善,流程不正规。开展新项目,产品调研时间不到一个月,然后上层领导就开始拍板做新项目。试问调研时间不足一个月的项目,如果真做起来,会靠谱吗?反正我是感觉不靠谱,不仅是我整个公司大多数同事都感觉不靠谱,但是没办法

2020-11-05 09:31:30 247 2

原创 【LeetCode】150.逆波兰表达式求值

题目描述根据 逆波兰表示法,求表达式的值。有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。示例 1:输入: ["2", "1", "+", "3", "*"]输出: 9解释: 该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9示例 2:输入: ["4", "13", "5", "/", "+"]输出: 6解释: 该算式转化为常见的中缀算术表达式为:(4 + (13 / 5)) = 6示例 3:输入: ["10",

2020-10-10 15:06:01 128

原创 【LeetCode】 20.有效的括号

题目描述:       给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false示例 4:输入: "([)]"

2020-09-24 21:26:57 163

原创 【数据结构】二叉树常用操作集锦

本文主要介绍下二叉树常用的一部分操作数据结构提到二叉树,离不开数据结构,数据结构中常用的数据结构就是链表和数组了。数据结构的基本操作对于任何数据结构,其基本操作无非遍历 + 访问,再具体一点就是:增删查改。数据结构存在的目的都是在不同的应用场景,尽可能高效地增删查改如何遍历 + 访问?我们仍然从最高层来看,各种数据结构的遍历 + 访问无非两种形式:线性的和非线性的。线性就是 for/while 迭代为代表,非线性就是递归为代表。再具体一步,无非以下几种框架:遍历数组遍历框架,典型的线性迭代

2020-08-31 14:06:35 234

原创 【postman】发送请求中添加cookie

实际场景中,我们在使用postman进行测试时,会有些接口需要传cookie,本文讲解使用postman发送请求时如何携带cookie步骤1:步骤二:添加cookie然后我们可以看到在请求的header中默认添加了cookie...

2020-08-28 15:53:42 12375

原创 【工具类】统一处理异常@ExceptionHandler

针对http请求的方式,我们统一对异常处理,即返回各种异常对应的code和message信息,不返回多余的信息统一处理异常针对Http接口请求的方式,统一封装异常,返回异常信息import com.qudian.universe.scm.base.exception.BizRuntimeException;import com.qudian.universe.scm.base.exception.UnauthorizedException;import com.qudian.universe.sc

2020-08-26 18:32:40 373

原创 【LeetCode】树的深度(104、111)

树的最小深度题目描述1:给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度 2.题目链接:二叉树的最小深度树的最大深度题目描述:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子

2020-08-25 16:58:11 128

原创 【IDEA】开发高效率插件

推荐一些IDEA高效率的插件,网上别人推荐的插件有一些感觉不是很必要,整理一下自己感觉不错的插件,不喜勿喷1、lombook这个插件就不必在说了,开发都懂的,小白也都听说过这个插件2、Alibaba Java Coding Guidelines阿里编码规约扫描3、CamelCaseCamelCasePlugin是一款可以快速进行格式转换的工具,较常用到的是大小写转换、驼峰式转换等。MAC下快捷键:⌥ + ⇧ + U4、CodeGlanceCodeGlance是一款代码编辑区缩略图插件,可以

2020-08-21 10:29:25 214

原创 【LeetCode】面试题 08.05.递归乘法

题目描述:递归乘法。 写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。示例1:输入:A = 1, B = 10输出:10示例2:输入:A = 3, B = 4输出:12题目链接:递归乘法Java题解:题解1:投机取巧法乘法的本质上是累加,将乘法转化为加法public class RecursionMutiply { public static int multiply(int A, int B) { if(

2020-08-20 15:26:01 359

原创 【Leetcode Editor】上班刷题插件

安利一款IDEA的插件,上班摸鱼属实方便,表面上我在干活,实际上我在刷算法题。在IDEA中在线刷题,Leetcode Editor插件1、插件安装安装后对IDEA进行重启2、安装后使用插件安装后进行插件配置LoginName:用户名Password:用户密码Code Type:代码语言类型(默认java,能使用IDEA的应该也只有JAVA了)tempfilepath:对应本地项目的java目录地址LevelColour:题目难以程度对应的颜色表示,可点击Easy、Medium、Hard

2020-08-14 09:32:05 1384 1

原创 【SpringBoot】阿里云消息队列RcoketMQ消费者代码示例

项目中使用到了mq,使用的是阿里云消息队列,作为消费者进行消费,记录下相关的代码。阿里云消息队列maven依赖 <mq.version>1.8.4.Final</mq.version> <dependency> <groupId>com.aliyun.openservices</groupId> <artifactId>ons-client

2020-08-13 10:08:12 617

原创 【IDEA插件】http接口插件EasyApi、RestfulToolkit

推荐一款方便、实用的IDEA插件EasyApi在我们开发http请求接口时,开发完成需要进行本地自测,在postman中一个一个输入接口地址,在输入请求参数,尤其是在请求参数较多的情况下,很费劲,尤其是post请求还需要json格式的数据,此时该插件的效果就体现出来了,可以将请求地址以及请求参数导出至postman**EasyApi插件**博主是基于mac下的IDEA开发的1、安装插件具体安装方法就不在介绍了,安装后为了使插件生效,别忘了对IDEA进行重启哦2、然后进行导出,找到我们需要导

2020-07-31 10:59:54 9582

原创 【ThreadLocal+拦截器】获取上下文信息

背景:在后台开发中,相关的接口需要获取用户登录的手机号识别用户的身份,目前用户的手机号存储在前端上送的cookie中,想要获取用户手机号,目前存在两种思路:思路一:每个接口中前端都上送手机号,但是这种方法,前端开发者不喜欢这样做,每个接口都存在该字段,前端的想法会是将该字段放在header中,每次请求中header中都存在手机号字段。思路二:后端从cookie中获取手机号。以上两种方法,后端都需要封装一个统一的方法来获取用户手机号,如果一个接口写一个获取登录手机号的方法,代码冗余量很大。因此结合Thr

2020-07-29 20:51:30 1103

原创 【Apollo】配置中心数据改动日志

该方法记录了Apollo数据中心改动的日志,具体Apollo配置中心的搭建请参考网上步骤,本人没有搭建过,不是很清楚。Java代码:@Configuration@Slf4jpublic class LogApolloConfig { @ApolloConfig private Config config; @ApolloConfigChangeListener private void configChangeListener(ConfigChangeEvent

2020-07-28 14:21:31 694

原创 【剑指offer】和为S的连续正数序列--Java实现

题目链接:和为S的连续正数序列题目描述:输入一个正数s,打印出所有和为s的连续正数序列(至少含有两个数)。例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以结果打印出3个连续序列1~5、4~6和7~8。输入示例:15由于1+2+3+4+5=4+5+6=7+8=15,所以打印出三个连续序列:1,2,3,4,5;4,5,6;7,8输出示例:1,2,3,4,5;4,5,6;7,8结题思路:连续序列,可以与数学方面的等差数列相结合,输入示例等于等差序列求和的值,转换为求取对应的等差序

2020-07-23 14:44:09 152

原创 【剑指offer】用两个栈实现队列--java

题目链接: 使用两个栈实现队列题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。实现思路:两个栈,命名为Stack1和Stack2,队列Quene其中队列Quene在入队操作时,将所需要的入队元素在Stack1中进行入栈;在出队操作时,需要将Stack1栈中的栈顶元素进行依次出栈,并入栈到Stack2中,队列弹出队时,将Stack2栈中的栈顶元素进行出栈java代码实现:public class AchieveQuene { static

2020-07-20 09:29:37 101

原创 【剑指offer】从尾到头打印链表

题目链接:https://www.nowcoder.com/practice/d0267f7f55b3412ba93bd35cfa8e8035?tpId=13&tags=&title=&diffculty=0&judgeStatus=0&rp=1&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-ranking题目描述:输入一个链表,按链表值从尾到头的顺序返回

2020-07-16 21:05:54 80

原创 【剑指offer】二维数组的查找

题目链接:https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e?tpId=13&tags=&title=&diffculty=0&judgeStatus=0&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking题目描述:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左

2020-07-16 20:51:20 116

原创 【LeetCode】1、两数之和--java实现

题目链接:https://leetcode-cn.com/problems/two-sum/思路:通过hashmap解决,两数中的一个数(数值1)在hashmap存在,目标值-数值1中在hashmap中同样存在时,即符合要求。hashmap提供了containsKey方法,我们可以将key作为目标值,value作为对应目标值在数组中的下标java代码如下: private static int[] getTwoSum(int[] num, int target) { Hash

2020-07-16 17:44:52 175

原创 【java生成Token】

引入maven依赖: <dependency> <groupId>com.auth0</groupId> <artifactId>java-jwt</artifactId> <version>${jwt.version}</version> </dependency>

2020-06-19 21:25:26 491

原创 【参数校验参考】参数校验

http请求时,对参数进行校验,以post请求为例,直接上代码:先来一个自定义注解:import javax.validation.Constraint;import javax.validation.Payload;import java.lang.annotation.*;/** * 自定义validation注册校验所传入内容必须在list中 */@Target({ElementType.METHOD, ElementType.FIELD, ElementType.CONSTRUCT

2020-06-11 17:25:30 462

原创 【Json工具类】json数据格式转换

在开发中,常用到json数据的转换,将json格式的字符串与java对象之间的转换,工具类如下:import com.fasterxml.jackson.annotation.JsonInclude;import com.fasterxml.jackson.core.type.TypeReference;import com.fasterxml.jackson.databind.DeserializationFeature;import com.fasterxml.jackson.databind.

2020-06-01 16:38:44 1120

原创 mybatis中PageHelper使用实例

官方文档介绍pageHelper官方文档代码使用示例:代码涉及依赖: <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artif...

2020-04-17 16:15:30 911

原创 【Optional】Java1.8新特性

Java 8 引入的一个很有趣的特性是 Optional 类。Optional 类主要解决的问题是臭名昭著的空指针异常(NullPointerException)。合理使用Optional可以很好避免 NullPointerException加入存在如下对象:@Datapublic class Competition { private String name; pr...

2020-04-05 18:58:05 159

原创 【IDEA】开发效率插件Lombok、GenerateAllSetter

在创建对象实体类时,是不是还在为set和get方法烦恼? 虽然可以通过快捷键生成get和set方法,但是如果对象实体类中的属性比较多时,加上set和get方法,代码会显的很长,lombook插件可以帮我们进行简化代码。lombok 提供了简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 java 代码。通过使用对应的注解,可以在编译源码的时候生成对应的方法,所以不会影响任何运行效率。...

2020-03-23 18:15:04 1995

原创 【Springboot】注解读取配置文件自定义配置信息

springboot项目的配置文件信息一般放在application.yml(也有命名application.properties)文件中,当项目启动的时候,我们可以只修改配置文件中的配置,而不修改代码。如果不在配置文件中配置信息,虽然也可以实现功能,但是容易出现问题。例如:跨系统交互时,另外一个系统(系统A)的域名或者端口发生变化,我们需要在自己的项目中对其地址信息进行修改。如果不在配置文件中...

2020-03-06 16:23:10 3031

CSS图标样式

引入CSS文件,为HTML按钮添加样式,涉及到编辑,添加、删除等图标

2018-08-17

空空如也

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

TA关注的人

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