自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(236)
  • 资源 (34)
  • 收藏
  • 关注

原创 Spring装配Bean(五)profile注解和解决自动注入的歧义性

配置profile beanSpring为环境相关的bean所提供的解决方案其实和构建时候的方案没有太大区别,Spring会根据环境决定该创建那个bean和不创建那个bean。Spring的bean profile的功能。要使用profile,首先将所有不同的bean定义到一个或者多个profile之中,在将应用部署到每个环境中,要确保对应的profile处于激活(active)的状态* Java...

2018-05-31 09:51:52 2096

原创 面向切面的Spring(二) xml中定义aop

Spring的AOP配置元素Spring的AOP配置元素 AOP配置元素 用途 <aop:advisor> 定义AOP通知器 <aop:after> 定义AOP后置通知 <aop:after-returning> 返回通知 <aop:after-throwing> 异常通知 <aop...

2018-05-31 09:51:38 518

原创 面向切面的Spring(一) AOP术语、AspectJ表达式说明,execution表达式含有注解写法

AOP术语如果要重用通用功能的话,常见的面向对象技术是继承或委托,但是如果在整个应用中都是用相同的基类,继承往往会导致一个脆弱的体系,而使用委托则有比较复杂的调用切面,就是将关注的功能模块化为特殊的类,这类就是切面。通知Advice: 切面中具体要做的事情,分为前置、后置、返回、异常、环绕通知。连接点(Joint point): 执行过程中能够插入切面的一个点。切点(Poi...

2018-05-31 09:51:30 1562

原创 Spring装配Bean(四)

在JavaConfig中引用XML配置

2018-05-23 15:45:55 216

原创 Spring装配Bean(三)

通过xml配置Bean

2018-05-23 10:46:01 253

原创 Spring装配Bean(二)

通过java代码装配bean很多场景下通过组件扫描和自动装配实现Spring的自动化配置是更为推荐的方案,但是有时候自动化配置方案,不行,比如说将第三方的组件装配到应用中,无法在它的类上添加@Component,@Autowire注解,此时使用显示装配的方式:java 和xml两种,后面一片文章介绍xml配置* 创建配置类package com.erong.service;import org...

2018-05-21 15:01:07 226

原创 Spring装配Bean(一)

三种bean的装配机制* xml中配置* java中进行显式配置* 隐式的bean发现机制和自动装配自动化装配beanSpring从两个角度来实现自动化装配:* 组件扫描(component scanning) : Spring 会自动发现应用上下文中创建的bean* 自动装配(autowiring): Spring自动满足bean之间的依赖举个例子:创建一个类,Spring会发现它并加其创建为一...

2018-05-21 11:07:05 211

转载 Spring简介

Spring核心特性,依赖注入DI和面向切面编程AOP1. 依赖注入抛弃传统的方式,将bean的依赖关系定义在xml文件或者使用注解,使用上下文组装管理。Spring通过应用上下文(Application Context)装载bean的定义并将bean进行组装。Spring上下文对象全权负责对象的创建和组装,Spring有多个上下文的实现类,区别在加载bean的方式* bean定义在xml中,使用...

2018-05-18 16:24:31 176

转载 maven准备

修改maven的conf文件夹下的setting文件,加入:&lt;mirrors&gt; &lt;mirror&gt; &lt;id&gt;alimaven&lt;/id&gt; &lt;name&gt;aliyun maven&lt;/name&gt; &lt;url&gt;http://maven.aliyun.com/nexus/cont

2018-05-09 11:09:36 228

原创 多生产者-消费者中假死现象的处理

单个的生产者-消费者模型package com.ftf.thread.lock;public class Factory { private volatile boolean flag = true; private Object obj = new Object(); public void setValue(){ synchronized (obj) { try { ...

2018-05-08 14:39:53 2066

原创 队列、阻塞队列

队列队列是一种先入先出的数据结构,新加入的元素都是加入到队列的后面阻塞队列java.util.concurrent.BlockingQueue&lt;E&gt;,是一种支持阻塞的插入元素,阻塞的移除元素操作的队列。阻塞的插入:当队列空间满了,阻塞线程继续向队列中添加元素阻塞的移除:当队列空间空了,阻塞线程从队列中取出元素从这里看出,阻塞队列可以用在生产者/消费者模型中,生产者是向队列中添加元素的线...

2018-05-08 14:14:58 318

原创 Lock对象Condition接口实现等待/通知

关键字Synchronized与wait()和notify()/notifyAll()方法相结合可以实现等待通知,ReentrantLock借助Condition对象可以实现同样的功能,而且一个lock对象可以创建多个condition对象,从而能够选择性condition对象进行等待/通知condition对象实现等待通知的简单案例public class ConditionLockDemo {...

2018-05-03 15:51:04 410

原创 Lock接口、重入锁ReentrantLock、读写锁ReentrantReadWriteLock

Lock特点Lock接口提供了和synchronized关键字类似的同步功能,synchronized关键字只是隐式低获取锁,而lock拥有了锁获取和释放的可操作性、可中断的获取锁以及超时获取锁等同步特性Lock使用Lock lock = new ReentrantLock();lock.lock();try{ }finally{ lock.unlock();}在finally块...

2018-05-02 17:47:05 340

原创 ThreadLocal的使用

ThreadLocal的作用从上一篇对于ThreadLocal的源码分析,可以看出ThreadLocal不是用来将解决共享对象的多线程访问问题,每个线程可以将线程的私有数据通过ThreadLocal的set方法设置到线程的私有的ThreadLocalMap中,其他线程无法访问到。各个线程中的ThreadLocal.ThreadLocalMap以及ThreadLocal.ThreadLocalMap...

2018-04-27 10:54:24 275

转载 ThreadLocal源码解读

ThreadLocal的三个理论基础1. 每个线程都有一个自己的ThreadLocal.ThreadLocalMap对象,ThreadLocal类中定义了静态类ThreadLocalMap,静态类ThreadLocalMap中定义了Entry结构存储static class ThreadLocalMap { /** * The entries in this h...

2018-04-26 15:27:26 293

原创 破坏双亲委派模型和自定义自己的类加载器

ClassLoader loadeClass源码:protected Class&lt;?&gt; loadClass(String name, boolean resolve) throws ClassNotFoundException { synchronized (getClassLoadingLock(name)) { // ...

2018-04-25 09:42:16 1768

原创 线程间通信_等待/通知之Thread.join()

Thread.join源码:public final synchronized void join(long millis) throws InterruptedException { long base = System.currentTimeMillis(); long now = 0; if (millis &lt; 0) { ...

2018-04-24 11:32:46 311

原创 线程间通信_等待/通知机制

等待/通知的相关方法式任意java对象都具备的,notify,wait方法被定义在java.lang.Object,都是final,不可重写,是实例方法,新手比较容易出错的地方是,调用时候必须调用 锁对象.wait()/锁对象.nofity(),并且只能在临界区中调用具体了解下,notify,wait定义等待/通知方法名称描述notify()通知在同一个对象上等待的线程,使其从wait()方法返回...

2018-04-23 16:43:37 335

原创 虚拟机性能监控和故障处理工具

* 如果监控运行与jdk1.5的虚拟上的程序,程序启动时候请添加参数"-Dcom.sun.management.jmxremote"开启JMX管理功能,由于部分工具基于JMX的,但是如果环境在JDK1.6之上,那JMX是默认开启的Sun JDK监控和故障处理工具名称主要作用jpsJVM Process Status Tool,显示指定系统内的所有HotSpot虚拟机进程jstatJVM Stati...

2018-04-20 10:34:10 264

转载 JVM调优策略

GC的两种类型1. 新生代GC(Minor GC):指的是新生代中发生的垃圾回收,因为新生代中的对象创建和销毁都比较快,频繁,所以新生代的Minor GC发生很频繁,如果新生代中出现了FULL GC,一般是由于内存担保失败(新生代的存活的对象无法移动到老年代中)导致的2. 老年代GC(Major GC/FULL GC):指的是老年代中发生的垃圾回收,一般伴随着一次Minor GC,而且FULL G...

2018-04-18 15:42:19 442

转载 常用JVM参数

(1)-Xms20M表示设置JVM启动内存的最小值为20M,必须以M为单位(2)-Xmx20M表示设置JVM启动内存的最大值为20M,必须以M为单位。将-Xmx和-Xms设置为一样可以避免JVM内存自动扩展。大的项目-Xmx和-Xms一般都要设置到10G、20G甚至还要高(3)-verbose:gc表示输出虚拟机中GC的详细情况(4)-Xss128k表示可以设置虚拟机栈的大小为128k(5)-Xo...

2018-04-18 11:00:46 251

原创 虚拟机类加载机制_类加载的过程

Java虚拟机中类加载的全过程: 加载、验证、准备、解析和初始化这5个阶段加载加载时类加载过程的一个阶段,在加载阶段,虚拟机需要完成3件事1&gt; 通过一个类的全限定名来获取定义此类的二进制字节流2&gt; 将这个字节流代表的静态存储结构转化为方法区的运行时数据结构3&gt; 在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口(对于HotSpot...

2018-04-16 11:36:39 260

原创 类文件结构_class类文件的的结构

跨平台的实现Java诞生之初提出一个口号"一次编写,到处运行"。与平台无关的思想最终实现在操作系统的应用层上:Sun公司以及其他虚拟机提供商发布了许多可以运行在各种不同平台上的虚拟机,这些虚拟机都可以载入和执行同一种平台无关的字节码,从而实现一次编写,到处运行。实现语言无关性(java虚拟机上可以运行Scala等其他语言)仍然是虚拟机和字节码的存储格式.java 虚拟机不和任何语言绑定,只是和Cl...

2018-04-11 14:16:07 358

原创 虚拟机类加载机制_类加载时机和类的生命周期

类加载机制类的生命周期类从被加载到虚拟机内存中开始,到卸载出内存为止,生命周期包括:加载、验证、准备、解析、初始化、使用和卸载7个阶段。其中验证、准备、解析3个部分统称为连接。加载、验证、准备、初始化和卸载这5个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班地开始,可以在初始化之后再解析,为了支持java语言运行时绑定类的初始化时机java虚拟机规范中并没有对加载有强制约束,但是对于类的...

2018-04-09 16:54:11 218 1

转载 prepareStatement和Statement执行批处理的执行情况

preparestatement因为有预编译机制,每次执行相同sql的预编译,只会执行一次,下次只要设置参数就行,适合相同sql的批处理如果一定要多次编译不同sql,执行批处理的话,只会执行一个sqlpublic static void main(String[] args) throws Exception { ConnManager.initCurrPool(); Connection...

2018-04-04 10:51:17 814 2

原创 垃圾收集器与内存分配策略_hotspot垃圾收集算法实现和垃圾收集器

HotSpot算法实现1. 枚举根节点从可达性分析中从GC Roots节点中找引用链这个操作为例,可作为GC Roots的节点主要在全局性的引用(常量或类静态属性)与执行上下文(例如栈帧中的本地变量表)中。如果逐个检查,消耗很多资源另外,可达性分析对执行时间的敏感还体现在GC停顿上,因为这项分析工作必须在一个能保证一致性的快照中进行-这里的一致性指的是在整个分析期间整个执行系统看起来就像是冻结在某...

2018-03-28 15:25:37 183

原创 垃圾收集器与内存分配策略_垃圾收集算法

前面了解了java运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出执行者出栈和入栈操作。每个栈帧中分配多少内存基本是在类结构确定下来时就已知的。因而这几个区域的内存回收都具有确定性。也就是在对于程序计数器、虚拟机栈、本地方法栈这几个内存区域不需要考虑回收问题,方法结束或线程销毁,内存自然随着回收了。java堆和方法区则不一样,...

2018-03-28 15:25:12 174

原创 自动内存管理机制_运行时数据区域

程序计数器一块内存区域,可以看做是当前线程执行的字节码的行号指示器。在虚拟机的概念模型中,字节码解释器工作时候,就是通过改变这个序号来执行字节码指令,比如分支,循环,跳转,异常处理,线程恢复等基础功能都需要。由于java虚拟机的多线程是通过线程轮流切换执行的。任意一个时刻只能执行一个线程,因此为了每个线程切换后都能恢复到原来执行的位置,那么每个线程都必须独有一个程序计数器。各个计数器键互不影响,这...

2018-03-28 15:24:05 165

原创 eclipse设置查看GC日志和如何理解GC日志

eclipse的gc日志配置可以在eclipse.ini中加入参数实现,不过打印的日志是整个eclipse的内存回收情况,如何实现准确的看一个java应用的gc日志呢.1. Run as -&gt; Run configurations -&gt; java应用名 -&gt; arguments -&gt;VM arguments,加入jvm参数就行2. 测试代码package cn.erong....

2018-03-28 10:30:38 2936

转载 HashMap源码解读

转载五月的仓颉:http://www.cnblogs.com/xrq730/p/5030920.html之前的list,介绍了ArrayList和LinkedList,就两者而言,反应的是两种思想1&gt; ArrayList底层是以数组构成的,查询和在不扩容的情况下,顺序添加元素很快,插入和删除较慢2&gt; LinkedList底层是双向链表实现的,查询需要从header节点向前或向后遍历,插...

2018-03-23 15:23:59 200

转载 初识LinkedList底层原理

转自 五月的仓颉: http://www.cnblogs.com/xrq730/p/5005347.htmlLinkedList是通过链表实现的,链表是一种线性的存储结构,每个存储的数据都放在一个存储单元里面,每个存储单元除了存放有待存储的数据外,还存储下一个存储单元的地址(下一个存储单元的地址是必要的,有些存储结构还存放前一个存储单元的地址),每次查找数据的时候,通过当前存储单元中存储的下一个单...

2018-03-22 15:14:08 285

转载 jdk1.6ArrayList底层实现

转载自五月的仓颉博客地址:http://www.cnblogs.com/xrq730/p/4989451.html对于集合需要关注四点1. 是否允许为空2. 是否允许重复3. 是否有序(取出元素的顺序是否和插入的顺序一致)4. 是否是线程安全的ArrayListArraylist就是一个以数组实现的集合,它的成员变量构成: /** * The array...

2018-03-20 10:30:28 401

转载 mysql update join,insert select 语法

#MySQL更新操作update table_a m join table_b non m.gain_no = n.MOBILE_PHONEset m.gain_no = n.AIP_NO,m.gain_type = '1'where m.gain_type = '2' and m.gain_no in ('')#MySQL批量添加insert into table_a (clo1,cl...

2018-03-16 17:40:42 526

原创 redis学习(九) redis事务和redis脚本的比较

如果想要实现一组命令原子性的执行,一种方法是使用事务,一种方法使用redis脚本,可以对比下两种方式的区别Redis事务回顾事务命令:MULTI, EXEC, DIDCARD ,WATCH ,UNWATCH使用: MULTI : 开启一个事务,并会生成一个任务队列,客户端发送的指令都会放在任务队列中,总是返回OK         EXEC: 执行任务队列中的命令,成功返回OK,失败返回nil   ...

2018-03-11 11:31:32 1025

原创 redis学习(八) Lua语法

Lua语法数据类型Lua是一个动态类型语言,一个变量可以存储任何类型的值。编写redis脚本会用到的类型Lua常用数据类型类型名取值空(nil)空类型只包含一个值,即nil。nil表示空,所有没有赋值的变量或表的字段都是nil布尔(boolean)布尔类型包含true和false数字(number)整数和浮点数都是使用数字类型存储,如1、0.23、3.5e20等字符串(string)字符串类型可以...

2018-03-08 15:56:52 3923

原创 redis学习(七) 消息通知

场景(可以略过不看,只是引入的场景)邮件订阅的,在博客首页放入一个文本框供访客输入自己的邮箱地址,提交后博客会将该地址存入redis的一个集合类型的键中(使用集合类型是为了保证同一邮箱地址不会存储多个),每当发布新文章时,就向收集到的邮箱地址发送通知邮件。问题:输入邮箱地址提交后,页面需要很久时间才能载入完。原因:原来小白为了保证用户没有输入他人的邮箱,在提交之后程序会向用户输入的邮箱发送一封包含...

2018-03-05 15:05:17 343

转载 eclipse配置远端运行环境

服务器上,出现问题, 本地无法快速定位,可以使用eclipse remote java Application支持。必须是本地的环境好和生产上的一致,才能定位问题。

2018-03-05 11:02:04 291

原创 redis学习(六) 排序(sort,by,store,性能优化)

SORT命令sort命令可以对列表类型、集合类型和有序集合类型键进行排序,并且可以完成与关系型数据库中连接查询相类似的任务。sort key [DESC][ALPHA]  [limit offset  count ]1. 如果没有加上ALPHA参数的话,sort命令会尝试将所有元素转为双精度浮点数来比较,如果无法转换则会提示错误。2. DESC 命令sort默认按照从小到大的顺序排列,加上desc...

2018-03-04 09:01:29 2360

原创 redis学习(五) redis进阶之事务和过期时间的应用

事务redis中的事务是一组命令的集合。使得一个事务中的redis命令要么全执行,要么全不执行使用方式: multi 和exec完成multi: 告诉redis将同一个事务的命令存储起来。  之后发送两个SADD, redis返回queued表示命令进入了等待执行的事务队列中。exec:则是告知redis按照发送顺序执行命令。一旦客户端发送exec名,所有命令将执行,即使此后客户端断线,没有关系。...

2018-03-02 10:38:19 1314

原创 redis学习(四) 列表类型,集合类型,有序集合类型

列表类型列表类型list存放的一个有序的字符串列表,内部是使用双向链表实现的,可以向两端添加元素,并且获取接近两端的元素速度越快,链表的代价是通过索引访问元素比较慢。这种特点,可以作为队列来使用。命令1. 向两端添加元素lpush key value[value ...]rpush key value[value ...]2. 从链表两端弹出元素lpop key rpop key 结合上面的四个命...

2018-03-01 10:56:53 401

erlang_rabbitmq.zip

Erlang语言 window64环境安装包、消息队列RabbitMQ安装包

2019-07-01

SpringMVC整合Hessian简单案例

SpringMVC整合Hessian的简单案例,使用Maven管理,idea工具开发,案例中配置了两个接口的服务发布

2018-12-04

querydsl依赖jar

压缩包里面有两个jar,queyrdsl-jpa-3.7.4.jar、querydsl-apt-3.7.4.jar

2018-09-20

spring整合quartz使用jdbc存储

spring整合quartz使用jdbc存储任务,并配置为quartz集群应用

2018-08-03

spring整合quartz

maven工程,spring整合quartz,任务存储方式为RAM,一个入门案例,展示两种生成jobDetail的方式

2018-08-02

quartz2.2.3

quartz2.2.3官网的jar包, 里面包含quartz依赖的所有jar包,和javadoc

2018-07-31

spring整合Activemq源码

源码为web工程,整合了Spring,SpringMVC、ActiveMQ,启动后,index页面输入消息,控制台输出消息。

2018-07-27

Mybatis学习的demo工程

工程非整合spring,仅用于学习mybatis的特性,里面有mybatis依赖的jar

2018-07-03

hibernate jpa 入门案例依赖jar

开发hibernate jpa 依赖的所有jar,mysql 驱动jar包等。

2018-06-22

SpringMVC加入json支持的jar

SpringMVC加入json数据读取和写回需要引入的json的jar包--jackson jar

2018-06-12

git2.15.0 window 版本

git-2.15.0.exe window版本,git 窗口,执行git命令。。

2017-11-21

visual studio code 32位

visual studio code 32 位编程工具,可以扩展一些插件适用于前端Vue开发

2017-11-21

socket长连接 demo

定制心跳对象,客户端心跳机制发送数据,保证连接,服务器延时检查,超时的断开连接,支持多客户端连接,并相应心跳对象

2017-11-01

基于java NIO的socket通信demo

java NIO 创建的服务端,能够异步响应客户端的请求,客户端采用nio异步请求服务端,通信之间的乱码使用charset解决

2017-10-31

jsch-0.1.54.jar

ant脚本上传文件到服务器并执行shell脚本,ant 节点sshexec,scp依赖的jar包, 使用时候添加到ant的lib下或者加到eclipse ant的 runtime下

2017-09-15

bootstrap3手册

bootstrap的基础教程,bootstrap的css说明和bootstrap的布局组件,bootstrap的插件,另外对bootstrap的编码规范做了说明

2017-09-11

jquery_1.9.1_手册.CN.chm

jquery语法速查手册,提供选择器查询,事件函数查询,文档处理,ajax等,另外补充了jquery1.9新增的特性说明,

2017-09-11

mysql必知必会

《MySQL必知必会》MySQL是世界上最受欢迎的数据库管理系统之一。书中从介绍简单的数据检索开始,逐步深入一些复杂的内容,包括联结的使用、子查询、正则表达式和基于全文本的搜索、存储过程、游标、触发器、表约束,等等。通过重点突出的章节,条理清晰、系统而扼要地讲述了读者应该掌握的知识,使他们不经意间立刻功力大增。

2017-08-07

easyuicombotree插件

easyuitree.js

2017-07-06

搜索树形节点

树形节点查询

2017-07-06

jquery-easyui-1.2.6

jquery-easyui-1.3.2

2017-07-05

easyui-1.3.2

jquery-easyui-1.3.2

2017-07-05

jquery-easyui-1.3.2

jquery-easyui-1.3.2

2017-07-05

PLSQL中文版 win7 32位64位均适用

PLSQL中文版 win7 32位64位均适用

2017-05-23

solr-solrj-4.10.3.jar和solr-solrj-5.0.0.jar

压缩文件里面有solr-solrj-4.10.3.jar和solr-solrj-5.0.0.jar两个jar

2017-03-10

freemarker-2.3.9.jar

2017-03-09

IK中文分词器

IK中文分词器

2017-03-09

java反编译工具

启动EXE文件,将jar包拖入就可查看源码

2017-01-19

util-linux-2.24.tar.gz

util-linux

2017-01-06

apache-tomcat-7.0.73.tar.gz

apache-tomcat-7.0.73.tar.gz

2016-12-29

正则表达式必知必会

正则表达式是一种威力无比强大的武器,几乎在所有的程序设计语言里和计算机平台上都可以用它来完成各种复杂的文本处理工作。本书从简单的文本匹配开始,循序渐进地介绍了很多复杂内容,其中包括回溯引用、条件性求值和前后查找,等等。每章都为读者准备了许多简明又实用的示例,有助于全面、系统、快速掌握正则表达式,并运用它们去解决实际问题。, 本书适合各种语言和平台的开发人员。

2016-12-22

jsoup-1.7.2.jar

2016-12-22

空空如也

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

TA关注的人

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