
java
xuxiake的博客
it宅男
展开
-
为什么POJO 类中的任何boolean布尔类型的变量,都不要加 is
前台向后台传参有可能同样的参数,就因为加了is前台传递给后台时,后台接收不到。后台向前台传参部分框架解析会自动忽略掉is,比如转json是就会把is取消掉,当然有解决办法就是加入@JsonProperty(value = “xxx”),还是不建议加is除非必要,比如前台使用ztree,他们框架结构就是这么定的,这个时候在属性上加注解。...原创 2020-03-26 12:06:00 · 675 阅读 · 0 评论 -
springmvc耗时处理的结果返回优化Callable
背景公司最近上了一个项目,其中要求用websocket去另一项目中获取相应结果,返回给本项目中的control,由于websocket靠另外一个项目推送,所以时效性不能保证,需要使用一个线程,那么如何在查询接口中使用线程且不影响效率呢?Callable便被使用上了。关于Callable是什么而自从Java 1.5开始,就提供了Callable和Future,通过它们可以在任务执行完毕...原创 2019-12-24 14:25:28 · 1117 阅读 · 0 评论 -
java Gson字符串转复杂对象
使用场景当我们待处理的字符串是个集合时,我们没办法通过fromJson(String json, Class<T> classOfT)来获取对象,使用JsonParser按照array来一步步转又太过麻烦。怎么使用gson给我们还提供了fromJson(String json, Type typeOfT)方法,当类型复杂时我们可以Type。Type type = new ...原创 2019-12-23 16:27:27 · 669 阅读 · 0 评论 -
spring mvc + aop 进行业务异常处理
如果不喜欢写aop的,可以使用@ControllerAdvice注解来替代,形式如下,@ExceptionHandler代表接入点,ExceptionConfigController代表切面@ControllerAdvicepublic class ExceptionConfigController { // 专门用来捕获和处理Controller层的空指针异常 @Except...原创 2019-10-18 12:00:57 · 299 阅读 · 0 评论 -
spring+mybitis+tk+pagehelper+lombok使用
使用maven管理添加依赖 <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>4.0.3</version>...原创 2019-10-17 20:34:40 · 202 阅读 · 0 评论 -
elasticsearch学习笔记
filed、document、index、type、shard、replica、node、cluster关系kibana原创 2019-08-31 13:55:06 · 641 阅读 · 0 评论 -
spring boot +mybatis使用
mybitis引入使用maven管理,引入mybatis-spring-boot-starter(也可以使用Tkmybatis插件,减少重复代码量),配置SqlSessionFactoryBean,设置xml的位置。使用mybitis需要三种文件,1.dbo,表对应的实体。2.数据操作接口。3.接口对应的xml,这些东西都可以使用generator来生成,在maven中添加org.myba...原创 2019-08-27 12:46:32 · 326 阅读 · 0 评论 -
Jdk8参数
jdk8 jvm配置参数说明这些选项是特定于Java HotSpot虚拟机的通用选项。-X显示所有可用-X选项的帮助。-Xbatch禁用后台编译。默认情况下,JVM将该方法编译为后台任务,以解释器模式运行该方法,直到后台编译完成。该-Xbatch标志禁用后台编译,以便所有方法的编译作为前台任务继续进行,直到完成。此选项相当于-XX:-BackgroundCompilation。-Xbo...原创 2019-08-06 14:43:20 · 957 阅读 · 0 评论 -
jvisualvm1.8详情使用
1.插件安装自带的插件url已经不可用了,我们需要在设置中更改url,查询对应版本url,填写完成后可以安装插件,比如visual gc常用插件。2.visual gc使用,jvm内存信息可以查看下图visual gc图形界面如下图整个区域分为三个部分:spaces、graphs、histogram1.spaces区域:代表虚拟机内存分布情况。从图中可以看出,虚拟机被分为Metasp...原创 2019-08-06 14:03:34 · 962 阅读 · 0 评论 -
vue向spring boot传递时间问题
如果前端向后端传递时间会报 nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [@javax.persistence.Column @org.springframework.fo...原创 2019-09-02 11:27:02 · 2488 阅读 · 0 评论 -
数据库update多条数据
数据库不提供想多条插入类似的语法,但是我们可以借助于case when来拼出一个常sql,当然这还是一条语句,update tabel1set 字段1 = case 条件字段 when 条件值1 then 字段1的值1 when 条件值2 then 字段1的值2 end , 字段2 = case 条件字段 when 条件值 then 字段2的值 end , 字段3 = case 条件字...原创 2019-09-02 17:20:55 · 14394 阅读 · 0 评论 -
java8 :: 用法 (JDK8 双冒号用法)
java8中新增的箭头符号x -> methodParam.accept(x),其实它相当于methodParam::accept,主要是配合forEach之类的往方法中传值。public class AcceptMethod { static void printValur(String str){ System.out.println("print valu...原创 2019-09-15 14:42:32 · 771 阅读 · 0 评论 -
java使用groovy脚本
java使用groovyjava中使用groovy效率会很低,因为每执行一次都会从头编译一次使用maven管理的项目需要添加依赖<dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy</artifactId> ...原创 2019-09-24 15:10:52 · 525 阅读 · 0 评论 -
spring boot + sharding-jdbc + mybatis分库分表使用
maven中引入依赖 <dependency> <groupId>io.shardingjdbc</groupId> <artifactId>sharding-jdbc-core</artifactId> <version>2.0.3</version> </dependency&g...原创 2019-09-24 19:49:24 · 638 阅读 · 0 评论 -
sharding-jdbc+mybatis 原理
项目中使用1). 项目中使用mybatis2). 项目中使用sharding-jdbcmybatis+sharding-jdbc结合的入口原创 2019-09-26 14:45:13 · 3531 阅读 · 0 评论 -
java Double数据格式化成两位
import java.math.BigDecimal;import java.text.DecimalFormat;import java.text.NumberFormat;/*** * @title DoubleFormatUtil* @describe double 数据类型的精度确定工具类:四舍五入(保留两位小数)*/public class DoubleFormatU...原创 2019-10-08 10:32:36 · 912 阅读 · 1 评论 -
开发Java jmeter插件
1.我们需要引入 <dependency> <groupId>org.apache.jmeter</groupId> <artifactId>ApacheJMeter_core</artifactId> <version>5.0</version> &...原创 2019-07-22 20:23:13 · 3418 阅读 · 0 评论 -
java执行系统命令
在Java中执行系统命令,主要是使用ProcessBuilder和Runtime.getRuntime().exec()。而在这里主要是介绍两种方法的使用。使用情景是在linux系统中,使用mencoder来进行视频转码。将视频转为flv格式,因为转为flv格式命令较为简单,如要转为MP4格式,可以看官方文档介绍一.使用Runtime##上传之后的视频文件名为test.tmpmediaSt...转载 2019-07-20 16:26:53 · 7233 阅读 · 0 评论 -
java多线程技术之美
多线程1.1线程的创建两种方式重写thread的run方法,或者在初始化线程时给构造参数传一个继承了Runnable接口的对象,其实这两者本身都是将执行体放入run方法。New Thread(new Runnable{@overwrideRun(){}})New Thread(){@overwrideRun(){}}其中方法一更为推荐。线程池使用ThreadPool...原创 2019-07-19 09:06:51 · 184 阅读 · 0 评论 -
jwt使用实战
what is jwt?json web token,主要是用来做认证的,因为他是基于数字签名的 ,所以安全性贼高,是一种协议,本身是json格式,支持跨语言,同时它由三部分组成header(用于说明加密算法和说明是jwt),playload(传输用户需要携带的脱敏业务信息),signature(用来对前两部分进行签名认证的,防止篡改),由于jwt使用使用base64进行对称加密,所以不要传...原创 2019-05-15 21:29:19 · 1415 阅读 · 3 评论 -
maven插件编写日志管理
背景当我们编写maven插件的时候会牵扯到调试困难的问题,虽然我的另一篇博客有介绍怎么进行远程调试,可是当我们编写的插件需要进行大量数据操作时,指望调试去定位问题还是有点慢,而且一个优秀的插件日志系统也是必不可少的,那么怎么在maven插件中使用日志系统呢?使用maven自带日志系统,maven插件自带了一个日志系统,满足大多数的业务场景是足够了,在继承了AbstractMojo的类中,使用...原创 2019-05-27 17:35:46 · 768 阅读 · 0 评论 -
当jdk1.8+springboot遇上时间差12小时
背景:最近工作过程中发现了一个可奇怪的现象,使用jdk1.8+springboot开发的jar,当部署到centos7上时,new date生成的时间会比系统时间慢了12小时,但是当其在mysql5.6库中读取时间时,又会增加12小时,同样的jar包在我所属的window机器上没有任何问题。猜想问题所在往往当我们系统时间差8小时,我们很容易想到是不是时区问题,可是现在我们系统在前台展示上没...原创 2019-05-24 08:28:16 · 7573 阅读 · 12 评论 -
RabbitMQ使用
安装1.1 windows安装,下载Erlang,下载RabbitMq,先安装Erlang,再安装RabbitMq但是注意必须没有中文路径。1.2linux安装,使用yum首先使用阿里中央库,然后按照顺序先安装erlang,在安装rabbitMq,不知道具体的软件包名,可以使用yum的search命令查看。1.3配置,rabbitmq配置文件有两个,一个是环境变量的配置文件 rabbitm...原创 2019-06-13 11:48:33 · 195 阅读 · 0 评论 -
spring框架相关问题
IOC/DIIOC控制反转,不是什么技术,而是一种设计模式,是传统创建对象的主动变被动,传统方式想要获得一个新对象需要new或者查JNDI,而IOC容器方式转变为需要一个新对象在运行时给你动态注入。DI依赖注入,和IOC其实是同样的概念,IOC可能再概念上解释的有点让人迷糊,但是依赖注入可以让人很清楚的明白,它要干的事就是为你需要对象的地方按照某种依赖关系为你注入。他是怎么实现注入的?根据j...原创 2019-06-15 13:53:55 · 154 阅读 · 0 评论 -
shiro的使用
Shiro使用Shiro作为轻量级权限管理框架,现在使用shiro并不需要任何的配置文件,我们可以采用javabean的方式,如我们新建一个shiro的配置类需要在类上使用@Configuration注解。1.首先我们得定义生命周期相关得bean LifecycleBeanPostProcessor2.定义aop处理方法级得权限实现bean DefaultAdvisorAutoProxyC...原创 2019-06-15 14:09:48 · 275 阅读 · 0 评论 -
SpringMVC框架相关问题记录
SpringMVC过程1.从浏览器发送web请求(request)2.请求被spring的dispatcherServlet控制器拦截到,dispatcherServlet将请求url发送给处理器映射器handlerMapping,dispatcherServlet是springMvc的入口即前端控制器。3.处理器映射器将url对应的handler对象和需要通过的拦截器数组反馈给前端控制器...原创 2019-06-17 09:15:17 · 141 阅读 · 0 评论 -
quartz定时器使用
quartz和spring整合,需要配置SchedulerFactoryBean用来产生StdScheduler首先使用SchedulerFactory得到Scheduler,我们的任务时一个实现job接口的类,而真正被调度使用的是JobDetail剩下的就是使用触发器Trigger,常用两种触发器SimpleTrigger、CronTrigger在触发器中我们会使用ScheduleBui...原创 2019-06-17 09:30:17 · 195 阅读 · 0 评论 -
activiti工作流使用
什么是工作流原创 2019-06-17 16:11:52 · 365 阅读 · 0 评论 -
java工程师高逼格的几个工具安装
mysql数据库安装1.linux可以连网情况下1.1 wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm下载rpm镜像源1.2yum -y install mysql57-community-release-el7-10.noarch.rpm安装镜像源1.3yum -y inst...原创 2019-06-25 20:54:31 · 326 阅读 · 0 评论 -
logback的使用和logback.xml详解
一、logback的介绍Logback是由log4j创始人设计的另一个开源日志组件,官方网站: http://logback.qos.ch。它当前分为下面下个模块:logback-core:其它两个模块的基础模块logback-classic:它是log4j的一个改良版本,同时它完整实现了slf4j API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logginglogba...转载 2019-07-02 12:05:12 · 186 阅读 · 0 评论 -
spring-cloud学习之路
spring-cloud学习欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入1....原创 2019-07-02 13:51:03 · 2824 阅读 · 0 评论 -
cent os7编译openjdk1.7
准备条件我们需要ant、基础jdk、待编译openjdk、freetype,当然可以从我上传的资源中下载,这里面准备了上面的资源和系统,虚拟机。安装freetype需要使用tar解压freetype,然后进入解压包内部,使用./configure然后在使用make,最后使用make install,freetype安装完成。安装ant其实ant不需要安装,但是我们还是习惯性的给它建立一...原创 2019-06-27 09:06:11 · 291 阅读 · 1 评论 -
redis基础概念
redis持久化rdb,可以通过修改配置文件中save策略,使支持自动保存,edb会占用一倍内存,默认保存文件dump.Rdb也就是快照,每次flushdb都会自动保存rdb,每次启动redis会自动将rdb文件load到内存。Aof,可以设置三种策略,第一次启用会全库保存,其次会增量,它只将写操作记录下,优点是精度高,缺点是文件大,它其实是fork一个子线程占用系统资源,当让我们可以触发a...原创 2019-07-10 08:46:08 · 215 阅读 · 0 评论 -
远程调试java代码(入门版)
众所周知,java代码一旦部署到了服务器上,它的调试就是一个难点,当然现在拥有各种各样的调试手段,但是今天咱们要看的却是最简单的,当然限制条件也是最多的,比如端口要通,服务可以重新启动等。1.启动服务,我们需要添加远程启动java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 -jar,使用这个脚本启动...原创 2019-07-15 15:39:27 · 284 阅读 · 0 评论