- 博客(28)
- 收藏
- 关注
原创 spring url匹配工具类----AntPathMatcher
在gateway进行授权认证时,有些请求url需要过滤掉,针对带/service/{id}/user-info这种带操作符的请求,需要特殊处理----AntPathMatcher就上场啦具体使用场景:1.登录授权验证:过滤掉登录请求,一些资源获取请求2.请求接口日志打印:过滤掉文件上传和下载的一些请求,requestBody里的文件流会被异常修改具体代码:请求body的二次写入@Componentpublic class CachePostBodyFilter implements Globa
2020-11-23 15:08:12
1401
原创 web请求,excel导入与导出
1.使用插件阿里提供的easyexcel 官网链接:https://github.com/alibaba/easyexcel2.文件名称乱码问题解决3.这里的示例–同步上传和下载,阿里的插件也支持异步写入4.最重要的是使用简单,只需一到两行代码即可依赖: <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId>
2020-11-23 14:55:56
400
原创 java---请求body实体校验和异常抛出处理(异常处理针对servert容器,webFlux 另一篇文章描述)
本文主要解决问题:1.实体参数校验通过框架层面解决,灵活使用javax.validation2.针对参数格式异常,统一抛出ParamException,框架层面拦截异常,解析成code和message返回给前端参数校验:1.controller入参前加上@Validated or @Valid2.参数如果表单嵌套 参数前加上@Validcontroller: @ApiOperation("用户注册") @PostMapping("/user-service/users/user"
2020-11-11 15:10:45
1154
2
原创 java基础----Optional,简化代码
java基础----Optional,简化代码1.判断获取的对象是否为空,空则抛出异常原代码 UserInfoPo userInfoPo = userInfoMapper.queryUserInfo(userId); if (null == userInfoPo ) { throw new PlatformException(ErrorCode.USER_NOT_EXIST); }简化后的代码 UserInfoPo userInf
2020-10-29 16:33:04
176
原创 java---自动api文档生成Yapi
java---自动api文档生成Yapi开发过程中,接口文档是前后端,测试交互的依据,文档更新的及时性和准确性很重要。word文档缺点:手动编写,出错性很高文档可读性差,考验编写者的耐心无法在线调试及时性差swwager文档缺点:文档可读性差针对需要带授权token的请求,无法在线调试无法导入和导出api文档测试和开发无法在文档上沟通Yapi解决以上所有问题,yapi可以支持java apidoc ,兼容swwager,只需要idea安装对应插件,就可以实现右键点击uploa
2020-10-29 16:29:20
3666
转载 git基本命令解释
在版本库中标记为 “index” 的区域是暂存区(stage, index),标记为 “master” 的是 master 分支所代表的目录树。 objects 标识的区域为 Git 的对象库,实际位于 “.git/objects” 目录下,里面包含了创建的各种对象及内容。 git基本命令 ①git add * index区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到ob
2017-02-07 17:50:18
182
原创 经典排序算法
本文参照:http://www.cnblogs.com/kkun/archive/2011/11/23/2260280.html 1.冒泡排序 临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,这样一趟过去后,最大或最小的数字被交换到了最后一位,然后再从头开始进行两两比较交换,直到倒数第二位时结束。/** * 冒泡排序 * @param a */
2016-06-14 14:39:16
203
原创 web工程运行过程
在启动Web项目时,容器(比如Tomcat)会读web.xml配置文件中的两个节点和。 接着容器会创建一个ServletContext(上下文),应用范围内即整个WEB项目都能使用这个上下文。 接着容器会将读取到转化为键值对,并交给ServletContext。 容器创建中的类实例,即创建监听(备注:listener定义的
2016-06-14 13:33:04
1104
转载 java设计模式之策略模式
转自: http://blog.csdn.net/houqd2012/article/details/12585093 一、策略模式的定义 —— 定义了一组算法,将每个算法包装起来,并且使它们之间可以互换 —— 策略模式使这些算法在客户端调用它们的时候能够相互不影响的变化,改变不同算法的实现方式不影响客户端的使用,即策略模式让算法独立于使用它的客户端而独立变化。 策略模式在Ja
2016-04-19 16:24:20
260
原创 数据导出-excel,excel压缩包
①action层调用 // 设置返回 LinkedHashMap<String,String> excelHead = new LinkedHashMap<String, String>(); excelHead.put("createTime", "转入时间"); excelHead.put("loginName", "用户名");
2016-03-22 11:09:00
348
原创 文件预览
①JSP页面<div class="aa"><img src=${previewImageSrc}/></div>//${previewImageSrc},是访问路径 例如:/jxz-opr/viewFile?fileID=pl_17e184dfe63a46faae88ea254a99cd②action/** * 预览图片 * * @return * @t
2016-03-21 15:15:10
395
原创 富文本web编辑器--ueditor的使用
①导入js文件 <script type="text/javascript" charset="utf-8" src="<%=contextPath%>/ueditor/ueditor.config.js"> </script> <script type="text/javascript" charset="utf-8" src="<%=contextPath%>/ueditor/ue
2016-03-21 15:00:15
753
原创 excel文件导入
流程: ①点击导入按钮,导入到页面上,文件上传到服务器临时文件夹上。 ②点击保存按钮时,从服务器临时文件上读取文件,解析文件保存到数据库。 (在数据量大的时候,不适合从前端传输大量的数据到后台,速度比较慢) java文件action层public class InAction extends JsonAction { DateFormat sdf = new SimpleDateFor
2016-02-29 15:32:26
552
原创 json、对象、字符串互相转换
①list<map<String,Object>>转换为list<JsonObject>List<Map<String,Object>> list=ExportExcelUtil.importCsv(fileName, keyList);List<JSONObject> cc= JSONArray.fromObject(list);例: {availPlatform=WEB, amount=8
2016-02-29 15:04:51
304
原创 搜索框输入特殊字符后台的简单处理方式
①后台处理前台的参数public class SQLUtils { /** * 前置匹配 * * @param value * @return */ public static String getLikeStart(String value) { if (!MobileUtil.isEmpty(value)) {
2016-02-16 17:32:29
1897
原创 对象排序,实现comparable接口
定义: Comparable & Comparator 都是用来实现集合中的排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法。Comparable 是一个对象本身就已经支持自比较所需要实现的接口(如 String
2016-02-02 17:41:44
3551
转载 spring的事务机制
面分别详细讲解,事务的四种属性,仅供诸位学习参考:Spring在TransactionDefinition接口中定义这些属性,以供PlatfromTransactionManager使用, PlatfromTransactionManager是spring事务管理的核心接口。 public interface TransactionDefinition { int getPropagat
2015-12-22 14:36:31
347
转载 struts2文件上传下载原理
文件上传:Struts2在进行文件上传操作时,实际上是通过两个步骤实现的: 1) 首先将客户端上传的文件保存到struts.multipart.saveDir键所指定的目录中,如果该键所对应的目录不存在,那么就保存到javax.servlet.context.tempdir环境变量所指定的目录中。 2) Action中所定义的File类型的成员变量file实际上指向的是临时目录中的临时文件,然后
2015-11-27 10:18:21
1533
原创 字符串的一些判断
* 判断为标点符号(去除乱码、字母、数字、中文的其他所有) * * @param c * 字符 * @return 是否为标点符号 */ public static boolean isPunctuation(char c) { return haveMessyCode(String.valueOf(c
2015-11-18 13:12:19
484
原创 判断是否为空的一些方法
public class EmptyUtil { /** * 判断对象是否不为空 */ public static <T> boolean isNotEmpty(Object value) { if (null != value) { if (EmptyUtil.isEmpty(value.toString())) {
2015-11-18 11:00:12
519
原创 常用的sql语句(3)
①改变表结构ALTER TABLE p2p_tree_log ADD OPERATE_TYPE CHAR (1) COMMENT '操作类型(1:触发操作,2:参与操作)';ALTER TABLE p2p_tree_log DROP COLUMN operate_type;
2015-11-12 15:35:38
603
原创 sql索引
①索创建引,在A表的LastName列上创建索引CREATE INDEX AINDEX ON A (LastName) CREATE INDEX AIndexON A(LastName, FirstName)②如果您希望以降序索引某个列中的值,您可以在列名称之后添加保留字 DESC:CREATE INDEX AINDEX ON A (LastName desc) ③创建唯一索引,唯一的索引意
2015-10-29 16:12:09
286
原创 mysql一些函数常见的用法(left join、join、right join....)(2)
①sql之left join、right join、inner join的区别select * from A a left join B b on a.ID=b.CODE;select * from A a right join B b on a.ID=b.CODE;select * from A a inner join B b on a.ID=b.CODE;left join(左联接) 返回
2015-10-28 15:18:18
2343
原创 一些简单的数据结构的名词解释
线性表: 线性表是由n(n≥0)个相同类型的元素组成的有序集合。 栈: 线性表的一种特殊形式,是一种限定性数据结构,也就是在对线性表的操作加以限制后,形成的一种新的数据结构。是限定只在表尾进行插入和删除操作的线性表。允许插入和删除的一端称为栈顶,另一端称为栈底,不含任何数据元素的栈称为空栈。 队列: 将线性表的插入和删除操作分别限制在表的两端进行,和栈相反,队列是一种先进先出的
2015-10-28 13:44:01
3476
原创 mysql一些函数常见的用法(group by、order by、....)(1)
①查询某人某天的收益记录总和(列表显示),group by相当于excel的分组,后可以加上多个条件select ## from ## group by 某人,某天 ②查询最新日志,order by排序,limit 起始,数量select ## from ## order by 时间 desc limit 0,1③更新。。。
2015-10-27 14:35:57
1024
转载 java内存方面的问题
Java内存溢出与JVM堆设置java.lang.OutOfMemoryError: Java heap space 解释: JVM 堆的设置是指 java 程序运行过程中 JVM 可以调配使用的内存空间的设置。JVM 在启动的时候会自动设置 Heap size 的值,其初始空间(即-Xms)是物理内存的 1/64,最大空间(-Xmx)是物理内存的 1/4。可以利用 JVM 提供的-Xmn -
2015-10-27 13:52:45
317
转载 java内存机制
1.Java的内存机制 Java 把内存划分成两种:一种是栈内存,另一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,当在一段代码块定义一个变量时,Java 就在栈中为这个变量分配内存空间,当超过变量的作用域后(比如,在函数A中调用函数B,在函数B中定义变量a,变量a的作用域只是函数B,在函数B运行完以后,变量a会自动被销毁。分配给它的内存会被回收),Java
2015-10-27 13:42:27
292
原创 前台选择的日期格式是yyyy-MM-dd,数据库中是Timestamp,查不到结束日期当天的数据
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2015-10-27 11:14:55
2115
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人