![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 80
后街男孩
busy
展开
-
学习AOP之透过Spring的Ioc理解Advisor
本文转自:点击打开链接花了几天时间来学习Spring,突然明白一个问题,就是看书不能让人理解Spring,一方面要结合使用场景,另一方面要阅读源代码,这种方式理解起来事半功倍。那看书有什么用呢?主要还是扩展视野,毕竟书是别人总结出来的东西,看一遍可以发现自己的理解偏差,而且还可以看到一些平时不太关注的内容,当然看也可以是一种学习技术的方式。最开始只是想了解一下A转载 2017-09-29 10:05:11 · 606 阅读 · 0 评论 -
Quartz的糟糕设计
Quartz的糟糕设计不得不说Quartz定时任务系统提供给我们更方便,更好的处理定时任务的选择,但是现在以Spring为天下的应用环境来说Quartz的接口设计有点糟糕。 下面是Quartz的官方文档实例代码: // define the job and tie it to our MyJob class JobDetail job = newJob(MyJob.class)原创 2016-10-15 13:16:24 · 781 阅读 · 0 评论 -
table中的超长字符串用省略号表示的css样式
本文转自:点击打开链接效果如图 代码: 代码如下: table td{white-space:nowrap;overflow:hidden; text-overflow:ellipsis;} table {table-layout:fixed;}转载 2016-10-25 14:43:18 · 1502 阅读 · 0 评论 -
Intellij IDEA设置忽略部分类编译错误
本文转自:点击打开链接有些时候我们的项目中有些错误,但这些错误并不影响项目的整体运行(或许是没有使用到),默认情况下idea是无法通过编译的,因此也就无法部署运行,要达到正确运行项目的目的需要作一些设置才行。设置Intellij IDEA忽略部分类编译错误设置很简单,只需要两步即可。1、设置Java编译器如上图所示,Ctrl+Alt+S快捷键打开转载 2016-10-14 13:51:48 · 2435 阅读 · 0 评论 -
Java日志框架slf4j、jcl、jul、log4j1、log4j2、logback大总结
1 系列目录jdk-logging、log4j、logback日志介绍及原理commons-logging与jdk-logging、log4j1、log4j2、logback的集成原理slf4j与jdk-logging、log4j1、log4j2、logback的集成原理slf4j、jcl、jul、log4j1、log4j2、logback大总结2各种jar包总结log转载 2016-07-01 19:23:37 · 5858 阅读 · 2 评论 -
JVM内存区域划分 EDEN SPACE、SURVIVOR SPACE、TENURED GEN
本文转自:点击打开链接JVM区域总体分两类,heap区和非heap区。heap区又分:Eden Space(伊甸园)、Survivor Space(幸存者区)、Tenured Gen(老年代-养老区)。 非heap区又分:Code Cache(代码缓存区)、Perm Gen(永久代)、Jvm Stack(java虚拟机栈)、Local Method Statck(本地方法栈)。转载 2016-07-10 17:30:17 · 5804 阅读 · 0 评论 -
Java Heap Memory
本文转自:点击打开链接Java Heap Memory is part of memory allocated to JVM by Operating System.Objects reside in an area called the heap. The heap is created when the JVM starts up and may increase转载 2016-07-10 17:19:09 · 1129 阅读 · 0 评论 -
Executors.newSingleThreadExecutor的一些坑
还是直接上源码吧public static ExecutorService newSingleThreadExecutor() { return new FinalizableDelegatedExecutorService (new ThreadPoolExecutor(1, 1,原创 2016-06-02 20:10:35 · 37629 阅读 · 11 评论 -
eclipse中如何把源码打进jar包(创建有源码的jar包,或者有源码如何在eclipse中查看)
本文转自:点击打开链接eclipse用了很长时间,现在才刚知道。很简单,首先是有源码,把它加到eclipse中:方法1:直接用压缩软件打开相应的jar包,然后把源码拖进去压缩一下,最后选中工程刷新一下ok。方法2:右击referenced libraries中需要导入源代码的包,右击properties->java source attatchm转载 2014-08-14 11:41:25 · 4138 阅读 · 0 评论 -
深入理解Java:SimpleDateFormat安全的时间格式化
本文转自:点击打开链接 想必大家对SimpleDateFormat并不陌生。SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调试的问题,因为 DateFormat 和 SimpleDateFormat 类不都是线程安全的,在多线程环境下调用 format() 和 parse()转载 2014-08-07 14:31:15 · 801 阅读 · 0 评论 -
Java代码注释XXX todo fixme 的意义
本文转自:点击打开链接特殊注释:1 TODO表示需要实现,但目前还未实现的功能2 XXX勉强可以工作,但是性能差等原因3 FIXME代码是错误的,不能工作,需要修复 TODO: + 说明:如果代码中有该标识,说明在标识处有功能代码待编写,待实现的功能在说明中会简略说明。FIXME: + 说明:如果代转载 2014-07-29 20:36:28 · 824 阅读 · 0 评论 -
JAVA线程池的分析和使用
作者:方腾飞,发布于2012-12-19,来源:InfoQ 1. 引言合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的转载 2014-06-12 21:30:57 · 749 阅读 · 0 评论 -
JDK7新特性之监听文件系统更改
本文转自:我们用IDE(例如Eclipse)编程,外部更改了代码文件,IDE马上提升“文件有更改”。Jdk7的NIO2.0也提供了这个功能,用于监听文件系统的更改。它采用类似观察者的模式,注册相关的文件更改事件(新建,删除……),当事件发生的,通知相关的监听者。 java.nio.file.*包提供了一个文件更改通知API,叫做Watch Service API.转载 2014-06-18 22:07:55 · 1317 阅读 · 0 评论 -
关于“Return empty arrays or collections, not nulls”的思考
本文转自:《effective java》第二版第43条是:Return empty arrays or collections, not nulls意思是在需要返回数组或者集合的方法中,如果需要返回空数据,不要返回null,而是要返回大小为0的数组或者集合。可能很多情况下,会出现这样的代码: 1 private final List cheesesInSt转载 2014-06-19 21:27:38 · 770 阅读 · 0 评论 -
java日志系统详解
本文转自:点击打开链接Java日志系统确实比较丰富,常用的有log4j、JUL、logback等等,同时伴随着日志系统的发展,出现了日志框架commons-logging和slf4j。简短地描述下日志发展,最先出现的是apache开源社区的log4j,这个日志确实是应用最广泛的日志工具,成为了java日志的事实上的标准。然而,当时Sun公司在jdk1.4中增加了JUL日转载 2014-07-27 10:30:40 · 17464 阅读 · 1 评论 -
Apache DbUtils 源码分析 | Apache DbUtils Source Code Analysis
本文转自:点击打开链接上一篇文章Apache DbUtils 使用教程详细讲解了DbUtils的特性和使用方法,如果你厌倦了Hibernate的笨重,也不想用IBatis,建议试试DbUtils,你会发现真的很轻量,一切尽在掌控中。这篇文章我们继续讲解DbUtils的原理和实现。概述DbUtils有三个主要的组件:QueryRunnerR转载 2014-07-26 18:29:11 · 2292 阅读 · 0 评论 -
封装 Apache Commons 的 DbUtils 实现的数据库操作工具类
本文转自:点击打开链接在项目中,可用该 DBUtil 类封装 Apache Commons DbUtils 类库,代码如下:?12345678910111213141516171819转载 2014-07-26 16:56:46 · 1103 阅读 · 0 评论 -
LRU缓存实现(Java)
本文转自:点击打开链接LRU是Least Recently Used 的缩写,翻译过来就是“最近最少使用”,LRU缓存就是使用这种原理实现,简单的说就是缓存一定量的数据,当超过设定的阈值时就把一些过期的数据删除掉,比如我们缓存10000条数据,当数据小于10000时可以随意添加,当超过10000时就需要把新的数据添加进来,同时要把过期数据删除,以确保我们最大缓存10000条,那转载 2016-10-26 17:16:15 · 302 阅读 · 0 评论 -
IDEA在编辑时提示could not autowire
本文转自:点击打开链接在开发中我再applicationContext-dao.xml中加入了mapper扫描器[html] view plain copy bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">转载 2016-11-08 16:13:47 · 1096 阅读 · 0 评论 -
容器扩展点:后置处理器BeanPostProcessor
本文转自点击打开链接综述先回顾bean生命周期的这张图,看看BeanPostProcessor调用位置 通过上图看到BeanPostProcessor(Bean后置处理器)两个方法在bean生命周期的位置,即:在Spring容器完成Bean实例化和属性设置后,并且在bean调用初始化方法之前或之后。因此BeanPostProcessor(Bean后置处理转载 2017-09-28 10:26:21 · 505 阅读 · 0 评论 -
spring中MessageSource的配置使用方法
本文转自:点击打开链接ApplicationContext接口扩展了MessageSource接口,因而提供了消息处理的功能(i18n或者国际化)。与HierarchicalMessageSource一起使用,它还能够处理嵌套的消息,这些是Spring提供的处理消息的基本接口。让我们快速浏览一下它所定义的方法:String getMessag转载 2017-09-28 10:07:25 · 7797 阅读 · 0 评论 -
JAVA 单例双重检查(double check)为什么不好用
本文转自:点击打开链接JAVA 单例双重检查(double check)为什么不好用在阅读之前,请先了解下线程并发涉及到的三个概念:原子性、可见性、有序性,可以看下这篇文章:http://www.cnblogs.com/dolphin0520/p/3920373.html我假设你已经看过几篇double check的文章,但还是一知半解。转载 2017-09-27 14:25:20 · 773 阅读 · 0 评论 -
spring-boot项目在外部tomcat环境下部署
本文转自:点击打开链接spring-boot默认提供内嵌的tomcat,所以打包直接生成jar包,用Java -jar命令就可以启动。但是,有时候我们更希望一个tomcat来管理多个项目,这种情况下就需要项目是war格式的包而不是jar格式的包。spring-boot同样提供了解决方案,只需要简单的几步更改就可以了,这里提供maven项目的解决方法:转载 2017-07-11 14:43:13 · 495 阅读 · 0 评论 -
Quartz源码分析
本文转自:点击打开链接Quartz是运用最广的任务调度框架,它最核心的组成部分是Scheduler、Trigger、JobDetail,然后给Scheduler配置个线程QuartzSchedulerThread,此线程在Scheduler初始化时启动,等待Scheduler start,然后从JobStore里拿到最近要触发的Trigger,以线程等待的方式等到trigg转载 2017-05-15 09:52:17 · 835 阅读 · 0 评论 -
Class.getResource VS ClassLoader.getResource
今天在写代码的时候遇到了一个坑,内容如标题,特此记录一下,废话不多说,先看代码。 首先看看Class.getResource方法: public java.net.URL getResource(String name) { name = resolveName(name); ClassLoader cl = getClassLoader0();原创 2017-05-05 11:38:04 · 386 阅读 · 0 评论 -
mybatis处理集合、循环、数组和in查询等语句的使用
本文转自:点击打开链接在Mybatis的xml配置中使用集合,主要是用到了foreach动态语句。foreach的参数:foreach元素的属性主要有 item,index,collection,open,separator,close。item表示集合中每一个元素进行迭代时的别名.index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置.open表转载 2017-02-24 09:25:07 · 594 阅读 · 0 评论 -
gradle项目与maven项目相互转化
本文转自:点击打开链接gradle这几年发展迅猛,github越来越多的项目都开始采用gradle来构建了,但是并不是所有人都对gradle很熟悉,下面的方法可以把gradle转成maven项目,前提gradle项目目录结构保持跟maven一样的约定,即/src/main/java这一套。 一、gradle --> maven在build.gradle中增加以下转载 2016-12-20 17:02:41 · 514 阅读 · 0 评论 -
maven国内镜像配置
本文转自:点击打开链接maven在apache的官方镜像非常慢,严重影响速度,建议使用国内的镜像。目前国内的镜像较少,可以使用oschina的镜像,具体配置过程参考:http://maven.oschina.NET/static/help.html上述安装过程基于Windows环境,以下过程在Ubuntu 12.04下执行。maven安装Ubuntu转载 2016-12-30 20:30:21 · 2448 阅读 · 0 评论 -
log4j和其他日志框架桥接图
转载 2016-12-07 10:16:52 · 962 阅读 · 0 评论 -
slf4j和其他日志系统桥接图
转载 2016-12-07 10:15:21 · 1307 阅读 · 0 评论 -
过滤器(Filter)和拦截器(Interceptor)的区别
本文转自:点击打开链接Filter介绍 Filter可以认为是Servlet的一种“加强版”,它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理链。Filter也可以对用户请求生成响应,这一点与Servlet相同,但实际上很少会使用Filter向用户请求生成响应。使用Filter完整的流程是:Filter对用户转载 2016-12-06 20:14:31 · 914 阅读 · 0 评论 -
JVM理论与实践【堆内存结构与垃圾回收】
本文转自:点击打开链接 在生产环境下,通常都需要对JVM进行参数优化,其中对垃圾回收器的参数优化是一个非常重要的一方面。下面重点介绍Java的堆内存,垃圾回收算法,常用的垃圾回收器以及Java堆内存的分配策略,这些内容将作为对JVM进行垃圾回收参数优化的重要基础。然后通过简单示例验证Java的垃圾回收机制。 【Java堆内存结构】转载 2016-12-02 16:08:32 · 323 阅读 · 0 评论 -
killall for windows
killall for windows在linux系统上我们可以使用killall命令轻松杀掉所有的java进程,但是在windows上却很麻烦,需要打开任务管理器一个一个的手动干掉,很是烦人。尤其是在Java项目中使用了线程池或者第三方库的情况下,停止web容器后一些Java进程不能被IDE kill掉,后来在网上搜索,原来windows也有类似命令,但是由于windows命令并非主流,本人也懒得原创 2016-11-30 19:49:16 · 2571 阅读 · 0 评论 -
使用 EasyMock 更轻松地进行测试
本文转自:点击打开链接测试驱动开发是软件开发的重要部分。如果代码不进行测试,就是不可靠的。所有代码都必须测试,而且理想情况下应该在编写代码之前编写测试。但是,有些东西容易测试,有些东西不容易。如果要编写一个代表货币值的简单的类,那么很容易测试把 $1.23 和 $2.8 相加是否能够得出 $4.03,而不是 $3.03 或 $4.029999998。测试是否不会出现 $转载 2016-11-30 16:36:03 · 2546 阅读 · 0 评论 -
Maven中的DependencyManagement和Dependencies
本文转自:点击打开链接这里介绍一个在父项目中的根结点中声明dependencyManagement和dependencies的区别dependencyManagementMaven 使用dependencyManagement 元素来提供了一种管理依赖版本号的方式。通常会在一个组织或者项目的最顶层的父POM 中看到dependencyManagement转载 2016-11-29 18:05:59 · 442 阅读 · 0 评论 -
JUnit中的测试套件和参数化测试
benwenJUnit4.x的测试运行器JUnit为单元测试提供了默认的测试运行器,它的测试方法都是由它负责执行的我们也可以定制自己的运行器,所有的运行器都继承自org.junit.runner.Runner 还可以使用org.junit.runer.RunWith注解 为每个测试类指定使用具体的运行器一般情况下,默认测试运行器可以应对绝大多数的单元测试要求转载 2014-07-04 11:27:48 · 1093 阅读 · 0 评论 -
ThreadLocal是否会引起内存溢出?
b最近碰到一个使用ThreadLocal时因为未调用remove()而险些引起内存溢出的问题,所以看了下ThreadLocal的源码,结合线程池原理做一个简单的分析,确认是否最终会导致内存溢出。 既然是因为没调用remove()方法而险些导致内存溢出,那首先看下remove()方法中做了什么。 Java代码 public void remove转载 2014-06-12 21:15:35 · 3908 阅读 · 1 评论 -
NIO 入门
本文转自:点击打开链接JDK 1.4 中引入的新输入输出 (NIO) 库在标准 Java 代码中提供了高速的、面向块的 I/O。本实用教程从高级概念到底层的编程细节,非常详细地介绍了 NIO 库。您将学到诸如缓冲区和通道这样的关键 I/O 元素的知识,并考察更新后的库中的标准 I/O 是如何工作的。您还将了解只能通过 NIO 来完成的工作,如异步 I转载 2014-05-29 23:27:02 · 786 阅读 · 0 评论 -
MyEclipse设置JDK编译版本
原文转自:hereMyEclipse设置JDK和JRE具体的应用版本其实很简单,分为三种状况:1、设置默认使用的JDK和JRE环境。具体步骤:菜单window->preferences->java->Installed JRES。点中了,右边的窗口点ADD按钮,记住选择添加安装了Java目录下的JDK目录,而不是JRE目录。天价后,在列表中选择你要使用的那个转载 2013-08-09 09:51:19 · 7423 阅读 · 0 评论 -
JBoss 数据库连接池 Mysql Sqlserver
一、配置MySQL数据库1. 安装MYSQL数据库2、在mysql中创建一个数据库,名字为:test;再在此库中创建一个表,表名为tree。使用脚本如下:3、然后再此表中插入两条数据use test;insert into tree values('1','测试数据1');insert into tree values('2','测试数据2');4、下载并安装my转载 2013-03-27 21:37:23 · 997 阅读 · 0 评论