http://a.icharm.me/wp-content/uploads/2018/09/豆芽图片20180925090455742.jpg

笛湖

利用BeanUtils.copyProperties实现Java Pojo的单元测试覆盖

Java Pojo及普通的javaBean类,里面都是private 元素和Getter、Setter、toString等方法,我更喜欢把它称之为数据模型类(Model)。 在Java项目一般都有大量的Pojo类文件,如果对他们一个一个的进行单元测试的覆盖就很枯燥,也没有意义。下面就使用Spring 的BeanUtils.copyProperties方法来实现自动的测试覆盖。 基本思路是这样子的,利用BeanUtils.copyProperties对两个Pojo类实例的属性copy,这个过程会分别调用两个实例的Getter和Setter方法,从而实现Getter和Setter方法的覆盖,加上使用反射获取所有的类对象。 package com.icharm.pojo.test; import org.springframework.beans.BeanUtils; import org.springframework.core.io.Resource; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.core.io.support.ResourcePatternResolver; import org.testng.annotations.Test; import java.util.ArrayList; import java.util.List; public class BeanDmoTest { String CLASSPATH_ALL_URL_PREFIX = "classpath:"; @Test public void beanTest() throws Exception { List list = new ArrayList(); list.add("com.xxx.a.dto"); list.add("com.xxx.b.dto"); list.add("com.xxx.c.dto"); for (String path : list) { // 包名转路径 path = path.replaceAll("\\.", "\\/"); String packageSearchPath = CLASSPATH_ALL_URL_PREFIX + path + "/**/*.class"; // 获取所有的Pojo类 ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver(); Resource[] resources = resourcePatternResolver.

Thymeleaf布局踩坑

Thymeleaf模板引擎第一次使用,之前用过的都是freemarker,结合Spring boot记录一下初次使用时遇到的一些小坑,主要是路径和包名的一些问题。下面将记录使用thymeleaf的layout布局方式展现web内容的整个过程。 Build with Maven Thymeleaf有两种布局的方式,第一种是使用 th:include 和 th:replace这种的形式,第二种是使用layout:decorate这种。 本文使用第二种,需要引入thymeleaf-layout-dialect这个包,否则layout:decorate这种布局方式不会生效(踩到的第一个坑) <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId> nz.net.ultraq.thymeleaf</groupId> <artifactId>thymeleaf-layout-dialect</artifactId> </dependency> ViewModel 这里对html模板进行了一个封装,使其可以更加灵活方便地使用,就是一个POJO类,对Template中变动的内容进行定义,在提供一个返回ModelAndView对象的方法。 package me.icharm.orange.ViewModel; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.apache.commons.beanutils.BeanUtils; import org.springframework.web.servlet.ModelAndView; import java.util.Map; /** * @author elias * @email [email protected] * @date 2018/11/21 17:40 */ @Data @Slf4j public class WeuiResultPage { /** * 视图模板路径 */ public String path = "weui/result_fragment"; /** * 图标 */ private String icon; /** * 标题 */ private String title; /** * 内容 */ private String content; /** * 绿色按钮名称 */ private String btnPrimary; /** * 白色按钮名称 */ private String btnDefault; /** * 绿色按钮事件 */ private String btnPrimaryAction; /** * 白色按钮事件 */ private String btnDefaultAction; /** * This object convert to ModelAndView object.

IDEA根据数据库表结构生成Model类(POJO)

idea自动的脚本可以将一个数据的表结构自动生成模型类,变量名采用驼峰命名方式。下面是一个简单的系统参数表创建的sql: create table system_parameter ( ID bigint auto_increment comment '主键' primary key, SKEY varchar(32) not null comment '键名', SVALUE varchar(256) null comment '键值', REMARK varchar(256) null comment '备注', OPERATER varchar(20) null comment '操作人', CREATE_TIME datetime null comment '创建时间', UPDATE_TIME datetime null comment '更新时间', constraint UK_SYSTEM_PARAMETER unique (SYS_KEY) ) comment '系统参数表' charset = utf8; 自动生成该表对应的dmo类,操作如下: 1.表名上右击 - Scripted Extensions - Generate POJOs.groovy 1 然后选择保存的位置。 改进的Script Idea自带的script已经很强大了,但是如果想把表中注释信息,自动注释到dmo类上面,就需要使用下面的script。 import com.intellij.database.model.DasTable import com.intellij.database.model.ObjectKind import com.

Spring boot redis 使用踩坑

连接失败 windows下开发spring boot项目,需要使用redis服务代替session工作,所以直接使用homestead的虚拟机来提供数据库、redis服务等,免去自己配置各种服务的麻烦,redis服务本来使用laravel连接的时候一切正常,但是换到使用spring-boot-redis连接就提示连接被主机中的其他软件关闭,然后一直在reconnect,错误如下: 2018-08-30 15:35:05.969 ERROR 8892 --- [0.0.1-80-exec-1] m.i.o.C.Common.CommonController : org.springframework.data.redis.RedisSystemException: Redis exception; nested exception is io.lettuce.core.RedisException: java.io.IOException: 您的主机中的软件中止了一个已建立的连接。 2018-08-30 15:35:06.038 INFO 8892 --- [ioEventLoop-4-3] i.l.core.protocol.ReconnectionHandler : Reconnected to 127.0.0.1:60030 2018-08-30 15:35:06.138 INFO 8892 --- [ioEventLoop-4-4] i.l.core.protocol.ReconnectionHandler : Reconnected to 127.0.0.1:60030 2018-08-30 15:35:06.241 INFO 8892 --- [ioEventLoop-4-1] i.l.core.protocol.ReconnectionHandler : Reconnected to 127.0.0.1:60030 2018-08-30 15:35:06.338 INFO 8892 --- [ioEventLoop-4-2] i.l.core.protocol.ReconnectionHandler : Reconnected to 127.0.0.1:60030 2018-08-30 15:35:06.439 INFO 8892 --- [ioEventLoop-4-3] i.

Ryzen+Rx580安装MacOS High Sierra 10.13.2

9月份的时候组装了一台电脑,本来是Ryzen5+GTX1066,也尝试装过黑苹果,但是GTX1066在MacOS表现不是很好,性能丧失严重就不说了,关键是整个系统都没有那么流畅,还不如的笔记本的黑果,所以后面就没有继续弄了,机缘巧合的情况下,在闲鱼上和一位大兄弟互换了显卡,GTX1066换RX588,他买的早几个月,但是最近RX588可是又被矿老板炒上了天,说实话,我还有一种赚到的感觉!? 有了Rx580马上又忙活起黑果,这次的装完后的效果不错,很流畅。不过还是有一些问题,大体还是不错了! 配置 CPU: AMD Ryzen 5 1600x 主板: 技嘉AB350M Gaming 3 显卡: 蓝宝石 Rx580 8G 无线网卡: BCM94360(转PCI,蓝牙接USB) 有线网卡: Realtek® GbE网络芯片 (10/100/1000 Mbit) 声卡: Realtek® ALC887 系统报告 1 工具 Mac一台或者黑苹果电脑一台,系统必须是10.11.6及其以上,不然无法制作high Sierra安装U盘。 2.Clover_v2.4k_r4359 Clover Configurator 2 4.AMD破解内核等 所有工具的下载地址:https://pan.baidu.com/s/1eea5uB79oskyseQE0XVWSg 密码:4lco BIOS设置 AMD-V / SVM = Disabled (AMD虚拟化技术,安装成功后可以打开, 如果找不到可以查看:[技嘉AB350主板开启Ryzen CPU 虚拟化支持][1]) SATA Ports = AHCI IOMMU = Disabled HPET = Enabled EHCI Hands-off = Enabled XHCI Hands-off = Enabled Serial Port = Disabled Parallel Port = Disabled 制作安装U盘 制作原版的安装U盘,需要在Mac下操作,首先在App Store下载High Sierra.

技嘉GIGABYTE B350M Gaming 3 关闭 secure boot

基本信息 主板: 技嘉 AB350m Gaming 3 BIOS Version: F7a 一直在找这款主板的secure boot选项,每次都没找到,联系技嘉客服,竟然回答我说没有!,还好google到一位国外的小伙找到了这个选项,发现这个设计真的有点操蛋。 步骤如下: 开机 F2 进入bios BIOS - Window 10 Features 设置为windows 10 CSM Support 选项出现了,设置其为 Disabled 然后 Secure Boot 在最后一行出现了 Fuck隐藏的够深的 Tip win10 feature 设置为win10后,win7开不了机, 这个选项还要还原为other os 2018.1.6 更新: BIOS version f10 之后取消了Windows 10 Feature这个选项,而是直接显示CSM Support,当CSM为enable时(兼容模式打开)Secure Boot默认关闭,不显示,当CSM为disabled时,Secure Boot选项才会出现 1 2 3 4