缘起 有一次开发过程中,刚好看到小伙伴在调用 set 方法,将数据库中查询出来的 Po 对象的属性拷贝到 Vo 对象中,类似这样: 可以看出,Po 和 Vo 两个类的字段绝大部分是一样的,我们一个个地调用 set 方法只是做了一些重复的冗长的操作.这种操作非常容易出错,因为对象的属性太多,有可能会漏掉一两个,而且肉眼很难察觉. 类似这样的操作,我们很容易想到可以通过反射来解决.其实,如此普遍通用的功能,一个 BeanUtils 工具类就可以搞定了. 于是我建议这位小伙伴了解一下 BeanUtil…
背景 在我们实际项目开发过程中,我们经常需要将不同的两个对象实例进行属性复制,从而基于源对象的属性信息进行后续操作,而不改变源对象的属性信息,比如DTO数据传输对象和数据对象DO,我们需要将DO对象进行属性复制到DTO,但是对象格式又不一样,所以我们需要编写映射代码将对象中的属性值从一种类型转换成另一种类型. 这种转换最原始的方式就是手动编写大量的 get/set代码,当然这是我们开发过程不愿意去做的,因为它确实显得很繁琐.为了解决这一痛点,就诞生了一些方便的类库,常用的有 apache的 Be…
在我们实际项目开发过程中,我们经常需要将不同的两个对象实例进行属性复制,从而基于源对象的属性信息进行后续操作,而不改变源对象的属性信息,比如DTO数据传输对象和数据对象DO,我们需要将DO对象进行属性复制到DTO,但是对象格式又不一样,所以我们需要编写映射代码将对象中的属性值从一种类型转换成另一种类型. 对象拷贝 在具体介绍两种 BeanUtils 之前,先来补充一些基础知识.它们两种工具本质上就是对象拷贝工具,而对象拷贝又分为深拷贝和浅拷贝,下面进行详细解释. 什么是浅拷贝和深拷贝 在Java…
如果你的开发环境无法访问外网,那么手动安装阿里巴巴的代码规范插件是一个不错的选择.另外,很多教程说该插件需要jdk1.8以上,我试了一下jdk1.7也是可以运行的,更低的版本就不知道了,貌似jdk1.6是不行的. 安装过程很简单,直接在浏览器中输入网址:https://p3c.alibaba.com/plugin/eclipse/update,直接下载zip文件: 然后解压, 将features和plugins文件夹拷贝到eclipse的按照目录,重新启动eclipse就行了.然后eclipse…
概述 2017年10月14日杭州云栖大会,Java代码规约扫描插件全球首发仪式正式启动,规范正式以插件形式公开走向业界,引领Java语言的规范之路.目前,插件已在云效公有云产品中集成,立即体验!(云效>公有云>设置->测试服务->阿里巴巴Java代码规约). 链接: 插件地址 开始安装 选择你开发的平台: eclipse 就选eclipse, idea 直接去idea的 插件搜索 alibaba 即可安装 eclipse 安装实例 选择 eclipse-plugin 进去 安装要求…
serialVersionUID简要介绍 serialVersionUID是在Java序列化.反序列化对象时起作用的一个字段.Java的序列化机制是通过判断类的serialVersionUID来验证版本一致性的.在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常,即是InvalidClassException. 序列化是一种把对象持久化…
一.github地址: https://github.com/alibaba/p3c 二..eclipse插件的安装 此处示例采用eclipse,版本为 Neon.1 Release RC3 (4.6.1RC3) 1.help-install new software 2.弹出的窗口点击add 在(Name)位置项中输入:p3c(这里可自定义) 在(URL)位置项中输入链接 :https://p3c.alibaba.com/plugin/eclipse/update 点击select all 按…
1.首先打开eclipse软件,点击工具栏上的Help,选择Install New Soft进行安装新的插件. 2.进入插件安装界面,点击Add,弹出插件地址填写界面,也可以直接在市场上搜索关键字ali进行查询. 3.输入软件Name:p3c名字可以随意,Location:https://p3c.alibaba.com/plugin/eclipse/update.点击完成,然后选择Ali-CodeAna.... 4.点击下一步即可进行安装,类似安装其他插件一样. 5.同意协议.点击勾选I acc…
前言 在阿里Java开发规约中,有强制性的提到SimpleDateFormat 是线程不安全的类 ,在使用的时候应当注意线程安全问题,如下: 其实之前已经介绍过使用JDK1.8的DateTimeFormatter 和LocalDateTime来处理时间了,'>还在用SimpleDateFormat?Java8都发布N年了,转LocalDateTime吧.今天,就来说说SimpleDateFormat的线程安全问题. SimpleDateFormat是非线程安全的 时间处理,基本所有项目上都是需要…
SVN是协同开发的,版本控制器,就是几个人同时开发,可以提交代码到SVN服务器,这样就可以协同开发,一般是早上上班首先更新下代码,然后自己修改代码 工作一天之后,修改代码之后,下班之前,更新代码,然后提交代码. 现在问题来了,微信开发比如把代码提交到自己的服务器,然后运行起来,这样微信公众号,才能运营相应的功能. 那么SVN服务器的代码是怎么才能跟Apache的www目录同步呢?其实这个是SVN与FTP同步的实现. 就是SVN提交代码到SVN服务器之后,然后SVN服务器检测到发生变化,马上利用钩…