`
该用户名已经存在
  • 浏览: 308313 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
此博客已经不再更新,请关注我的新的个人网站http://zhangboyce.github.io/,欢迎访问!
mybatis如何配置使用多个数据源? 一、数据库连接properties配置文件,两个数据源的地址: hd.jdbc.driverClassName=com.mysql.jdbc.Driver hd.jdbc.url=jdbc:mysql://127.0.0.1::3306/hd?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true hd.jdbc.username=root hd.jdbc.password=root ho.jdbc.driverClassName=com.mysql.jdbc.Dr ...
最近在项目中有一个需求就是读取网络RSS源数据,并将指定的节点生成json数据返回前端展示。要完成以上功能,首先了解三个知识点: 1. 什么是RSS源? RSS源是一种描述和同步网站内容的格式,是目前使用最广泛的XML应用,一个R ...
HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。 HttpClient提供非常方便而全面的API提供Http协议编程访问网络资源。 我的习惯是当我使用任何一个第三方工具或者一些开源框架编程的时候,我都会适当的做一些封装以尽量符合我的需求和使用。 当然,直接使用其API也能完成自己的功能,但是这些工具或者框架一般都是大而全的,在使用的时候我们常常只需要其中的一小部分功能,或者需要扩展其某一方面的功能。这样我们如果能按照自己的需求适当封装的话,能 ...
最近项目中有一个功能需要读取外部html文本文件。但是有的html文件里面有大量的注释,需要删除其中的注释在存储。其实删除html文本中的注释有很多方法,这里就自己随便写了一个处理方法,权当笔记,有需要的同学可以参考 ...
这个话题也是我在程序开发过程中常常会遇到的困惑,程序到底应该设计成什么样子? 诚然,是个程序员都知道程序设计应该要做到低耦合,高复用,高扩展等等。但是怎么设计才能达到这样的程序以及那个度的把握也常常是很 ...
最近在用mybatis做项目,需要用到mybatis的拦截器功能,就顺便把mybatis的拦截器源码大致的看了一遍,为了温故而知新,在此就按照自己的理解由浅入深的理解一下它的设计。 和大家分享一下,不足和谬误之处欢迎交流。直接入正题。 首先,先不管mybatis的源码是怎么设计的,先假设一下自己要做一个拦截器应该怎么做。拦截器的实现都是基于代理的设计模式设计的,简单的说就是要创造一个目标类的代理类,在代理类中执行目标类的方法并拦截执行拦截器代码。 那么我们就用JDK的动态代理设计一个简单的拦截器: 将被拦截的目标接口: public interface Target { ...
在这篇文章中我粗略的就我的理解谈了一下ThreadLocal。但是很多时候我们还是会认为ThreadLocal是为了解决线程安全的问题而设计的。这篇文章就我的理解再加上该文章 中很多朋友的回复阐述一下ThreadLocal和线程安全的关系。 首先我们来看一下线程安全问题产生的两个前提条件: 1. 数据共享。多个线程访问同样的数据。 2. 共享数据是可变的。多个线程对访问的共享数据作出了修改。 定义一个共享数据: public static int a = 0; 多线程多该共享数据进行修改: private static void plus() { for (int i ...
关于Java的ThreadLocal网上有大量的文章在谈这个问题,为什么这个东西大家说来说去乐此不疲呢,大约是因为它本身的神秘性,经常出现在一些框架中,但是自己又很少用。亦或是因为大家本身对它的理解各有偏颇,所以成了大家 ...
在很多时候,我们需要在类的内部初始化一个静态的Map或者List,然后保存一下常量值提供给类内部方法使用。 我们通常的做法是: 首先初始化一个Map的静态变量。 然后在静态块添加常量值: private final static Map<String, String> ...
在这篇博客中我们已经简单的知道可以通过缓存InputStream来重复利用一个InputStream,但是这种方式的缺点也是明显的,就是要缓存一整个InputStream内存压力可能是比较大的。如果第一次读取InputStream是用来判断文件流类型,文件编 ...
在这篇博客中我们已经知道了Java的InputStream是不能重复被读取的。 但是在有的场合中,我们需要重复利用InputStream的数据。 比如: 1. 一个office word文件流,我需要首先读取InputStream中的前一些字节来判断word文件的实际内容(word文件可以保存html,mht的内容)。然后再根据实际内容决定我要解析InputStream的方式。 2. 一个Html文件流,我需要首先读取InputStream中的一些字节来判断Html文件编码方式。然后再根据html文件编码方式读取Html内容。 3. 从socket收到的一个InputStream,我首先需要 ...
首先,熟悉Java的人可能都知道,Java中的Inputstream是不能重复读取的。 但是有没有想过,InputStream为什么不能重复读呢? 其实要回答“为什么”这个问题很简单,就是人家接口就是这么设计的,不能重复读。 所以今天要讨论的问 ...
Solr与Mysql数据库的集成,实现全量索引、增量索引的创建。 基本原理很简单:在Solr项目中注册solr的DataImportHandler并配置Mysql数据源以及数据查询sql语句。当我们通过Solr后台控制页面或者直接访问某个地址(后面给出),Solr就会调用DataImportHandler,连接数据库,根据sql语句查询数据,创建索引。 示例solr版本:solr4.3.1 约定Solr的安装目录,如E:\environment\solr-4.3.1为solr-home。 1. 拷贝jar包 将DataImportHandler所在的jar包和mysql的数据库驱动 ...
在这篇文章中已经简单的提到了函数和变量提升的概念。下面将更加仔细的阐述Javascript中的变量和函数的提升。 一、变量和函数提升的现象 首先思考下面的代码执行后将打印出什么? var foo = 1; function bar() { if (!foo) { var foo = 10; } alert(foo); } bar(); 如果这个结果("10")会让你感到惊讶,那么下面的例子会不会也会让你同样的惊讶: var a = 1; function b() { a = 10; return; functi ...
Global site tag (gtag.js) - Google Analytics