![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 65
__WanG
这个作者很懒,什么都没留下…
展开
-
mybatis xml 中调用java 方法
xml 中调用java 方法并传递参数原创 2022-07-19 13:25:18 · 1371 阅读 · 2 评论 -
3步 引入 swagger2 生成接口文档
添加maven配置pom.xml文件中添加如下配置后reimport一下 <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>swagger-bootstrap-ui</artifactId> <version>1.9.6</version> &原创 2022-04-20 15:00:12 · 640 阅读 · 0 评论 -
mybatis-plus 之 自动映射字段(typeHandler)的注意点
有时间数据库存的字段是是一个文档型数据(例如: 直接在某个字段存了个json数据, 或者存了个list的数据), 存取的时候手动做一次转型太麻烦了, 而且手动转型后数据库存储的内容会经过转义所以为了更加优雅的和数据库交互, 我们可以使用mybatis-plus 的 typeHandler 进行自动的类型映射使用方式实体类注解在实体类的字段上加上注解 @TableField @TableField(value = "数据库字段名", typeHandler = ListToStringHa.原创 2022-04-19 18:48:24 · 4568 阅读 · 1 评论 -
redis 过期消息订阅实现(java方向)
基于redis消息过期通知来实现一些定时任务(定时删除过期订单, 定时回调等)本文主要讲述在java语言中怎么使用该特性环境:jdk: 11.0.7.springboot: 2.2.8.RELEASEjedis: 3.1.0redis version: 6.0.5前提redis版本2.8以上修改redis启动配置开启redis消息通知功能会增加一定的cpu开销方法1: 修改conf文件编辑/etc/redis/redis.conf文件,添加或启用以下内容(key过.原创 2021-01-20 23:08:18 · 1151 阅读 · 2 评论 -
java 使用ftp文件服务
java 使用ftp文件服务本文讲述如何在java做工使用ftp文件服务, 进行文件上传,下载等操作以及如何解决中文乱码, 文件损坏等问题依赖 <!-- https://mvnrepository.com/artifact/commons-net/commons-net --><dependency> <groupId>commons-net</groupId> <artifactId>commons-net</arti原创 2020-09-05 15:45:44 · 235 阅读 · 0 评论 -
mybatis 自动映射对象为json
一般我们关系型数据库存储的字段都是从不同单一维度描述这个对象, 而随着业务的复杂和数据维度的增加, 我们有时候需要直接将一些简单维度(只作展示, 不涉及条件查询以及基本不修改)的集合封装成json格式放入一个大字段中(避免联合查询的额外扫表的开销)typeHandler的方式做对象映射本文只介绍简单的使用方式, 具体原理和详细解析请跳转以下链接参考资料https://www.codenong.com/js92a4cfdcc700/https://juejin.im/post/68449039.原创 2020-08-23 22:15:33 · 5280 阅读 · 0 评论 -
java 自定义切面增强(基于自定义注解aop)
写代码时会遇到一些有些重复机械的工作, 这个时候就可以运用切面技术来帮我们节约时间本文介绍如何使用自定义注解增强方法, 实现自动完成重复的工作(还可以通过直接扫描包路径增强所有方法, 或者根据方法名, 入参等定向增强, 各种玩法)本次示例中的代码目的是为了无效化我的缓存1. 自定义一个注解@Target(value = { ElementType.TYPE, ElementType.METHOD })@Retention(RetentionPolicy.RUNTIME)public @int.原创 2020-08-22 21:20:34 · 1212 阅读 · 0 评论 -
java sql 配合mybatis性能分析工具
原本一直都是用的mybatis-plus的sql性能分析器的但是我把mybatis-plus版本升级(3.3.2)后发现不能用了(据说是3.2.x之后的版本都移除掉了开发的时候有个sql输出确实能够带来不小的帮助, 于是开始寻找解决方案我升级mybatis-plus的jar包是因为提示mybatis 3.5.1有个使用的API将会在未来移除, 我看了下我的这个mybatis版本是mybatis-plus引入的, 于是直接将mybatis-plus升级方案一: 继续使用mybatis-plus分析.原创 2020-07-17 20:44:50 · 470 阅读 · 0 评论 -
spring boot(java) 中 解决 # mysql 时间错乱
spring boot(java) 中 解决 # mysql 时间错乱由于我们是在东8区, 大部分框架或者组件都是默认0时区导致有时候时间会错乱解决java插入数据库时间错乱jdbc连接配置上加上&serverTimezone=GMT%2B8这个修改只是在插入## 示例spring.datasource.url=jdbc:mysql://x.x.x.x:3306/user?useUnicode=true&characterEncoding=utf-8&useSS原创 2020-07-16 15:58:33 · 408 阅读 · 0 评论 -
Spring boot优雅配置文件变量注入
Spring boot优雅配置文件变量注入参数说明@PropertySource: 配置扫描的文件地址classpath: 默认为resource目录@ConfigurationProperties: 批量注入配置字段prefix 配置需要注入的配置参数前缀ignoreUnknownFields 是否忽略未知字段@Configuration 标记这个类让Spring扫描到java代码package com.smart.life.userserver.common;imp原创 2020-06-11 23:05:01 · 723 阅读 · 0 评论 -
AutoLoadCache 使用以及规范
简介AutoLoadCache 是基于AOP+Annotation等技术实现的高效的缓存管理解决方案,实现缓存与业务逻辑的解耦,并增加异步刷新及“拿来主义机制”,以适应高并发环境下的使用。使用AOP + Annotation 来解决这个问题,同时使用自动加载机制 来实现数据“常驻内存”—> 跳转官方git如何使用本文的自动缓存使用的redis作为缓存技术, 请确保自己系统中的redis能够正常使用引入jar包<!-- autoload-cache 依赖 --><原创 2020-06-09 23:25:38 · 913 阅读 · 0 评论 -
java灵活的接口日志打印
java灵活的接口日志打印日常开发接口时候经常需要和别的开发人员对接, 加上一些必要的日志就显得非常重要了, 方便定位到底是接口返回的数据有问题还是别的地方有问题本文介绍通过aop自定义一个接口日志增强的逻辑, 在需要的地方加上注解即可, 方便快捷注解类首先我们需要自定义一个注解类, 类名自己定(本文用的ResponseLog)需要打日志的方法前加上@ResponseLog即可/**...原创 2020-03-07 19:04:07 · 2104 阅读 · 0 评论 -
maven 打包动态环境变量(包括启动脚本)
maven 打包 动态启动脚本本文介绍如何通过maven的环境变量动态打包, 并动态改变启动脚本中的环境参数前提maven 打包, 配合 assembly 脚本maven环境变量(知道这个是怎么回事的直接跳过这部分即可)设置在 pom.xml 文件中加入如下的配置<profiles> <profile> <!-- 开发环境 -...原创 2020-03-03 16:32:07 · 2318 阅读 · 0 评论 -
如何使用 JUnit 自动化测试mvc接口(model)
如何使用 JUnit 自动化测试mvc接口(model)一般正常的 restful 接口我们可以很方便的写出测试用例, 但是遇到有 Model 的 Controller 方法就比较难过了, 我之前找了很多方法(方向是如何构造Model), 但是都没找到解决方案, 知道我偶然发现 MockMvc 这个东西, 于是就有了解决方案, 本文就讲解如何使用 Junit 进行mvc 接口的测试JUnit...原创 2019-10-12 11:48:33 · 778 阅读 · 0 评论 -
解决问题: 导出pdf错误-java.io.IOException: SAX2 driver class org.apache.xerces.parsers.SAXParser not found
导出pdf错误-java.io.IOException: SAX2 driver class org.apache.xerces.parsers.SAXParser not found使用itext导出pdf(非模板方式), 其中将svg转png格式时候报java.io.IOException: SAX2 driver class org.apache.xerces.parsers.SAXPar...原创 2018-11-27 17:25:15 · 2780 阅读 · 2 评论 -
解决 pageHelper 分页失效以及如何配置
我在使用pageHelper的系统中加入mybatis-plus, 结果所有分页都失效了原因我这边的失效原因初步定为是因为mybatis-plus的自动配置和pageHelper的自动配置冲突了, 导致pageHelper的自动配置失效(最终是加上个配置类解决的)解决方案新建一个配置类/** * @Author: WanG * @Date: 2019-05-13 18:42 *...原创 2019-05-13 18:59:04 · 6503 阅读 · 0 评论 -
页面地址链接拼接语法
页面地址链接拼接语法举例1. /xxx拼接2. xxx拼接3. /aaa/bb/c/xxx拼接4. //xxxx 两个以上的//总结举例当前网址: www.wang.com/aaa/bb/c域名: www.wang.com1. /xxx拼接<a href="/ddd?name=wang">跳转后地址为 ===> www.wang.com/ddd?name=wang...原创 2019-06-18 12:00:09 · 3757 阅读 · 0 评论 -
Freemarker 3种循环模式
Freemarker 3种循环模式1. map循环2. list循环3. 自定义次数循环)1. map循环举例:<#if vo.urlMap??> <#list vo.urlMap?keys as key> <li> <a href="${vo.urlMap[key]!''}}">${key!''}</a> &l...原创 2019-06-26 16:15:42 · 44953 阅读 · 3 评论 -
循环list移除元素-java.lang.UnsupportedOperationException
循环list移除元素-java.lang.UnsupportedOperationException常规for循环(根据list下标删除)foreach循环(根据元素对象删除)迭代器循环删除元素异常分析与解决异常定位解决方案场景:在一个codeList列表中移除指定的元素常规for循环(根据list下标删除)用for循环, 根据循环cursor来移除在List指定位置的元素priva...原创 2019-07-12 11:46:58 · 1352 阅读 · 3 评论 -
mybatis-plus 常见的绑定错误解决方案
mybatis-plus 常见的绑定错误解决方案比较长见到的几个绑定错误:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)Result Maps collection already contains value for xxxorg.apache.ibatis.bindi...原创 2019-08-09 15:11:17 · 10126 阅读 · 12 评论 -
解决 Parameter ‘0‘ not found. Available parameters are [arg1, arg0, param1, param2]
解决 Parameter ‘0’ not found. Available parameters are [arg1, arg0, param1, param2]文章目录解决 Parameter '0' not found. Available parameters are [arg1, arg0, param1, param2]解决方案修改前:修改后:这个问题比较尴尬, 是我在将一个项目...原创 2019-08-09 16:16:11 · 6818 阅读 · 0 评论 -
java 深拷贝与浅拷贝的一些思考
概念介绍文章目录概念介绍什么是浅拷贝什么是深拷贝举例实现方式使用BeanUtils实现Cloneable接口使用CloneUtils特殊的map类型通过序列化什么是浅拷贝拷贝就是将数据复制 对象a 到另一个 对象b , 但是遇到包装类型的数据时, 浅拷贝 只是将对象的引用复制了, 并没有新建一个对象, 所以导致修改a对象中x的值会导致b对象的x的值也发生改变,> 有时候为了节省内存开销...原创 2019-08-21 11:32:35 · 280 阅读 · 0 评论 -
通过java调用系统中的wkhtmltopdf
通过java调用系统中的wkhtmltopdf文章目录通过java调用系统中的wkhtmltopdf注意事项源码分享希望达到脱离浏览器将页面导成 pdf 的效果, 于是利用 wkhtmltopdf 的将 url 转 pdf 的能力实现利用 java 代码触发 wkhtmltopdf注意事项有几点东西要注意一下中文字体问题, 大多数 linux 系统是默认不带中文字体的, 需要自己手动...原创 2019-08-22 16:31:27 · 3305 阅读 · 2 评论 -
BeanUtils.copyProperties 和 fastjson 性能对比
BeanUtils.copyProperties 和 fastjson 性能对比声明测试方法非严格方式, 测试结果以及结论仅供参考!测试方法非严格方式, 测试结果以及结论仅供参考!测试方法非严格方式, 测试结果以及结论仅供参考!测试环境cpu: i5-8400(6c 6t 3.8主频)内存: 16*2(2666频率)系统: 10.14.6 (18G95)测试样本用jso...原创 2019-10-08 17:26:06 · 3498 阅读 · 0 评论 -
steam 循环 和 foreach 循环简单对比
steam 循环 和 foreach 循环简单对比说明:测试结果只表明再这种场景下使用普通的 foreach 更合理, 并不是 steam 流比较逊色, steam 默认使用多线程实现了, 理论上有更高的天花板, 后续有时间再详解下 steam 相关的东西运行环境cpu: i5-8400(6c 6t 3.8主频)内存: 16G(2666频率)*2系统: Mac OS 10.14....原创 2019-10-11 16:52:12 · 7197 阅读 · 0 评论 -
java使用google的jar包生成二维码图片
使用google的jar包生成二维码图片使用场景引入jar包使用方式源码使用场景应对一些需要生成二维码的地方,例如:二维码超链接二维码支付等场景引入jar包<!-- https://mvnrepository.com/artifact/com.google.zxing/core --><dependency> <groupId>com....原创 2019-04-19 11:52:01 · 1231 阅读 · 0 评论 -
spring mvc 使用@notNull 注解验证请求参数
spring mvc 使用@notNull 注解验证请求参数使用方式@NotNull@Min@valid验证生效进阶注解接口校验逻辑实现自定义注解使用处理请求时, 有些参数是必传或者必须遵循某些规则的, 如果针对每个请求都写一遍验证的话相当繁琐, 而且代码维护起来也麻烦, 正好框架将参数校验的功能抽象处理啊了, 我们可以利用这个完成80%的校验场景使用方式使用起来很简单, 只需要加上几...原创 2019-04-09 17:03:04 · 20431 阅读 · 5 评论 -
logback.xml文件详解, 个性化日志输出
logback 文件详解, 个性化日志输出日志简介日志级别基本日志输出数据库操作日志输出日志按容量分片日志按日期分片日志简介日志能够方便我们感知服务运行情况, 好的日志输出对于开发和调试有很大的帮助, 但是日志也不是越多越好, 日志太多会干扰我们的实现, 而且会对性能有些许影响(主要是会占用io性能, 特别是成片成片打印出来的日志)日志级别日志等级一般分为5个等级(依次递增)debu...原创 2019-01-11 09:56:00 · 1660 阅读 · 0 评论 -
详解-sdk解释和定义以及开发要点
sdk解释,定义,开发要点关于SDK的解释什么是SDK什么是`Library`什么是`Framework`什么是`API`四者之间的关联架构中的一些核心点.浅谈`SDK`实现目标简洁易用常见的`SDK`初始化如下:一个优良的API`简单可靠`稳定高效SDK整体架构设计模块化开发`组件`化开发`组件`的概念那为什么要组件化?`插件化`开发为什么需要插件化SDK初始化云更新控制安全SDK自身安全核心逻...转载 2018-12-17 19:52:54 · 11420 阅读 · 1 评论 -
java Vector 类源码简要分析
vector 继承关系图本分析源码取自jdk1.8, 不同高版本的jdk中实现或许会存在差异vector 的3个属性字段在vector中间有几个计数的变量elementCount: 表示里面元素的个数elementData: 是保存元素的数组。默认无参构造器长度是10capacityIncrement: 增长步进, 就是每次扩容的时候扩大多少, 如果是≤0, 则每次扩容都是原...原创 2018-12-10 10:03:28 · 211 阅读 · 0 评论 -
[leetcode 算法练习] 寻找包含所有最深的结点的子树
题目给定一个根为 root 的二叉树,每个结点的深度是它到根的最短距离。如果一个结点在整个树的任意结点之间具有最大的深度,则该结点是最深的。一个结点的子树是该结点加上它的所有后代的集合。返回能满足“以该结点为根的子树中包含所有最深的结点”这一条件的具有最大深度的结点。提示:树中结点的数量介于 1 和 500 之间。每个结点的值都是独一无二的。示例:解题思路最终要的结果是返...原创 2018-12-14 18:05:47 · 546 阅读 · 0 评论 -
mongdb查询指定字段, 在java中通过mongoTemplate怎么处理
mongdb查询指定字段, 在java中通过mongoTemplate怎么处理mongodb命令行查询查询语句讲解java mongoTemplate 中的处理方式为什么要指定字段对象解释值说明:例如: and条件例如: 单个查询条件有时候不需要返回全部的字段, 只需要关注几个想要的字段, 通过查询条件可以限制返回的字段mongodb命令行查询直接构造mongodb查询语句, 查询文档数...原创 2018-12-14 15:54:48 · 3018 阅读 · 8 评论 -
[容器化]简单实用如何用docker运行一个java程序
文章目录准备好docker环境准备好jvm运行环境的容器准备好java应用程序制作java应用程序镜像1. 准备好`docker file`构建命令2. 使用命令制作镜像运行镜像启动命令日志命令准备好docker环境电脑安装docker, 可以参考这里的准备好jvm运行环境的容器需要制作一个包含jvm运行环境的镜像不想弄的话可以直接用我的这个docker pull 520130022/...原创 2018-12-01 14:28:17 · 2512 阅读 · 0 评论 -
struct2 框架 导出excel, 以及文件名中文乱码解决
struct2 框架 导出excel, 以及文件名中文乱码解决后端逻辑xml配置增加一个action用于导出pdf其中type需要配置成stream<action name="download" class="com.xxx" method="download"> <result name="success" type="stream">原创 2018-11-21 23:38:48 · 604 阅读 · 0 评论 -
[转载] 一篇简明易懂的spring cloud 各组件介绍
本文来源:石杉的架构笔记(ID:shishan100) 概述毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓。因此本文将通过大量的手绘图,给大家谈谈Spring Cloud微服务架构的底层原理。 实际上,Spring Clo...转载 2018-11-21 10:40:54 · 148 阅读 · 0 评论 -
idea 中怎么快速将选中内容用引号或者大括号包围?
idea 中怎么快速将选中内容用引号或者大括号包围?用 vs code 的时候 选中内容,然后按引号,大括号,中括号等都会直接用响应符号将内容包起来,但是 idea 上就直接用相应的符号替换了选中内容,很不方便,有什么方法可以设置吗?1. 打开perfermanceMac 下为 command + ,windows 下为 ctrl + shift + s2. 搜索 Surround...原创 2018-11-14 17:37:47 · 11156 阅读 · 0 评论 -
Spring Cloud微服务架构简介
一篇写的不错的spring cloud 介绍的纹章转载自: https://mp.weixin.qq.com/s/mOk0KuEWQUiugyRA3-FXwg目录一、业务场景介绍二、Spring Cloud核心组件:Eureka三、Spring Cloud核心组件:Feign四、Spring Cloud核心组件:Ribbon五、Spring Cloud核心组件:Hyst...转载 2018-11-12 15:12:45 · 379 阅读 · 0 评论 -
logback 日志输出格式设置
logback 日志输出格式设置部分标签解释内置转换器部分特殊字符串解释更多内置特殊字符如何自定义输出样式字符颜色定义内置的一些样式代码示例使用内置模板使用自定义模板部分标签解释withJansi: 是否配合jansi使用filter: 日志过滤器layout: 布局, 配合内置模板使用pattern: 日志模板, 有内置的日志模板可以直接使用, 例如: ${FILE_LOG_PATT...原创 2019-01-11 10:15:18 · 20023 阅读 · 0 评论 -
logback 打印数据库相关操作日志
logback 打印数据库相关操作日志名词解释效果展示sql日志输出前sql日志输出后使用说明示例代码名词解释logger: 日志对象, 里面放日志等级, 日志输出扫描包, 日志输出器等appender: 输出器, 定义输出格式, 输出地址等信息appender-ref: 应用的输出器pattern: 日志模板, 有内置的日志模板可以直接使用, 例如: ${FILE_LOG_PATTE...原创 2019-01-11 11:13:17 · 1343 阅读 · 0 评论 -
@Transactional 注意事项
通一个类调用@Transactional方法, 事务是不生效的(需要类外部的方法调用), 除非事务是延续下来的原创 2019-03-26 14:43:56 · 419 阅读 · 0 评论