自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Learning

Change the world by program.

  • 博客(24)
  • 资源 (22)
  • 收藏
  • 关注

原创 spring容器在初始化Bean时前和后的操作

在某些情况下,Spring容器在初始化Bean的时候,希望在初始化bean前和销毁bean前进行一些资源的加载和释放的操作。可以通过一下三种方式完成。Bean的方法加上@PostConstruct和@PreDestroy注解在xml中定义init-method和destory-method方法Bean实现InitializingBean和DisposableBean接口@PostConstru

2017-06-23 21:49:09 4825

原创 Spring中注入List Set Map Properties的配置文件

对于Spring中注入List Set Map Properties的配置文件如下:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

2017-06-23 21:22:15 3441

原创 小车相关的

就是那serial1 改成serial2还有一个就是serialEvent1 改成serialEvent2dealy_time 调节速度的,越大越快

2017-06-21 09:00:13 481

原创 quartz与spring4整合的第一种方式

近日项目开发中需要执行一些定时任务,借此机会整理了一下定时任务的几种实现方式,由于项目采用spring框架,所以我都将结合spring框架来介绍。分类从实现的技术上来分类,目前主要有三种技术Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少,这篇文章将不做

2017-06-19 17:22:19 5484

原创 Spring Context 工具类

在web的开发过程中,有时需要获取在beans中配置的bean.使用下面的方式可以实现.Spring Context 工具类@Componentpublic class SpringContextUtils implements ApplicationContextAware { public static ApplicationContext applicationContext;

2017-06-19 13:46:24 841

原创 spring更好的处理泛型

由于泛型擦除,使得Generic无法获取自己的Generic的Type类型。实际上BadClass()实例化以后Class里面就不包括T的信息了,对于Class而言T已经被擦拭为Object,而真正的T参数被转到使用T的方法(或者变量声明或者其它使用T的地方)里面(如果没有那就没有存根),所以无法反射到T的具体类别,也就无法得到T.class。* 而getGenericSuperclass()是Ge

2017-06-18 22:53:54 3312

原创 spring定时任务的用法

Spring Task,可以将它比作一个轻量级的Quartz,而且使用起来很简单,除spring相关的包外不需要额外的包,而且支持注解和配置文件两种.XML配置文件方式编写作业类就是即普通的Java类,如下, * 定时任务1import java.util.Date;public class TaskJob { public void myMethod() { Syst

2017-06-18 20:21:41 985 4

原创 Spring中线程池的用法

多线程并发处理起来通常比较麻烦,如果你使用spring容器来管理业务bean,事情就好办了多了。spring封装了java的多线程的实现,简化了开发。简单的Hello程序需要执行的线程类一般是对于业务的封装.将具体的业务逻辑放到,线程内执行。public class MessagePrinterTask implements Runnable { private String messag

2017-06-18 19:35:14 1327

原创 ThreadPoolExecutor的参数介绍

ThreadPoolExecutor的介绍线程池类为java.util.concurrent.ThreadPoolExecutor,常用构造方法为:ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit u

2017-06-18 17:16:30 890

原创 ListenableFutureTask的异步回调

Java在JDK1.6提供了Future,FutureTask,ExecutorService等用于支持异步编程,但是Future,FutureTask没有提供Callback机制,只能主动轮询,通过get去获取结果。Spring的ListenableFutureTask对此做了扩展,支持callback机制。使得编程变得更加的简单。测试代码import java.util.concurrent.

2017-06-18 16:23:31 4633

原创 好的博客地址

在学习过程中,遇到的好的博客地址。记录下来方便以后学习.好的博客地址http://blog.csdn.net/pistolove/article/details/51428562http://www.cnblogs.com/chenpi/category/778984.html http://www.cnblogs.com/nick-huang/p/4848843.html

2017-06-18 11:02:35 472

转载 Guava ListenableFuture实现异步非阻塞调用

为了保证系统响应迅速,需要寻找一种方法能够使调取接口能够异步执行,而Java正好提供了类似的方法,在java.util.concurrent中包含了Future相关的类,运用其中的一些类可以进行异步计算,以减少主线程的等待时间。比如启动一个main方法,main中又包含了若干个其它任务,在不使用Java future的情况下,main方法中的任务会同步阻塞执行,一个执行完成后,才能去执行另一个;如果

2017-06-18 10:52:35 4247 1

原创 Quartz将定时任务持久化到数据库

如果用内存记录定时任务信息,应用重新启动后,定时任务信息将会丢失。比如,用户A通过系统设置1小时后执行Z操作,设置好后的,因系统重新启动,新启动的系统将会丢失“1小时后执行Z操作”的定时任务。如果,我们需要在系统意外(或非意外)重新启动后,仍保留定时任务信息,可以使用数据库存储定时任务信息。优秀的参考文章Lesson 9: Job Stores用数据库存储定时任务信息在上一节就到的quartz的简

2017-06-17 19:46:03 6397

原创 Quartz的搭建和在Web中的使用

Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Quartz是一个完全由Java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制。Quartz允许开发人员根据时间间隔来调度作业。它

2017-06-17 19:24:37 5220 1

原创 Java主线程等待线程池所有任务完成--线程池的封装

用线程池编写多线程程序时,当所有任务完成时,要做一些统计的工作。而统计工作必须要在所有任务完成才能做。所以要让主线程等待所有任务完成。可以使用ThreadPoolExecutor.awaitTermination(long timeout, TimeUnit unit)。封装的线程池public interface BaseExecutor { /** * @Title: init

2017-06-14 17:07:31 4677 1

原创 Java主线程等待子线程执行完毕-CountDownLatch

主线程代码//Main主线程 publicclassMainThread { publicstaticvoid main(String[] args) throwsInterruptedException { longstartTime = System.currentTimeMillis(); intthreadNum = 5;//线程数

2017-06-14 16:54:47 465

转载 Guava中的RateLimiter

昨天CodeReview的时候看到同时使用RateLimiter这个类用作QPS访问限制.学习一下这个类.RateLimiter是Guava的concurrent包下的一个用于限制访问频率的类.1.限流每个API接口都是有访问上限的,当访问频率或者并发量超过其承受范围时候,我们就必须考虑限流来保证接口的可用性或者降级可用性.即接口也需要安装上保险丝,以防止非预期的请求对系统

2017-06-14 16:25:10 706

原创 Guava中Cache的使用

缓存的主要作用是暂时在内存中保存业务系统的数据处理结果,并且等待下次访问使用。在日常开发的很多场合,由于受限于硬盘IO的性能或者我们自身业务系统的数据处理和获取可能非常费时,当我们发现我们的系统这个数据请求量很大的时候,频繁的IO和频繁的逻辑处理会导致硬盘和CPU资源的瓶颈出现。缓存的作用就是将这些来自不易的数据保存在内存中,当有其他线程或者客户端需要查询相同的数据资源时,直接从缓存的内存块中返回数

2017-06-14 14:39:20 2110

原创 Guava中Splitter和Joiner的用法

字符串的分隔和连接是一个常用的操作.Guava提供了Spliiter和Joiner来帮助我们简化开发。Splitter的用法基本用法测试代码public static void main(String[] args) { String str = "a,b, c,,d"; Iterable<String> result = Splitter.on(',')/

2017-06-14 13:58:26 4255

原创 Throwables帮你抛出异常,处理异常

Guava类库中的Throwables提供了一些异常处理的静态方法,这些方法的从功能上分为两类,一类是帮你抛出异常,另外一类是帮你处理异常。也许你会想:为什么要帮我们处理异常呢?我们自己不会抛出异常吗?假定下面的方法是我们要调用的方法。public void doSomething() throws Throwable { //ignore method body}public void

2017-06-14 11:09:31 4330 1

原创 Guava中的TypeToken,解决泛型运行时类型擦除的问题

关于对于Type的理解泛型是一种类型 关于Type,是一个标示接口,该标示接口描述的意义是代表所有的类型public interface Type {}Type的分类Class<T>ParameterizedType 泛型......泛型的结构public Person<T> { }public interface ParameterizedType extends Type

2017-06-14 10:56:46 3306 1

原创 Preconditions优雅的检验参数

在日常开发中,我们经常会对方法的输入参数做一些数据格式上的验证,以便保证方法能够按照正常流程执行下去。对于可预知的一些数据上的错误,我们一定要做事前检测和判断,来避免程序流程出错,而不是完全通过错误处理来保证流程正确执行,毕竟错误处理是比较消耗资源的方式。Guava类库中提供了一个作参数检查的工具类–Preconditions类, 该类可以大大地简化我们代码中对于参数的预判断和处理,让我们对方法输入

2017-06-13 20:23:49 526

原创 重写Object常用的方法

在Java中Object类是所有类的父类,其中有几个需要override的方法比如equals,hashCode和toString等方法。 Guava也提供了提供了覆写这几个方法的工具类。equals方法的介绍equals是一个经常需要覆写的方法, 可以查看Object的equals方法注释, 对equals有几个性质的要求: 1. 自反性reflexive:任何非空引用x,x.equals(x

2017-06-13 20:01:04 1832

原创 Properties配置文件数据加密

在一些情况下,需要对properties中的配置数据进行加密。比如Mysql数据库的密码,不应该以明文的形式直接保存在properties中,应该以密文的形式保存.PropertiesUtil用于读取properties配置文件的数据,并且将加密的密文进行解密./** * Parsing The Perperties Configuration File */public final cla

2017-06-10 16:58:42 4394 3

spring中properties加密

使用spring对properties加密.

2017-06-10

dubbo的xml约束

dubbo.xsd.

2017-01-17

service-speak.sh

dubbo服务的启动脚本.

2017-01-17

dubbo之HelloWorld

使用Dubbo和Zookeeper实现了一个服务的简单注册和调用。

2017-01-16

Web分页的实现

Web分页的实现

2016-11-25

MybatisNiXiang

MybatisNiXiang,Mybatis的逆向。用于由数据库生成Mapper的代码。

2016-11-21

One2Many

One2Many

2016-11-20

One2One

One2One

2016-11-20

MyBatis_Dao

MyBatis_Dao,Mybatis的原始Dao的开发方式。

2016-11-20

mybatis开发jar大全

mybatis开发jar大全,包含了Mybatis开发用到的jar文件,以及与Spring整合用到的jar。以及做Mybatis测试用到的数据库脚本文件。

2016-11-20

mybatis测试用到的建数据库的脚本文件

mybatistest.sql。mybatis测试用到的建数据库的脚本文件。

2016-11-20

Mybatis_SpringMapper

Mybatis_SpringMapper,Spring和Mybatis整合,采用Mapper代理的方式。包含事务的处理。

2016-11-20

Mybatis_SpringDao

Mybatis_SpringDao,Mybatis与Spring整合,原始Dao的方式。里面包含事务处理。

2016-11-20

Mybatis简单的增删改查的实现

Mybatis简单的增删改查的实现

2016-11-19

SpringJDBC

SpringJDBC,带事务的配置。

2016-11-18

动态代理

动态代理 Proxy

2016-11-16

staruml-5.0-with-cm

staruml-5.0-with-cm

2016-11-16

Spring AOP 代码

Spring AOP 代码

2016-11-16

ActiveMQ与Spring整合之异步发送邮件

ActiveMQ与Spring整合之异步发送邮件。

2016-11-12

Mybatis资料

Mybatis的实验代码

2016-07-02

基于Jquery的Ajax的Java交互

,Ajax通过GET和POST与JAVA程序交互的过程,以及在交互过程中,模仿网络延迟出现的加载图片.

2016-05-06

Ajax与Java交互

Ajax与Java交互,列举了POST和GET的交互,以及动态加载的效果。

2016-05-06

空空如也

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

TA关注的人

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