Java
紫竹修
一个小小小小小小小小的码农。
展开
-
IDEA思维导图生成插件
一、场景说明在开发过程中开发人员在编程代码时或者在编程后,需要手动的去创建一个代码逻辑的思维导图进行说明代码的逻辑,在代码逻辑更改的时候,也需要同步去更新代码的逻辑思维导图,多做了一步维护思维导图的工作。这个插件就是能够通过IDEA插件,定义注解与指定格式的注释信息来获取到注解与注释中的内容,生成思维导图二、使用说明生成路径:会在生成后进行弹窗提示让你选择保存的思维导图位置的文件夹注解:@FlowChart(""):定义在起始的方法的上面,用于定义方法是要进行生成思维导图解析..原创 2022-05-30 22:55:26 · 2071 阅读 · 12 评论 -
java程序内存占用过高问题排查(一)
在线上出现内存占用过大,无法被GC回收,服务出现内存溢出等情况时我们需要对当前服务程序进行解刨(大概可以这么理解哈哈),看透这些内存中都是些什么东西。一、生成 内存快照 dump文件找到你需要生成快照的java程序PID,这里我以 6396 为例jmap -dump:format=b,file=user.dump 6396执行后会在当前cmd的运行目录中生成一个 user.dump的文件二、分析 dump 文件使用 JProfiler 打开这个文件,打开前需要将生成原创 2022-05-25 20:22:15 · 1456 阅读 · 0 评论 -
Java序列化对象成文件的效率对比
一、Kryo 写入文件:public static <T> boolean serializeFile(T obj,String path) { if(null != obj){ Output output=null; try { File outFile = new File(path); if(!outFile.getParentFile().exis.原创 2022-05-21 10:23:26 · 363 阅读 · 0 评论 -
如何将序列化的对象压缩到文件中
仅使用“GZIPOutputStream”进行数据压缩。FileOutputStream fos = new FileOutputStream("c:\\address.gz");GZIPOutputStream gz = new GZIPOutputStream(fos);ObjectOutputStream oos = new ObjectOutputStream(gz);GZIP示例在此示例中,您将创建一个“地址”对象,将其压缩并将其写入文件“c:\\ address.gz”...翻译 2022-05-20 21:14:21 · 158 阅读 · 0 评论 -
如何解析mybatis的xml文件获取所有delete语句
如何解析mybatis的xml文件获取所有delete语句背景:项目以前是用oracle数据库,所以sql中有人会用到很多特性函数和一下特性写法,要改造成适配(oracle、db2、mysql),其中有一种语法问题我遇到了所以写下来记录一下以后好找。需求:删除语句oracle和db2支持delete后面直接跟表名,比如:delete t_user where username=‘admin’,但是mysql不支持必须要加上from关键字。解决方案:1.比较笨的方法就是对所有的mybatis文转载 2022-03-23 20:43:35 · 537 阅读 · 0 评论 -
java 获取本机所有IP地址
import java.net.Inet6Address;import java.net.InetAddress;import java.net.NetworkInterface;import java.net.SocketException;import java.util.Enumeration;import java.util.HashMap;import java.util.LinkedList;import java.util.List;import java.util.Map;.原创 2021-11-04 23:00:10 · 459 阅读 · 0 评论 -
JAVA执行cmd命令(包含执行批处理文件)
如下是java执行cmd命令的代码,以作记录:内容包括执行单个cmd命令或者调用bat文件的方法;import java.io.BufferedReader;import java.io.InputStreamReader;/** * 执行windows的cmd命令工具类 * @author dufei * */public class CMDUtil { /** * 执行一个cmd命令 * @param cmdCommand cmd命令 * @return 命令执行转载 2021-01-14 18:11:30 · 583 阅读 · 1 评论 -
maven如何快速查找某个包哪里引入的
描述最近项目中遇到一个问题,有个jar包跟项目的中的代码冲突导致一些奇怪的异常,项目是maven项目。问题查找由maven官网可知道maven的Dependency plugin就有这个问题的解决方案filtering the dependency tree,如我们要查找netty-all的包从哪里导入的。mvn dependency:tree -Dincludes=io.netty:netty-allmaven filter语法格式[groupId]:[artifactId]:[原创 2020-07-22 15:33:56 · 5233 阅读 · 0 评论 -
解决全局的jackson日期转换和解析
解决全局的jackson日期转换和解析因为项目有些特殊,需要解析各种格式的日期类型转换,后来发现jackson在日期转换上没法满足需要。遂重写了com.fasterxml.jackson.databind.util.StdDateFormat和com.fasterxml.jackson.databind.DeserializationContext。我的版本是jackson-data...转载 2019-04-14 01:05:53 · 4265 阅读 · 0 评论 -
Spring Boot:定制HTTP消息转换器
在构建RESTful数据服务过程中,我们定义了controller、repositories,并用一些注解修饰它们,但是到现在为止我们还没执行过对象的转换——将java实体对象转换成HTTP的数据输出流。Spring Boot底层通过HttpMessageConverters依靠Jackson库将Java实体类输出为JSON格式。当有多个转换器可用时,根据消息对象类型和需要的内容类型选择最适合的转...转载 2019-04-14 00:40:25 · 290 阅读 · 0 评论 -
java8 lambda 统计list中对象的重复次数
List<Integer> list = new ArrayList() {{add(12);add(20);add(12);add(22);add(22);...原创 2019-03-23 17:16:26 · 10353 阅读 · 0 评论 -
领域模型中的实体类分为四种类型:VO、DTO、DO、PO
经常会接触到VO,DO,DTO的概念,本文从领域建模中的实体划分和项目中的实际应用情况两个角度,对这几个概念进行简析。得出的主要结论是:在项目应用中,VO对应于页面上需要显示的数据(表单),DO对应于数据库中存储的数据(数据表),DTO对应于除二者之外需要进行传递的数据。一、实体类百度百科中对于实体类的定义如下:实体类的主要职责是存储和管理系统内部的信息,它也可以有行为,甚至很复杂的行为,...转载 2019-03-01 09:49:36 · 1290 阅读 · 0 评论 -
java通过拦截器判断当前访问的设备是否是移动设备
拦截器从请求中提取信息判断访问的设备是否是手机。一.拦截器配置 <!-- 跳转手机 --> <mvc:interceptor> <!-- 需拦截的地址 --> <!-- 一级目录 --> <mvc:mapping path="/*" /> <mvc:mapping pat..原创 2018-04-13 16:14:41 · 1473 阅读 · 0 评论 -
解决Java new Date() 获取的时间不正确
一、使用TimeZone 设置时区System.out.println("原时间 " + new Date());TimeZone time = TimeZone.getTimeZone("ETC/GMT-8");TimeZone.setDefault(time);System.out.println("修改后时间 " + new Date());//显示Java能识别的系统中所有正确...原创 2018-06-01 08:59:09 · 48502 阅读 · 1 评论 -
Linux 下安装JDK1.8
一、安装环境操作系统:Ubuntu 5.4.0-6JDK版本:1.8.0_11工具:Xshell6、Xftp6说明:本文是通过Xshell5工具远程连接Linux操作,如果是直接在Linux可视化界面操作那就更方便了,原理一样。二、安装步骤第一步:下载安装包下载Linux环境下的jdk1.8,请去(官网)中下载jdk的安装文件;由于我的Linux是64位的,因此我下载jdk-8u11-linux-...原创 2018-06-08 15:01:50 · 748 阅读 · 0 评论 -
缓存更新的正确姿势
看到好些人在写更新缓存数据代码时,先删除缓存,然后再更新数据库,而后续的操作会把数据再装载的缓存中。然而,这个是逻辑是错误的。试想,两个并发操作,一个是更新操作,另一个是查询操作,更新操作删除缓存后,查询操作没有命中缓存,先把老数据读出来后放到缓存中,然后更新操作更新了数据库。于是,在缓存中的数据还是老的数据,导致缓存中的数据是脏的,而且还一直这样脏下去了。我不知道...转载 2018-06-25 08:56:15 · 463 阅读 · 0 评论 -
maven项目打包xml没有被打包解决办法 ,mybatis的xml打包
mapping目录里面的文件都是xml文件并不是.java文件,而maven打包默认的src/main/java的是Java文件,它不会打包里面的xml文件,所以在打包之后里面不会有mapping。解决办法:第一种方法:可以将xml放到 resources目录里面,这样做要改一下配置文件:把扫描xml的把扫描包的路径改成相应的路径即可 。第二种解决方法:在pom.xml中配置:在bui...转载 2018-07-18 11:45:38 · 3064 阅读 · 0 评论 -
Springboot集成通用Mapper和自动生成后运行报错
报错信息如下org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error invoking SqlProvider method (tk.mybatis.mapper.provider.base.BaseInsertProvide...原创 2018-07-18 15:54:08 · 1699 阅读 · 0 评论 -
工具类——java在图片指定位置写字
import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import java.net.URL; import javax.imag...转载 2018-08-11 08:23:50 · 4047 阅读 · 1 评论 -
SpringBoot多数据源切换,AOP实现动态数据源切换
SpringBoot多数据源切换,AOP实现动态数据源切换操作数据一般都是在DAO层进行处理,可以选择直接使用JDBC进行编程或者是使用多个DataSource 然后创建多个SessionFactory,在使用Dao层的时候通过不同的SessionFactory进行处理,不过这样的入侵性比较明显,一般的情况下我们都是使用继承HibernateSupportDao进行封装了的处理,如果多个Se...原创 2018-10-30 16:32:25 · 25436 阅读 · 10 评论 -
Java 基本数据类型最大值极限和最小值
public static void main(String[] args){ //Float System.out.println("Float.MIN_VALUE = " + Float.MIN_VALUE); System.out.println("Float.MIN_NORMAL = " + Float.MIN_NORMAL); System.out.pr...原创 2019-01-09 18:06:48 · 741 阅读 · 0 评论 -
Java各种对象(PO,BO,VO,DTO,POJO,DAO,Entity,JavaBean,JavaBeans)的区分
PO:持久对象 (persistent object),po(persistent object)就是在Object/Relation Mapping框架中的Entity,po的每个属性基本上都对应数据库表里面的某个字段。完全是一个符合Java Bean规范的纯Java对象,没有增加别的属性和方法。持久对象是由insert数据库创建,由数据库delete删除的。基本上持久对象生命周期和数据库密切相...转载 2019-03-01 09:48:13 · 109 阅读 · 0 评论 -
java web解决跨域问题
写的项目用的Tomcat,然后是想直接用ip访问,使用Apach进行转发直接访问项目存在跨域的问题,网上搜了一堆用的以下方法解决的问题。转载自:http://blog.csdn.net/snowwhitewolf/article/details/72676059目标:tomcat服务器提供的接口,不能在其他域中访问的时候,需要增 Access-Control-Allow-Origi转载 2018-01-29 14:55:48 · 726 阅读 · 2 评论