自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

记事本

我的记事本

  • 博客(212)
  • 资源 (2)
  • 收藏
  • 关注

原创 Java 11 新特性

java 11 是继 java8 之后的第一个LTS版本。因此有必要针对它进行一些深入的学习,虽然短时间内java8 还是主流版本。当然,如果从java8基础上升级,几乎可以确定目标就是java11。同时也要明确一个问题,现在java的版本升级周期与前些年相比速度快了太多,对于应用开发者来说没必要每一个小版本都去花时间研究,比如这些过渡版本:java9、java10、java12、java13(...

2019-10-21 10:46:31 1280 1

原创 使用lombok编写优雅的Bean对象

使用java编写代码,十之八九都是在写java类,从而构建java对象。lombok之前也说了不少,但使用了这么多年,感觉还是有很多技巧可以使用的。毫无疑问,使用lombok,编写的java代码很优雅,而使用起来和普通的java编码方式创建的类毫无二致。不过,这样就满足了吗?实际上lombok很多注解,让这个java类在使用的时候,也可以更优雅。本文就从ORM实体类、Builder模式工具类...

2019-04-22 22:23:21 996 1

原创 start.spring.io 访问不了怎么办?

start.spring.io 访问不了怎么办?这个问题坑过我很多次,抽时间把start 官网的项目做了一个包装,增加了一个默认配置,以及定期更新的机制。移驾:https://gitee.com/pollyduan/spring-boot-initializrUI基于官方 0.4.0.release 目前官方UI已经更新,直接试了下不能平滑升级。抽时间再搞一下吧。目前就是旧版本的UI,使用...

2019-03-27 19:54:24 6502

原创 有意思的TimeUnit

java.util.concurrent.TimeUnit 这个类,相信童鞋们都不陌生。它是一个enum:public enum TimeUnit好吧,我一直把它当做一个枚举类来用。偶然看到还有别的用法,大吃一斤,原来 TimeUnit 并不是一个简单的枚举类。时间单位换算//小时转换为秒long sec = TimeUnit.HOURS.toSeconds(1);// 另一种形式...

2019-03-04 17:19:26 407

原创 三句话捋清楚java垃圾收集器

无论 -XX:+UseParallelGC 还是 -XX:+UseParallelOldGC ,新生代都是 ParallelGC,即 Parallel Scavenge,区别在于年老代,前者是串行,后者是并行。无论 -XX:+UseConcMarkSweepGC 还是 -XX:+UseParNewGC ,新生代都是ParNew,区别在于年老代,前者是CMS(当然,他失败了就会执行seri...

2019-03-04 17:17:48 539

原创 RabbitMQ 延迟队列

rabbitmq 本身不支持延迟队列,但提供了实现延迟队列的必备条件。原理queue可以通过 x-message-ttl 参数设置过期时间,到了过期时间的消息就会被标记为 dead letter 状态。过期的消息可以通过 x-dead-letter-exchange 和 x-dead-letter-routing-key 参数转发到另一个 exchange 中去。在managemen...

2019-03-04 17:16:09 543

原创 centos 手动安装mysql8

下载官网太慢了,在清华镜像站下载:https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-8.0/二进制版二进制版是官方提供的预先编译好的版本下载二进制版发行包wget https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-8.0/mysql...

2018-04-28 17:12:38 2148

原创 Spring Cloud Cli 初体验

SpringBoot CLI 是spring Boot项目的脚手架工具。而本文的Spring Cloud cli则是基于SpringBoot Client的一个插件,用于支持Cloud相关的组件。由于各种原因,目前用起来并不是很爽:repo 经常连不上启动非常慢,要等半天遇到问题排查不是很容易但是,功能很有意思,值得期待。也许有一天变的像 docker swarm 那样直接启动...

2018-04-02 10:33:09 2420

原创 SpringBoot 去除"No MyBatis mapper was found in '[com.pollyduan.cms]' package. " 警告

springboot项目,集成了mybatis。偶然发现,项目每次启动都警告:No MyBatis mapper was found in '[com.pollyduan.cms]' package. Please check your configuration.我在 com.pollyduan.cms.CmsApplication 主类上使用 @MapperScan(baseP...

2018-03-28 22:59:09 12162 1

原创 使用git仓库创建Maven私服

自己编写的jar,想要通过maven方式进行分发必须发布到maven仓库。如果没有自己的私服,我们可以使用折中的办法来实现。maven客户端从maven仓库拉取构件时,实际上就是通过http协议去拉取对应仓库地址上的,对应目录中的metadata文件,查询需要的版本,就可以找到jar文件,下载到本机仓库。从而完成了依赖构件的拉取。就是说,我们可以使用任何http服务器,按照一定的目录结构部...

2018-03-22 18:33:33 1815

原创 使用FeignClient调用远程服务时整合本地方法

背景尝试将本地方法加入Feign接口尝试通过实现两个接口IS -> HAS背景包装一个用户服务,一部分功能需要调用远程服务,而另一部分功能调用本地方法,如:@FeignClient(value="USER-SERVICE")public interface RemoteUserService{ @GetMapping("getUserByU...

2018-03-17 15:30:06 4771

原创 SpringCloud的版本

Spring Cloud 项目目前仍然是快速迭代期,版本变化很快。这里整理一下版本相关的东西,备忘一下。大版本版本号规则Spring Cloud并没有熟悉的数字版本号,而是对应一个开发代号。 Cloud代号 Boot版本(train) Boot版本(tested) lifecycle Angle 1.2.x incompatible w

2018-01-25 16:23:41 24572 3

原创 eclipse开发springboot配置文件没有语法提示了

eclipse开发springboot项目,打开 application.properties 和 application.yml,正常情况下,输入:port 会提示可选配置项:选择 server.port= 输入端口号即可。无法提示的问题配置文件前天突然发现,没有语法提示了。回想最近几天做了什么?重装了jdk9.0.1; 在jdk1.8.144基础上安装了1.8.1

2018-01-16 14:43:28 5650

原创 java9导出运行springboot的精简版jre

基本导出命令查找某个类在哪个mod中最终结果测试启动为了分发一个springboot项目,在不考虑目标机器是否有jre的情况下,携带一个jre环境是一个选择。本文就尝试从原生的jdk 9.0.1 精简一个jre供分发。实际情况可能略有不同,比如目标机器不同,jre是否兼容,未测试。使用基本的eureka-server项目测试可运行。其他项目可能根据依赖的基础模块进行相应调整。基本导出命令以下

2017-12-27 13:53:20 1824

原创 java8的日期API总结(JSR310)

java8 datetime api有什么LocalDateLocalDate 与 Date 转换LocalTimeLocalDateTimeLocalDateTime 与 DateInstantZoneId日期计算Java的日期时间API,一直有一些令人头疼的问题。有了 java.util.Date 又搞出个java.sql.Date,改个名字不行?好好的new Date(yea

2017-11-17 23:48:31 1206 1

原创 再再谈java乱码:GBK和UTF-8互转尾部乱码问题分析(续)

GBK字节码用UTF-8解码UTF-8 的编码规则转码实例解决问题小结参考在《再谈java乱码:GBK和UTF-8互转尾部乱码问题分析》我们分析了,如果从一个UTF-8 的字节序列,经过 new String(b,"GBK") 的操作,”可能”(与总字节数有关)会破坏数据。结果可能是,损失最后一个”字”。反过来呢?可能会很惨,大范围溃散。。。同时,可参考:一段java代码带你认识锟斤拷G

2017-10-25 10:24:33 1231

原创 Java9新特性——module模块系统

官方文档:https://docs.oracle.com/javase/9/index.html关于 java9的新特性,官方原文:https://docs.oracle.com/javase/9/whatsnew/toc.htm这玩意就是一个列表,具体的技术细节需要根据官方文档挖一挖。modular-模块系统java9的模块化,从一个独立的开源项目而来,名为Jigsaw。项目官网:http://o

2017-09-26 09:51:15 19525 9

原创 编写自己的jquery组件

以一个翻页组件为例。前提,网上针对jquery ajax方式获取数据的翻页组件很多,有一个应用未使用ajax,而是直接通过jsp模板渲染数据,没有找到合适的组件。那么就自己手写一个简单的组件吧。先来看一下他长什么样子?jquery组件的模板//pagination 为自定义的组件名称$.fn.pagination=function(options){ var defaults = {

2017-09-22 13:50:30 2744 1

原创 Spring Boot 在localhost域奇怪的404问题(Mac book pro)

在mac系统中,明明url是对的,浏览器也可以打开,一个简单的代码调用就是404,你有没有遇到过?情景再现普通的一个controller,返回一个常量。@GetMapping("/project_metadata/spring-boot")public String getMetadata(){ return "{\"data\":1234}";//这个不重要}调用接口的方式:content

2017-08-31 16:30:05 4781 1

原创 再谈java乱码:GBK和UTF-8互转尾部乱码问题分析

一直以为,java中任意unicode字符串,可以使用任意字符集转为byte[]再转回来,只要不抛出异常就不会丢失数据,事实证明这是错的。经过这个实例,也明白了为什么 getBytes()需要捕获异常,虽然有时候它也没有捕获到异常。言归正传,先看一个实例。用ISO-8859-1中转UTF-8数据设想一个场景:用户A,有一个UTF-8编码的字节流,通过一个接口传递给用户B;用户B并不知道是什么字符集,

2017-08-25 16:02:14 38368 20

原创 vagrant provision 典型应用场景

让虚拟机初始创建时,添加自定义的包管理器的源。准备镜像仓库的源配置文件如本例中的:我的虚拟机工作目录是 /Users/pollyduan/vm虚拟机工作目录为/Users/pollyduan/vm/ubuntu我创建了一个/Users/pollyduan/vm/data 作为保存共享所需的软件和资源。provision中的source可以使用相对路径,因此我的用户目录/Users/pollyduan

2017-08-09 09:51:14 2089

原创 使用Spring Boot Cli快速启动web服务

安装spring boot clisdk install springboot编写脚本文件@RestControllerpublic class SpringBootDemo12345 { @RequestMapping("/") public String home() { return "Hello World!"; }}类名不一定和文件名一样。启动服务s

2017-07-27 18:12:23 672 1

原创 Spring Boot集成JPA的Column注解命名字段无效的问题

偶然发现,Spring Boot集成jpa编写实体类的时候,默认使用的命名策略是下划线分隔的字段命名。Spring Boot版本:1.5.4.release数据表:id int,userName varchar(50)那么如下的映射:@Data@Entity@Table(name="t_users")@NoArgsConstructor@AllArgsConstructor@Access

2017-07-27 10:37:02 24305 6

原创 docker搭建oracle开发环境

oracle太大了,对于开发人员来说,在本机安装一个oracle代价不菲。在docker环境中,我找了很久,发现wnameless/oracle-xe-11g 镜像还不错,很方便搭建起来。但是也发现一个问题,挂载本地卷遇到了麻烦。一旦挂载,就无法登陆了。从官方的issues中发现,有一个fork版本解决了这个问题,记录一下。创建docker-compose工作目录mkdir -p oracle/da

2017-06-16 11:06:22 2007

原创 java8新特性整理

java9快来了,必须得梳理一下java8了。官方文档:http://docs.oracle.com/javase/specs/jls/se8/html/index.html一、接口的默认方法和静态方法接口里也可以写方法体了,实现该接口的类不再强制实现该方法,只需要在方法签名增加default签名并实现方法体,如:接口:public interface Compute { default I

2017-06-13 17:39:06 7582 2

原创 lambda方法引用总结——烧脑吃透

lambda是java8的新特性,基本使用比较容易理解,但有一个环节遇到了坎儿,那就是方法引用,尤其是类的实例方法引用,烧脑之后总结一下。在需要函数参数的方法中,我们可以把另一个同类型的方法直接传入,这称为方法引用的绑定。类似于C语言中的函数指针。lambda表达式可以替代方法引用;或者说方法引用是lambda的一种特例,方法引用不可以控制传递参数。4.1) 构造器引用private Person

2017-06-08 15:49:37 7859 5

原创 使用springloaded进行java应用热部署

试了下不错,不像JRebel那样收费,这个开源的,感觉很好用。首先下载springloaded.jarhttps://github.com/spring-projects/spring-loaded也可以使用maven拉取:<dependency> <groupId>org.springframework</groupId> <artifactId>springloaded</artifac

2017-06-05 16:16:40 17123 2

原创 lombok系列2:lombok注解详解

开篇看到第一篇《初识lombok》你可能意犹未尽,本文我们按照场景来介绍一下常用的注解。未特别说明,均标注在类级别。lombok.Data最常用的注解,编译时自动添加Setter、Getter、toString()、equals()和hashCode()。package com.pollyduan;import java.util.Date;import lombok.Data;@Datapubl

2017-05-22 11:34:17 16282

原创 lombok系列1:初识lombok

初识lombok官网:https://projectlombok.org/什么是lombok连官网都懒得废话,只给出了一句广告词:给你的java加点料(spice up your java)。我们自己来总结一下:lombok是一个ide插件,它可以让我们写更少的代码,而编译出更多的字节码。也就是说,我们可以让我们编译出一个复杂的.class文件,而我们的.java文件很干净清爽。为什么要使用lomb

2017-05-22 11:31:28 1754

原创 lombok系列3:lombok的实验类特性

lombok除了已经推荐使用的基本功能,还维护了一个创新型的注解,有些功能有违常规对java认知,或者只支持eclipse,其他IDE支持有问题,甚至某些环境完全不可用。因此没有正式使用。但是的确很有创意,这些注解已经在jar中提供,只不过它是归在”lombok.experimental.” 包中;而基本功能在”lombok.” 包中。@Accessors定制流畅的访问器。@Accessors(ch

2017-05-19 09:18:55 6908 3

原创 一段java代码带你认识锟斤拷

@Testpublic void testKunJinKao(){ String str="我不是锟斤拷"; try { byte[] buff=null; //让我们先看看几种错误的转换,let's go //1. 正常的GBK字节流,你以为是UTF-8,所以用UTF-8去解码... buff=str.getBytes("GBK");//这里只要不抛异常,数据

2017-05-02 10:12:05 20510

原创 linux下使用update-alternatives切换java版本的正确姿势

关于update-alternatives命令的使用,请见: http://blog.csdn.net/54powerman/article/details/54572195之前的文章说明了使用文件夹管理来代替原来的当个命令配置的方式,不过这个是属于个人使用的方式,并不是规范的通用的方式。按照默认的方式,每一个软件包对应的命令都是分别设置的,这样的好处是,可以不同的命令使用不同的版本。如java使用

2017-04-27 10:38:45 9221

原创 eclipse使用maven时共享Nexus仓库index缓存的解决办法

不完全解决,但相对有效。背景如我现有一个常用的项目工作空间目录为:/Users/pollyduan/Documents/workspace工作目录中的仓库index缓存保存在哪里呢?${basedir}/.metadata/.plugin/org.eclipse.m2e.core/在使用一段时间以后,该目录会膨胀的很严重,比如我现在该目录的大小是1.8G。如果我再创建一个工作空间,如:/Users/

2017-04-18 17:16:00 2036

原创 eclipse使用maven创建web3.0项目

挺别扭的,eclipse和maven发展了这么久,二者都没有很好的解决这个问题。默认情况下,使用maven骨架撞见的webapp只支持servlet2.3,eclipse又不允许随便修改为3.0。网上流传最多的版本可能是修改项目目录中.settings/org.eclipse.wst.common.project.facet.core.xml文件,然后还要注意一堆东西。我梳理了一种办法,感觉处理起来

2017-04-18 15:13:08 1157

原创 使用Atom编辑文本文件

我一般用它来编辑markdown,实时预览需要安装插件,后文会有preview插件。atom已经内置了emmet插件,用于前端编码也是一个不错的选择。重要的是,他是跨平台的开源软件,虽然我基本上在mac上用,估计windows平台还是有很多人用editplus盗版,建议考虑atom替代。基本使用编辑文件与普通文本编辑器一样,无他。编辑项目atom的项目是一个松散的结构,没有特定的要求,每一个目录都可

2017-04-18 12:00:59 2337

原创 java泛型总结

什么是泛型泛型是jdk5引入的类型机制,就是将类型参数化,它是早在1999年就制定的jsr14的实现。泛型机制将类型转换时的类型检查从运行时提前到了编译时,使用泛型编写的代码比杂乱的使用object并在需要时再强制类型转换的机制具有更好的可读性和安全性。泛型程序设计意味着程序可以被不同类型的对象重用,类似c++的模版。泛型对于集合类尤其有用,如ArrayList。这里可能有疑问,既然泛型为了适应不同

2017-04-13 15:53:51 2781 2

原创 java对象拷贝

java赋值是复制对象引用,如果我们想要得到一个对象的副本,使用赋值操作是无法达到目的的:@Testpublic void testassign(){ Person p1=new Person(); p1.setAge(31); p1.setName("Peter"); Person p2=p1; System.out.println(p1==p2);//true}如果创建一个

2017-03-22 15:49:59 13434 5

原创 java中参数传递方式话题终结实例

java新手入门面临的一个经典的话题,本文意在终结这个话题,java中有说法:Java里面参数传递都是按值传递,怎么理解这句话?用文字说明恐怕不容易说明白,说明白恐怕也难以想明白。前提先明确一下,按值还是按引用的概念,它是来自c++语言,引用不是汉语词典中的一个词,而是c++的概念——“&”这个符号还记得吧?为什么有这个话题呢?其一,是对按引用传递理解不透彻;其二,诸多java书籍及讨论论点并没有切

2017-03-22 10:58:50 2614 5

原创 Hibernate Session和Jpa EntityManager

本文主要比较一下二者操作实体类的方法的关系和区别。本文适用 Hibernate:4.3.11.Final 和 spring-data-jpa:1.10.4.RELEASE 。创建方式Session:Configuration configuration=new Configuration().configuration();ServiceRegistry serviceRegistry=new Se

2017-03-10 13:58:01 9865

原创 maven依赖的版本管理

使用变量进行管理定义一个版本号的变量<properties> <spring-framework-version>4.3.7.REALEASE</spring-framework-version></properties>所有spring的jar版本都使用变量来定义版本:<dependency> <groupId>org.springframework</groupId> <art

2017-03-09 11:21:38 4433

InnoSetupUnpackerExplorer-v1.0绿色免安装

InnoSetupUnpackerExplorer-v1.0绿色免安装,请运行innoup.exe -d解压目标 exe文件,可以把inno setup文件中的所有文件解压到“解压目录”中,这样就可以制作免安装绿色软件。

2007-03-31

UPXShell-v3.4.2.2007绿色中文版

压缩exe文件的工具,平均压缩率50%,使exe程序大小减小一般,而且,对于敏感文件可以起到免杀的作用。

2007-03-31

空空如也

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

TA关注的人

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