JVM 群关于 Autowired 的讨论

2018年7月29日 没有评论

前一段时间 JVM 群有人遇到了一个 stackoverflow 的问题,引发了一个关于 Autowired 的讨论,由于我做的项目可能比较小,并没有遇到过,但感觉这也许就是一个坑,记录下来
,如果谁有遇到这个问题,说不定就有帮助。

下面我会贴出来群里面的讨论,如果不想看,直接看我的得出的结论,所以 TL;DR 版:

spring 中依赖注入有两个注解:Autowired 和 Resource。Resource 的注入的时候是 byName,而 Autowired 注入的时候是 byType,所以平时并没有很大的区别,但 Autowired 和 getBean(Object.cl[……]

Read more

分类: Java 标签: , ,

Markdown 基本语法介绍

2018年7月15日 没有评论

Markdown 是我很喜欢的一个轻量级标记语言,但也因为不常写,所以有些语法记得不是很清楚,经常写的时候需要查一些资料,所以这次就把一些简单的常用的语法做个笔记。

在介绍 markdown 语法之前,先写一点废话。

一. markdown是什么?

简单的一句话就是,Markdown 可谓是程序员必备的一种写作格式!你还在用 word 写文档么?简直 low 爆了,赶紧抛弃,从现在开始,立刻,马上,学习下 markdown。

二. markdown有什么好处?

简单说,语法简单、再也不用专注排版、兼容 html、还有其他的的很多很强大的功能(这么厉害,你的博客为啥[……]

Read more

分类: Java 标签: , ,

Git 配置多个用户身份和强制检查各个项目用户名邮箱设置

2018年7月1日 没有评论

今天的文章比较简单,1. 就是为 Git 单个项目做身份配置,就是配置单独的邮箱和用户名。因为我们平时可能会在不同的几个项目中工作,各个项目的用户名可能不同,最基本的就是公司的项目和我们自己在 GitHub 上玩,所以为了保证日志的准确性和提交时无误,最好对各个项目设置。以前没有研究过,所以就一只默认用公司的用户名玩,但一直感觉不太好,2. 在提交时,user.name, user.email会进入日志。这些信息,是追踪代码变更的关键,所以必须配置,偶然看见秋大有篇文章写这个,试了一些不错,记录一下。

全局配置和项目配置

全局配置信息在: ~/.gitconfig
项目配置在项目[……]

Read more

分类: Java 标签:

org.apache.ibatis.builder.IncompleteElementException: Could not find parameter map

2018年6月2日 没有评论

上周和同事一块开发一个功能模块,在开发中拉下来同事代码,在测试的时候,突然跑不通了,报错信息如下:


org.apache.ibatis.builder.IncompleteElementException: Could not find parameter map java.util.Map

	at org.apache.ibatis.builder.MapperBuilderAssistant.getStatementParameterMap(MapperBuilderAssistant.java:320)
	at org.apache.ibatis.builder.M[......]

Read more

上传 Java 库到 Maven central repository

2018年5月20日 没有评论

之前看过 Trinea 写过一篇文章,如果上传 Java 库到 Maven central repository,前一段时间感觉公司封装的 mybatis-generator 不好用,完全没有解决原生的 mybatis-generator 的问题,所以就重新做了一次封装,主要是加了查询分页,然后就想到是不是可以上传到 Maven central repository 玩玩,看了一下 Trinea 的这篇文章感觉挺简单的(原文见后面参考资料),但实际上还是有一些坑,具体的可以看 Trinea 的这篇文章,我主要写一下遇到的一些坑。

先说明一下,pom 文件请参考我的配置:https://g[……]

Read more

Java Thread 同步

2018年5月12日 没有评论

之前遇到一个问题,就是如何让线程同步,由于自己多线程的东西实在不懂,所以不知道怎么办,但感觉应该是一个很简单的东西,所以就从网上搜一下资料,原来如此简单,直接调用 join 方法就好了。写篇博客记录一下 join 的使用方法。

1. 作用

Thread类中的join方法的主要作用就是同步,它可以使得线程之间的并行执行变为串行执行。具体看代码:


package cn.bridgeli.demo;

public class ThreadTest {

    public static void main(String[] args) throws Interr[......]

Read more

分类: Java 标签: , , ,

介绍一个 Mybatis 插件:mybatis-generator-plugin

2018年4月29日 没有评论

在实际开发中,我们都是先建表,然后根据表生成对应的 Java 类,现在很流行的 ORMapping 框架是: Mybatis,所以我们需要生成 entity、mapper 和 xml,我们都知道有一个插件是:mybatis-generator,使用它就可以很方便的生成这些结构化的重复性基础性的代码,但是他有一个问题,生成的查询没有分页,所以很烦。然后我搜索了一些资料,重新封装了一下,重新命名为:mybatis-generator-plugin,具体源码放在了 GitHub 上:


https://github.com/bridgeli/mybatis-generator-plugi[......]

Read more

介绍一个强大易用的日期和时间库:Joda-Time

2018年3月31日 没有评论

在 Java 中处理日期和时间是很常见的需求,基础的工具类就是我们熟悉的 Date 和 Calendar,之前我也曾经写过一篇文章利用这两个类,怎么处理时间,然而这些工具类的 api 使用并不是很方便和强大,于是就诞生了Joda-Time 这个专门处理日期时间的库。而且 Joda-Time 很优秀,用了他之后再也停不下来,其在 Java 8 出现前的很长时间内成为 Java 中日期时间处理的事实标准,用来弥补 JDK 的不足。项目中要想使用 Joda-Time 很简单,只需要引入依赖:


<dependency>
    <groupId>joda-tim[......]

Read more

分类: Java 标签: , , ,

记一次使用 lombok 小小的成长感悟

2018年2月25日 没有评论

公司项目里面用了 lombok,感觉这个东西真是个好东西,然后公司也用的简单,所以也没仔细看文档就开始想当然的用了,然后就悲剧了,今天就记录一下这件事,写一下经验教训,具体怎么用,大家可以看最后的参考。
lombok 有一个很好用的注解:@Data,当时以为这个注解就是相当于:@Getter和@Setter,所以有一次要重写 equals 和 hashcode 方法,然后就让 IDE 自动生成了,当时也没仔细看生成的是什么样子,然后就发现了 bug,仔细一看生成的 equals 方法原来是这样的:


package cn.bridgeli.demo;

import lomb[......]

Read more

分类: Java 标签:

NullPointerException in Java with no StackTrace

2018年1月7日 没有评论

这周一个项目遇到一个问题,同事查看日志发现抛出:NullPointerException,却没有堆栈信息,然后同事感觉很奇怪,因为打日志的方法,打印的确实是:e,而不是很多人不明所以的打印的:e.getMessage()。然后我看了一下想起来我看过某本书上说过的,JIT 优化。当某个异常抛出很多次之后,由于 Java 虚拟机 JIT 优化,会省略堆栈信息。往上面翻日志肯定可以会找到报错的地方,当然会出现报错的信息太多,比较难翻。写这篇文章的本来想找找那本书,参考一下的,结果忘了是那本书了,一时没找到,不过这个问题虽然不是非常常见,但是网上还是有很多说明的,所以就简单说说 JVM 有一个参数:O[……]

Read more