自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(103)
  • 收藏
  • 关注

原创 logback配置显示类名、方法名和代码行号

概述logback日志配置了输出格式,但是日志输出中为“?.?(?)”,这位调试问题造成了很大的影响。配置光有以下配置,还不行, 还需要添加“AsyncAppender”。AsyncAppender <appender name="info" class="ch.qos.logback.core.r

2017-03-07 15:01:37 26343

原创 spring boot中通过开发jar包,检查目标应用的注解的非法使用

背景在spring boot工程中,@FeignClient和@RequestMapping可能被错误得加到同一个方法上,当用户这么使用的情况下,如何能够在程序启动的过程中警告用户并抛出异常呢?本文将给出这个问题的解决方法。思路通过提供一个jar包,任何引入该jar包的应用在启动过程中自动执行注解使用检查jar包需要添加一个Listener,监听应用启动的过程,执行检查工作

2016-12-16 14:24:12 1858

原创 spring boot连接eureka的时候,statusPageUrlPath、healthCheckUrlPath的配置

---spring: profiles: same.portserver: port: ${SERVER_PORT:8089} context-path: ${SERVER_CONTEXTPATH:}management: context-path: ${MANAGEMENT_CONTEXTPATH:} port: ${MANAGEMENT_PORT:${server

2016-11-21 21:06:23 10763

原创 lambdas in java8 --invokedynamic

java 中的“函数指针”: invokedynamic

2016-11-14 11:27:26 513

原创 spring配置静态文件

前言css,js等静态文件应该被配置为可以直接访问,使用来配置,但该配置依赖,二者在配置在一起时才能够正常运行。 问题当没有配置配时,虽然静态文件可以不被默认servlet拦截,但是servlet自身的所有配置(controller)将失败,报servlet找不到对应的url-mapping。 spring mvc servlet

2016-08-24 20:03:25 415

原创 mybatis-spring:MapperScannerConfigurer、MapperScannerConfigurer

前言Mybatis逆向工程可以生成pojo类、Mybatis配置文件、dao。另外需要一个Mybatis的配置文件将这些生成的代码进行整合。配置 SqlSessionFactoryBean在spring上下文中实例化一个共享的Myba

2016-08-24 11:17:46 1005

原创 mybatis mapper文件在编译后丢失

前言在进行spring mvc, Mybatis工程开发时,mapper文件由逆向工程自动生成,此时在编译时mapper文件会丢失。解决在pom文件中添加如下配置,就可以将mapper文件也一并编译打包。 src/main/java **/*

2016-08-22 19:00:06 3405 1

原创 使用mockserver来进行http接口mock

前言进行单元测试时,必须要mock掉第三方的依赖调用,而mockserver提供了足够的api来支持这种http的mock,现在简单介绍如何使用mockserver进行http接口mock。依赖mockserver依赖dependency> groupId>org.mock-servergroupId> artifactId>mockserver-nettyarti

2016-08-17 06:49:14 28261 2

原创 jacoco覆盖率统计分析

前言近期在做了些单元测试相关的工作,包括单元测试的规范和一些开发方法。同时也花了一天时间做了下代码覆盖率统计的调研,发现jacoco还是比其他工具比如emma方便,统计点更加丰富。比如指令覆盖、分支覆盖、圈覆盖、行覆盖、方法覆盖等。这篇文章就简单分析一下这些统计点的统计方法和区别。指标Instructions:指令覆盖,字节码中指令。Branches:分支覆盖,用钻石表示。

2016-08-11 18:39:01 3762 1

原创 idea使用问题

今天遇到个奇怪的问题,idea的restart server和redeploy都不能更新工程,后来发现是make这一步根本就没有成功。至于为什么不成功,还没搞清楚。

2016-08-09 20:37:56 500

原创 单元测试事务回滚.md

背景单元测试需要具备能够重复运行、随时运行、可靠、case之间完全隔离、和第三方系统解耦等特性。case之间完全隔离需要做好数据准备和case断言后的数据清理操作,而事务可以让数据恢复变得异常简单。实现方式定义测试基类public abstract class BaseTestNew extends AbstractTransactionalDataSourceSpringContextTests

2016-07-25 14:42:56 2621

转载 借助BeanFactoryPostProcessor修改spring配置文件

public class MybatisTestPostProcessor implements BeanFactoryPostProcessor { public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { DataSou

2016-07-08 13:48:20 1062

转载 CountDownLatch

package moco;import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** * Created by leo on 16/7/7. */public class CountD

2016-07-08 10:18:54 268

原创 单元测试设计原则

背景为了提高开发人员的代码质量,编写高质量的单元测试,要遵守3R(Responsible, Reliable, Repeative)原则,具体含义如下:Responsible: 谁开发谁负责测试,在哪里开发就在哪里测试。Reliable: 测试case要可靠,并且是值得信赖的,对于底层的任何改动都要能够及时感知。Repeative: 所有单元测试用例都要能够重复运行。能够重复运行就

2016-07-06 10:11:21 4594

原创 dbsetup实现数据准备和清理工作

背景:单元测试的一个基本要求是要所有测试case都能够重复的运行(repeative), 不能够重复运行的case就不可以进行测试用例的持续集成,也不能用于回归测试。而要实现重复运行,就不能让某一次的case运行对数据库造成污染,这就要求我们在运行case前后做一些数据清理的准备工作,目前发现有两种工具可以实现该需求,比如dbunit、dbsetup,dbunit是基于xml、sql文件等进行

2016-06-16 12:20:25 1821

原创 junit-dataprovider使用举例

在junit单元测试中使用类似testng dataprovider的功能。

2016-06-07 14:04:37 3789

原创 python passlib生成Hash密文并进行验证--Hash a password with passlib

encrypt() - generate new salt, return hash of password.verify() - verify password against existing hash.from passlib.hash import sha256_cryptpassword = sha256_crypt.encrypt("password")passw

2016-06-03 08:14:03 4340 1

原创 idea自动生成junit测试代码配置

idea配置junit自动生成case工具

2016-06-02 22:07:40 4976

原创 多线程入门--synchronized介绍

线程安全非线程安全主要是指多个线程对同一个对象中 的同一个实例变量进行操作时会出现值被更改、值不同步的情况,进而影响程序的执行流 程。

2016-05-18 11:03:08 312

原创 java动态编译

自动生成代码的一个小工具中要通过创建一个Service.java源文件,然后对该源文件进行编译生成对应的class文件,之后通过反射调用Service.java的所有声明方法。自动生成的代码的功能是对每个Service.java的方法进行对应的case和data的自动生成。

2016-05-11 17:15:27 516

原创 sed进行文件简单处理

有一个名为user的文件,内容如下: Leo:456:7890:11 Vincent:333:43434:2 Rack:4343:4343:22 Leo:444:33:4343 Rack:1:1:11)提取第二列的值并对其进行排序;2)找出第二、三、四列之和的最大值;3)对文本内容按照第二列降序排序。答案:1) awk -F ":" '{print $2}' u

2016-05-04 11:28:29 456

原创 memcached & redis基本操作

memcached安装与连接使用docker进行启动:docker run -p 11211:11211 -d --name memcached memcached使用telnet 进行连接:telnet 10.141.4.25 11211常用操作存储命令setset key flags exptime

2016-04-28 16:59:37 6521

原创 memcached基本操作

java连接memcached的常用操作, set, get, gets, cas, add, replace, append, prepend, delete, incr, decr, shutdown:public class MemcachedDemo { public static void main(String[] args) throws ExecutionExcepti

2016-04-27 14:35:01 573

原创 python 批量下载文件

主要功能:登陆一个需要权限的页面,对页面进行解析下载所有列表下的文件到本地目录。#!/usr/bin/python2.7#encoding=utf-8import urllib2from bs4 import BeautifulSoup# create a password managerpassword_mgr = urllib2.HTTPPasswordMgrWithDefaul

2016-04-26 18:53:46 2150

原创 客户端字符串编码导致的服务器端诡异问题

背景:HttpClient进行一个http接口的测试,分别测试两个服务器的统一接口,其中的一个是乱码, 另一个正常。Server1正常返回:API接口,用户开户----开始,passportId:Y20160414000000003 userName:马 userNameHex:E9A9ACE7BBA7E5B9B3Server2异常返回:API???????----??,pas

2016-04-15 19:28:29 983

原创 docker构建jenkins镜像和容器

背景:我们从官方pull和启动的jenkins容器是没有git等重要插件的,因此我们需要在Dockerfile中添加镜像制作的相关插件配置。同时,在制作好镜像并启动这些带有git插件的镜像后从新提交这个镜像,结果启动新image后容器里的git插件和其他一些配置修改全部丢失。stackoverflow答案:http://stackoverflow.com/questions/36617288/

2016-04-14 17:12:01 1488

原创 python Basic Authentication

有时候我们需要python解析一些页面,实现自动化监控的功能。而这些页面一般需要用户输入username,password进行基本的验证,这时就需要我们使用python基本的认证功能。现已python抓取dubbo-admin的服务页面进行举例:# create a password managerpassword_mgr = urllib2.HTTPPasswordMgrWithDefau

2016-01-03 12:25:38 2955

原创 scala 基础

基本命令安装:brew install scalascala:进入scala console:q:退出scala console编译: scalac ScalaTutorial.scala运行: scala ScalaTutorial实例object ScalaTutorial { def main(args: Array[String]) {

2015-09-22 18:40:19 420

原创 多git服务器ssh秘钥配置

背景:我想通过我的笔记本同时设置github和公司gitlab的ssh秘钥登陆,两个服务器的登陆邮箱地址是不同的,我如何设置两套ssh密钥对?如果已经能够成功通过ssh登陆公司的gitlab,现在配置通过领一个邮件账号登陆github。1. cd ~/.ssh2. ssh-keygen -t rsa -C 'zhixiangjin@mail.com' -f id_rsa

2015-08-04 20:16:05 541

原创 linux csplit命令进行日志文件分割和重命名

Jan 01 This the log of this day.Jan 01 This the log of this day.Jan 01 This the log of this day.Jan 01 This the log of this day.Jan 01 This the log of this day.Jan 01 This the log of this da

2015-05-27 00:42:20 1415

原创 svn使用

1.svn checkout, svn copy都会改变

2014-10-19 21:48:44 367

转载 svn用法

So you are working on this humongous project and its that time when everyone in the teamhas to start working on different modules or functionalities. The way to proceed is to createmodule bran

2014-10-17 01:23:44 351

原创 大讲堂项目总结

1. @Component, @Service等标注的组件在web初始化的时候就进行了实例化

2014-09-23 13:57:59 677

原创 json block

{ "data": { "userId": "yuliang.jin", "subscriptionsBySpeaker": [ { "speakerId": "1", "speakerName": "张露" } ],

2014-09-16 15:19:46 502

原创 logger字符串组合

try { fileBiz.deleteFile(filePath); } catch (Exception e) { logger.debug("删除文件{}出错, id: {}, path: {}", mediaDHO.getFileName(), mediaId, filePath, e); }

2014-09-13 21:09:51 702

原创 JUnit 4 with Hamcrest

A good starting place is the assertThat() method that can now almost always be used in place of the traditional assertEquals(). assertThat() can be found in org.junit.Assert, but it defines using Hamc

2014-08-26 12:42:15 616

原创 linux shell

#!/bin/shfor line in $(cat all_files.txt)do if [ -f "$line" ]; #A folder like /tmp/a/b is also true for -e, there is a whitespace before and after "-f". then sed 's/abc/def/g' $line >> ${line%.*

2014-08-25 21:24:26 403

原创 Bash Shell:判断文件是否存在

#!/bin/bashfile="/etc/hosts"if [ -f "$file" ]then echo "$file found."else echo "$file not found."fi

2014-08-25 18:20:07 786

原创 junit

我们先来看一个测试case: @Test public void test3() { ArrayList strings = new ArrayList(); strings.add("a"); strings.add("d"); strings.add("c"); strings.add("b");

2014-08-25 16:22:20 609

原创 h2数据库数据查看

如果想要查看数据库信息,可在web.xml文件中加入如下配置: H2Console org.h2.server.web.WebServlet 1 H2Console /memerydb/console/* 浏览器中输入:http://localhost:8080/memerydb

2014-08-25 08:54:12 3427

空空如也

空空如也

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

TA关注的人

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