自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

rainbow702的博客

多看,多学,多“打怪”,技能才会升得快~

  • 博客(444)
  • 资源 (3)
  • 收藏
  • 关注

原创 安装 gitlab-runner

公司的 gitlab 之前一直都有相应的 runner 可供使用的,但是最近机器迁移之后,就没人重建 runner 了。所以,我就自己借了台虚机来安装 gitlab runner 来做 CI。 前提操作环境:CentOS 7gitlab 版本: GitLab Community Edition 8.12.4安装过程使用的用户: root大概步骤如下: 添加 repository (Ad

2017-04-06 16:34:47 15707 2

原创 通过 IDEA 去 Debug Jar包

代码打成Jar之后,要如何进行Debug呢? 下面以 IDEA 来例进行说明: 首先,以以下方式来启动 Jar包java -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=y -jar test.jar启动之后,你会发现,有如下提示:Listening for transport dt_socket at

2017-03-20 16:09:16 23808 7

转载 MyBatis无法扫描Spring Boot别名的Bug

这个问题发生的原因比较复杂,主要条件有4个:使用Spring Boot,并使用Spring Boot的Maven插件打包使用MyBatis(目前最新的 3.3.1 版本仍有这个问题)将Domain配置在单独的Jar包中(例如Maven多模块)使用 SqlSessionFactoryBean.setTypeAliasesPackage 指定包扫描Domain然后你会发现:在开发时直接使用ID

2017-03-18 16:05:21 10580 8

原创 通过 Java 去监测某个目录下的文件变动

最近处理了一个需求,大概是这样的:己方搭建好FTP服务器对方往该服务器的指定目录(假设叫 目录A)上传文件己方需要将对方上传好的文件解析并更新到数据库中己方对 目录A 只有 “读”的权限,即,不能对 目录A中的文件进行删除、重命名、移动等操作。对于这个需求,我一开始想出的 解决方案 是:开启一个线程,定期去读取 目录A 下的所有文件将每两次读取的文件列表进行对比,新出现的文件名对应的文

2017-03-18 15:29:38 7956 2

原创 Postgresql 配置远程访问, 以及 虚拟机访问物理机上的postgresql 的ip配置

测试环境:物理机一台,安装了 Postgresql 9.6 的服务,并已启动 虚拟机一台(在上面的物理机上,使用 VMware 搭建)物理机与虚拟机可以互相 ping 通通过下面的配置,来允许远程的机器连接到我的 Postgresql 服务postgresql.conf 将该文件中的listen_addresses项值设定为“”,在9.0 Windows版中,该项配置已经是“”无需修改。

2017-03-10 17:22:07 4791

原创 JDBC API getTables()、getColumns() 中,通配符进行转义的问题

在我的 使用 JDBC API 获取 Mysql 的 表字段 时,返回为空 的解决方案 这篇Blog中,提及到了如何使用 JDBC API 来获取 column 的信息。但是,当时没有讲到一个注意点,现在补充一下。在 getColumns() 这个API中,它的4个参数的注释如下: catalog - a catalog name; must match the catalog name

2017-03-02 10:12:36 8435

原创 使用 JDBC API getColumns() 获取 Mysql 的 表字段时,返回为空 的解决方案

针对 Mysql 数据库,考虑下面这种场景用户 A ,创建了一个 database,取名为 test,test中有一个表,叫 tab001test 的 jdbc url 则为: jdbc:mysql://localhost:3306/test用户 B ,创建了一个 database,取名为 demo,demo中有一个表,叫 tab002demo 的 jdbc url 则为: jdbc:mys

2017-03-02 09:55:51 7149

原创 针对不同数据库,获取当前用户所有有权限查看的表,以及表的创建时间、更新时间、注释等信息,表中字段的相关信息(包含分页实现)

最近在处理一个需求,需求是这样的:给定任意一个数据库的JDBC连接、用户名、密码查询出所有有权限访问的表的相关信息:表名,创建时间,更新时间,注释要支持分页数据库类型有:MySQL、GBase、Oracle、DB2、Greenplum、Hive本来还有 HDFS和Kafka的,但是后来去掉了。我自己平时主要使用的是 mysql, 所以,对于 mysql 而言,这个需求还是比较好处理的。但

2017-03-01 19:17:27 7995

原创 Java 中 转换 CST 时间为 Date 对象

今天遇到一个需要把 Wed Mar 01 10:47:12 CST 2017 这种类型的字符串转化为 Java 的 Date 对象,我参照 SimpleDateFormat 类中的说明,直接写了下面的 代码:private static final String DATE_FORMAT = "EEE MMM dd HH:mm:ss z yyyy";new SimpleDateFormat(DATE_

2017-03-01 17:04:08 12474 2

原创 Mysql 5.7 中如何禁用 密码检测插件(validate password plugin)

安装了5.7的msyql之后,在为 root 用户修改密码 或者 新增用户时,都会碰到一个问题,就是密码的强度不够。这是因为,5.7版本中,默认安装了一个叫 validate password plugin 的插件,它会要求:MySQL's validate_password plugin is installed by default. This will require that passwor

2017-02-27 16:04:56 12291

原创 Mysql(5.7)设置字符集为UTF-8

之前在使用Mysql 5.1 版本的时候,是通过在 /etc/my.cnf增加如下配置来设置字符集的: 但是今天在 5.7 版本上使用同样的方式时,导致 mysql 无法启动,日志文件 /var/log/mysqld.log 中一直报错:unknown variable 'default-character-set=utf8'问题就在 mysqld 中的 default-character-set

2017-02-27 15:52:36 31150 1

原创 Java文件下载相关设置

每当遇到文件下载时,总是想不起来需要给 Response 设置哪些 Header,这次干脆记录下来,方便以后查询:response.addHeader("Content-Disposition", "attachment;filename=" + fileName); response.setContentType("application/octet-stream");其中:fi

2017-02-25 15:20:19 1915

原创 Oracle 中,获取指定用户所有有权限访问的表的基本信息、分页实现

查询由指定用户创建的表SELECT * FROM ALL_OBJECTS WHERE OWNER='用户名' AND OBJECT_TYPE='TABLE'或者SELECT * FROM USER_TABLES但是上面这两种方式获取的 表 全部是由这个用户创建的表。但是,试想一下下面这种情况:用户A 有一张表 tableA用户B 有一张表 tableB用户A将tableA的权限开放给了 用户

2017-02-25 14:01:03 2357

原创 Spring MVC中,通过Java代码读取资源文件时,发生乱码的解决方法

Spring MVC中,通过Java代码读取资源文件时,发生乱码的解决方案

2017-02-22 16:56:17 2717

原创 使用 聚合函数(aggregate function)时,SQL语句的返回值的注意事项

假设有如下一条SQL语句SELECT AVG(xuo.`attach_succ_rate`) AS `attach_succ_rate`FROM `xdr_user_oriented` AS `xuo`WHERE xuo.`id` < -1 其中 xuo.`id` < -1 这个条件,正常情况下,肯定是不会满足的(没有哪个数据库的 id 是比 0 小的)。 所以,我

2017-02-21 19:49:14 9485

原创 在本地搭建 SVN仓库 和 git 仓库 (仓库仅限在本地使用)

作为一名程序猿,可能大家都遇到过这种需求: 自己在业余时,出于某些目的(比如,学习、私活 ;) 等)写了一些代码,想进行版本控制,以备将来不时之需。 自己的一些资料,可能需要时常更新,但又想保留历史版本(比如我自己,就有一份专门记录所有常用密码的txt文件) 对于这种需求,我们自然而然的会想到一些 VCS (Version Control System)来实现。就我自己的实践而言

2017-02-14 17:19:45 4415

原创 将 Spring boot 项目打成可执行Jar包,及相关注意事项(main-class、缺少 xsd、重复打包依赖)

最近在看 spring boot 的东西,觉得很方便,很好用。对于一个简单的REST服务,都不要自己部署Tomcat了,直接在 IDE 里 run 一个包含 main 函数的主类就可以了。但是,转念一想,到了真正需要部署应用的时候,不可能通过 IDE 去部署啊。那有没有办法将 spring boot 的项目打包成一个可执行的 jar 包,然后通过 java -jar 命令去启动相应的服务呢?很明显,

2017-02-14 11:33:00 38982 5

原创 Spring Boot 不使用默认的 parent,改用自己的项目的 parent

在初学spring boot时,官方示例中,都是让我们继承一个spring的 spring-boot-starter-parent 这个parent:<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>

2017-02-13 11:22:10 49524 1

原创 Spring MVC下,RESTful风格 与 静态资源(static resource)路径映射问题

在使用 Spring 做 REST 接口开发时,大家对配置可能都很熟悉,如下:<servlet> <servlet-name>mvc-dispatch</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>

2017-02-06 17:58:05 5264

原创 List 快速删除连续的多个元素

现假设有下面这个List:List<Integer> list = new ArrayList<>();list.add(1);list.add(2);list.add(3);list.add(4);如果我想把 2 和 3 这两个元素从该List中移除,大家的第一想法可能是:list.remove(1);// 此处为啥还是 1 ,这个应该不用解释了吧list.remove(1);这样做,

2017-02-06 10:31:29 7107

原创 Linux 下安装最新版本的 Mysql (官方安装方式)

之前使用的 Mysql 都是直接使用的安装在服务器上的,今天想在本地尝试安装一下最新版的msyql,结果,在看到官网上的下载列表时,直接懵B了,不信你看: 对于没怎么装过mysql的人来说,这得怎么下手啊?还好,我机智了一把,觉得官网肯定有安装说明文档的。 不找不知道,一找找到宝。从官网的说明来看,它现在直接提供了 repo 源,可以下载最新的版本进行安装。(注意:系统自带的 repo 源不一定

2017-01-22 11:19:41 5397

转载 网线/水晶头 制作 说明图

最近在做网络,从网上找了几张截图,比较有用,有需要的,可以参考一下

2017-01-17 13:04:35 703 1

转载 Linux统计文件行数

语法:wc [选项] 文件…说明:该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所有指定文件的总统计数。字是由空格字符区分开的最大字符串。该命令各选项含义如下:- c 统计字节数- l 统计行数- w 统计字数这些选项可以组合使用。 输出列的顺序和数目不受选项的顺序和数目的影响。 总是按下述顺序显示并且每项最多一列: 行数、字数、字节

2017-01-17 09:27:20 2399

原创 myBatis 返回 int 类型时,报 null 异常

写了一个下面的SQL,用来check**time**在表中存不存在的:<select id="checkTimeExist" resultType="int"> SELECT 1 FROM dual WHERE EXISTS ( SELECT 1 FROM `performance` AS p W

2017-01-14 12:48:10 3086

原创 MyBatis 中如何调用 Java 的 enum (枚举) 字段

事先作成一 enum,如下:public enum CityCode { ALL("000"), BEIJING("010"), SHANGHAI("021"), private String code; CityCode(String code) { this.code = code; } public String val() {

2017-01-12 20:02:39 8046 1

原创 Spring MVC 中,自动加载 JSON 转换器

在 RESTful接口 盛行的现在, 让接口返回 JSON 格式的字符串,已经成为了大家几乎共同的选择。 之前的项目,通过 Spring 来实现了 RESTful,接口返回的就是 JSON的。而且,我一直以为,只要在spring的xml配置文件中开启了<mvc:annotation-driven /> 之后,系统就会自动加载 MappingJackson2HttpMessageConverter

2017-01-07 23:36:17 1238

转载 Spring MVC 中,<mvc:annotation-driven /> 标签的注意点

<mvc:annotation-driven /> 是一种简写形式,完全可以手动配置替代这种简写形式,简写形式可以让初学都快速应用默认配置方案。 <mvc:annotation-driven /> 会自动注册 DefaultAnnotationHandlerMapping 与 AnnotationMethodHandlerAdapter 这两个bean, 它们是 Spring MVC 为

2017-01-07 23:28:25 3463

原创 Maven集成Findbugs至compile阶段(excludeFilterFile 属性必须配置在 plugin 节点下)

最近在对代码作检测,使用到了findbug插件。每次检测都是手动检测,而且都是事后想起来才检测一下。 后来,想想有没有强制每个在提交代码的时候,使用findbug检测一下呢。 由于项目是使用maven打包编译的,所以,自然而然的就想到,findbug应该也有maven的插件吧。 于是,查了一下,的确有,: )。先直接上配置吧。<build> <pluginManagement>

2017-01-06 14:59:35 5700 4

原创 Spring 从同一个类中的某个方法调用另一个有注解(@Transactional)的方法时,失效的解决方案

考虑有下面这么一个类public class Foo { @Transactional public void bar() { /* … */ } public void baz() { this.bar(); }}可能会有不少人会跟我一样,觉得上面这种方式调用 baz()方法时,bar()上的@Transactional注解还是会起作用的,即bar(

2016-12-28 12:46:52 22120 2

原创 Mybatis 中 order by 排序失败的解决方法

在 mybatis 的 xml中,为一个SQL语句配置order by 子句时,需要这个排序的字段是前端传递过来的,而且排序的顺序(升序 OR 降序)也是由前端传递过来的。对于这种需求,我起初写成了下面这样:ORDER BY `#{condition.field}` #{condition.sortRule}然后,预计它的输出应该是类似于下面这样的ORDER BY `user_name` DESC但

2016-12-28 11:09:29 13933

原创 myBatis中,对大于号、小于号等特殊字符 的转义

今天在myBatis的xml文件中写SQL语句时,有一个where条件需要使用”>”和”<”符号,我就直接写了这两个符号,但是发现执行的时候会报错。 然后,想了一下,估计是这两个符号与 xml 文件的 “<”、”>” 发生冲突了,导致 myBatis 无法正常解析解析。 那么,自然而然的就是想到,把这两个符号进行转义啊,转义的方式有两种: 方式一 使用“CDATA”<![CDATA[

2016-12-22 13:44:00 8855 2

原创 Spring REST Controller,在GET方式下,有多个参数时的处理

现在越来越多的服务都转向使用RESTful了,我们的项目也不例外,使用spring来做了REST。在采用RESTful的时候,我们会严格按照约定来使用 HTTP METHOD:GET: 查询 POST: 创建PUT: 修改DELETE: 删除本来,按照这种方式来做的时候,开发都很方便。不过,最近遇到一个问题: 在一个查询接口中,需要的参数比较多,如果还是使用GET方式进行请求的话,那么

2016-12-20 20:30:37 47664 6

原创 Retrofit 设置 超时时间

现象在代码中,通过retrofit 框架发送请求去调用其他系统中的 REST 接口时,正常情况下,都没有啥问题。 但是今天碰到一个问题是,在发送一个请求时,过了10秒钟之后,系统就报SocketTimeout这个异常。每次报这个异常的时候都是10秒钟的时候报的。解析既然超时时间这么有规律,那么,肯定是在哪边设置了超时时间。带着这个疑问,稍微翻了一下源码,就找到了. 首先,我的 retrofit

2016-12-09 21:49:13 24207 4

原创 Ajax 以GET方式请求时,参数中包含 "#" 特殊字符的处理

Ajax 以GET方式请求时,参数中包含 “#” 特殊字符的处理Ajax 以GET方式请求时参数中包含 特殊字符的处理现象分析解决方法一方法二提示现象在使用 jquery 的ajax调用后台的接口时,如果是get方式的话,当参数中含有”#”这些等对于URI而言有着特殊含义的符号时,发现“#”字符后面的信息全被裁掉了。 比如:var url= "xxxx?name=" + "wz#aaa

2016-10-29 09:29:36 13389 2

原创 解决 Tomcat java.lang.OutOfMemoryError: PermGen space

近来在启动一个web项目时,Tomcat报了以下的异常java.lang.OutOfMemoryError: PermGen space 一眼看来,应该是Tomcat使用的JDK的永久代内存不够,所以,那么给JDK加内存呗。给tomcat指定内存可以参照以下两种方式:修改 TOMCAT_HOME/bin/catalina.shJAVA_OPTS="$JAVA_OPTS -server -XX:Pe

2016-09-12 17:48:00 2373

原创 Spring AOP @Before @Around @After 等 advice 的执行顺序

Spring AOP 中 @Before @Around @After 等 advice 的执行顺序用过spring框架进行开发的人,多多少少会使用过它的AOP功能,都知道有@Before、@Around和@After等advice。最近,为了实现项目中的输出日志和权限控制这两个需求,我也使用到了AOP功能。我使用到了@Before、@Around这两个advice。但在,使用过程中,却对它们的执行

2016-08-11 19:37:06 111543 40

原创 使用 Spring 的 AOP 机制来输出 Log

使用 Spring 的 AOP 机制来输出 Log

2016-07-28 11:49:48 5863

原创 default browser

最近,不知道360从哪个版本开始,在设置系统默认浏览器的功能中,竟然将 chrome 排除在外了,导致无法将chrome设定为默认浏览器了。见下图:而且,即使用chrome自身的设定为默认浏览器的功能设定之后,也不启作用,系统默认打开的还是IE。如下图: 那么该如何来修改系统的默认浏览器设置呢?这时我就想到了通过注册表来实现这个目的。 步骤如下:点击开始,点击运行(或者 按 windows +

2016-07-11 08:30:13 2813 1

原创 服务器上只安装一份Tomcat,如何部署多个应用,要求每个应用使用不同的端口

最近项目集成调试,有多个系统要部署在同一个Tomcat上,但要求不能使用同一个端口号,这该如何实现呢? 刚好我之前有在《Tomcat权威指南》这本书上有看到这个需求的说明,所以,我就又回头翻了一下那书,把步骤整理了一下,发上来供大家参考 。 本次试验基于以下环境:操作系统: CentOS7Tomcat版本:8.0.30Tomcat安装路径:/opt/apache-tomcat-8.0.30

2016-07-03 00:12:13 3548 1

原创 power mock 入门介绍及使用示例

相关框架JUnit4、Mockit、PowerMock 相关maven依赖<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope></dependency><dependency>

2016-06-29 15:20:51 33350 1

Java国际化的工具 propedit

用于Java国际化的工具

2016-03-20

JBoss 引用 module 说明(重新上传)

JBoss 引用自定义 Module 的示例

2016-03-19

JBoss 引用 module 说明

JBoss 引用自定义 Module 的示例

2016-03-19

空空如也

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

TA关注的人

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