- 博客(73)
- 资源 (1)
- 收藏
- 关注
转载 Spring中使用classpath加载配置文件浅析
在应用Spring的工程中,使用class path的方式加载配置文件应该是最常用的做法,然而对大部分人来说,刚开始使用Spring时,几乎都碰到过加载配置文件失败的情况,除了配置上的错误外,很多时候是因为配置文件的路径和程序中指定的加载路径不一致,从而导致配置文件找不到,或是加载了错误地方的配置文件。本文将就Spring如何从class path中加载配置文件做一些简要的分析。
2015-07-02 11:22:51
686
转载 Java String类型数据的字节长度
问题描述: 向Oracle数据库中一varchar2(64)类型字段中插入一条String类型数据,程序使用String.length()来进行数据的长度校验,如果数据是纯英文,没有问题,但是如果数据中包含中文,校验可以通过,但是在数据入库时经常会报数据超长。 问题分析: 既然问题是数据超长,那么问题应该就是出在数据长度校验上,也就是出在
2015-06-09 11:35:56
1119
转载 [Drools]JAVA规则引擎 -- Drools
Drools是一个基于java的规则引擎,开源的,可以将复杂多变的规则从硬编码中解放出来,以规则脚本的形式存放在文件中,使得规则的变更不需要修正代码重启机器就可以立即在线上环境生效。 本文所使用的demo已上传 http://download.youkuaiyun.com/source/30022131、Drools语法开始语法之前首先要了解一下drools的基本工作过程,通常而言我们
2015-05-22 15:35:38
537
转载 Redis学习手册(持久化)
一、Redis提供了哪些持久化机制: 1). RDB持久化: 该机制是指在指定的时间间隔内将内存中的数据集快照写入磁盘。 2). AOF持久化: 该机制将以日志的形式记录服务器所处理的每一个写操作,在Redis服务器启动之初会读取该文件来重新构建数据库,以保证启动后数据库中的数据是完整的。 3). 无持久化: 我们可以通过配置
2015-05-22 15:13:46
461
转载 Redis学习手册(List数据类型)
一、概述: 在Redis中,List类型是按照插入顺序排序的字符串链表。和数据结构中的普通链表一样,我们可以在其头部(left)和尾部(right)添加新的元素。在插入时,如果该键并不存在,Redis将为该键创建一个新的链表。与此相反,如果链表中所有的元素均被移除,那么该键也将会被从数据库中删除。List中可以包含的最大元素数量是4294967295。 从元素插入和
2015-05-22 15:10:01
431
转载 Jedis操作redis
package com.nokia.poi.m;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Set;import redis.clients.jedi
2015-05-22 10:45:07
413
转载 谨慎使用String作为HashMap的Key
首先简单复习一下哈希表知识(大学课本定义)。 根据设定的哈希函数f(key)和处理冲突的方法将一组关键字映像到一个有限的连续地址集(区间)上,并以关键字在地址集中的“像”作为记录在表中的存储位置,这种表便称为哈希表。 哈希函数f(key)是一个映像,使得任何关键字由此所得到的哈希函数值都落在表允许范围之内。 对不同的关键字可能得
2015-02-25 09:54:36
11002
转载 ElasticSearch入门-增删改查(CRUD)
ElasticSearch(名称太长,后面简称ES)作为一个搜索引擎,目前可谓是如日中天,几乎和solr齐驾并驱。关于他能做什么,跟云计算有什么关系,在此不再描述。但是ES的官方文档,特别是关于java的客户端文档,真是少的可怜,甚至连个完整的增删改的示例都没有。在此,我就献丑了。在开始讲解之前,还是先做个铺垫,为了能够有一个可以索引的模型,我们自定义了一个模型,暂时起个名称叫LogMod
2015-02-10 17:34:41
3691
转载 使用Java调用ElasticSearch提供的相关API进行数据搜索完整实例演示
安装包下载当前最新版本为 :0.20.6 http://www.elasticsearch.org/download/ 官方视频教程 http://www.elasticsearch.org/videos/官方网站http://www.elasticsearch.org/Window 环境下载完解开有以下个包 : bin 是
2015-02-10 17:32:38
8447
转载 java文件下载文件名乱码
response.setHeader(...)下载中文文件名乱码问题 关于中文文件下载的问题,网上的咨询和答疑已经很多,我原来处理下载的代码如下: Java代码 response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileNam
2015-02-05 14:44:08
727
转载 将输出流OutputStream转化为输入流InputStream的方法
将输出流OutputStream转化为输入流InputStream的方法一:package test.io; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; /** * 用于把OutputStream 转化为 I
2015-02-03 17:12:23
2197
转载 flume+kafka+storm+mysql架构设计
序言前段时间学习了storm,最近刚开blog,就把这些资料放上来供大家参考。这个框架用的组件基本都是最新稳定版本,flume-ng1.4+kafka0.8+storm0.9+mysql。(项目是maven项目,需要改动mysql配置,提供两种topology:读取本地文件(用来本地测试);读取服务器日志文件。)架构图数据流向图(是visio
2015-01-16 16:15:03
774
转载 HBase技术介绍
HBase简介HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行M
2014-12-31 10:31:19
479
转载 日志组件logback的介绍及配置使用方法
一、logback的介绍 Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-classic完整实现SLF4J API使
2014-12-30 17:35:34
848
转载 基于Flume的美团日志收集系统(二)改进和优化
在《基于Flume的美团日志收集系统(一)架构和设计》中,我们详述了基于Flume的美团日志收集系统的架构设计,以及为什么做这样的设计。在本节中,我们将会讲述在实际部署和使用过程中遇到的问题,对Flume的功能改进和对系统做的优化。1 Flume的问题总结在Flume的使用过程中,遇到的主要问题如下:a. Channel“水土不服”:使用固定大小的MemoryChannel在日
2014-12-26 16:35:03
580
转载 基于Flume的美团日志收集系统(一)架构和设计
美团的日志收集系统负责美团的所有业务日志的收集,并分别给Hadoop平台提供离线数据和Storm平台提供实时数据流。美团的日志收集系统基于Flume设计和搭建而成。《基于Flume的美团日志收集系统》将分两部分给读者呈现美团日志收集系统的架构设计和实战经验。第一部分架构和设计,将主要着眼于日志收集系统整体的架构设计,以及为什么要做这样的设计。第二部分改进和优化,将主要着眼于
2014-12-26 16:33:16
719
转载 zookeeper原理
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态。Zookee
2014-12-26 13:54:22
529
转载 FLUME日志收集
一、FLUME介绍Flume是一个分布式、可靠、和高可用的海量日志聚合的系统,支持在系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。设计目标:(1) 可靠性当节点出现故障时,日志能够被传送到其他节点上而不会丢失。Flume提供了三种级别的可靠性保障,从强到弱依次分别为:end-to-end(收到数
2014-12-26 13:49:14
487
转载 大数据架构:flume-ng+Kafka+Storm+HDFS 实时系统组合
个人观点:大数据我们都知道hadoop,但并不都是hadoop.我们该如何构建大数据库项目。对于离线处理,hadoop还是比较适合的,但是对于实时性比较强的,数据量比较大的,我们可以采用Storm,那么Storm和什么技术搭配,才能够做一个适合自己的项目。下面给大家可以参考。可以带着下面问题来阅读本文章:1.一个好的项目架构应该具备什么特点?2.本项目架构是如何保证数据准确性的?3
2014-12-26 13:48:00
659
转载 mybatis SqlSessionDaoSupport的使用(附代码下载)
前面的系列mybatis 文章,已经基本讲到了mybatis的操作,但都是基于mapper隐射操作的,在mybatis 3中这个mapper 接口貌似充当了以前在ibatis 2中的 DAO 层的作用。但事实上,如果有这个mapper接口不能完成的工作,或者需要更复杂的扩展的时候,你就需要自己的DAO 层. 事实上 mybatis 3 也是支持DAO 层设计的,类似于ibatis 2 .下面介
2014-12-16 16:34:08
1091
转载 mybatis实战教程(mybatis in action)之九:mybatis 代码生成工具的使用
mybatis 应用程序,需要大量的配置文件,对于一个成百上千的数据库表来说,完全手工配置,这是一个很恐怖的工作量. 所以mybatis 官方也推出了一个mybatis代码生成工具的jar包. 今天花了一点时间,按照 mybatis generator 的doc 文档参考,初步配置出了一个可以使用的版本,我把源代码也提供下载,mybatis 代码生成工具,主要有一下功能:1.生成pojo
2014-12-16 16:33:34
562
转载 mybatis实战教程(mybatis in action)之八:mybatis 动态sql语句
mybatis 的动态sql语句是基于OGNL表达式的。可以方便的在 sql 语句中实现某些逻辑. 总体说来mybatis 动态SQL 语句主要有以下几类:1. if 语句 (简单的条件判断)2. choose (when,otherwize) ,相当于java 语言中的 switch ,与 jstl 中的choose 很类似.3. trim (对包含的内容加上 prefix,或者 s
2014-12-16 16:32:26
476
转载 mybatis实战教程(mybatis in action)之七:实现mybatis分页(源码下载)
上一篇文章里已经讲到了mybatis与spring MVC的集成,并且做了一个列表展示,显示出所有article 列表,但没有用到分页,在实际的项目中,分页是肯定需要的。而且是物理分页,不是内存分页。对于物理分页方案,不同的数据库,有不同的实现方法,对于mysql 来说 就是利用 limit offset,pagesize 方式来实现的。oracle 是通过rownum 来实现的,如果你熟悉相
2014-12-16 16:28:38
650
转载 mybatis实战教程(mybatis in action)之六:与Spring MVC 的集成
前面几篇文章已经讲到了mybatis与spring 的集成。但这个时候,所有的工程还不是web工程,虽然我一直是创建的web 工程。今天将直接用mybatis与Spring mvc 的方式集成起来,源码在本文结尾处下载.主要有以下几个方面的配置1. web.xml 配置 spring dispatchservlet ,比如为:mvc-dispatcher2. mvc-dispatcher-
2014-12-16 16:26:59
547
转载 mybatis实战教程(mybatis in action)之五:与spring3集成(附源码)
在这一系列文章中,前面讲到纯粹用mybatis 连接数据库,然后 进行增删改查,以及多表联合查询的的例子,但实际项目中,通常会用 spring 这个沾合剂来管理 datasource 等。充分利用spring 基于接口的编程,以及aop ,ioc 带来的方便。用spring 来管理 mybatis 与管理hibernate 有很多类似的地方。今天的重点就是数据源管理以及 bean的配置。
2014-12-16 16:26:01
726
转载 mybatis实战教程(mybatis in action)之四:实现关联数据的查询
有了前面几章的基础,对一些简单的应用是可以处理的,但在实际项目中,经常是关联表的查询,比如最常见到的多对一,一对多等。这些查询是如何处理的呢,这一讲就讲这个问题。我们首先创建一个Article 这个表,并初始化数据. 程序代码Drop TABLE IF EXISTS `article`;Create TABLE `article` ( `id` int(11)
2014-12-16 16:24:51
506
转载 mybatis实战教程(mybatis in action)之三:实现数据的增删改查
前面已经讲到用接口的方式编程。如果不一致就会出错,这一章主要在上一讲基于接口编程的基础上完成如下事情:1. 用 mybatis 查询数据,包括列表2. 用 mybatis 增加数据3. 用 mybatis 更新数据.4. 用 mybatis 删除数据.查询数据,前面已经讲过简单的,主要看查询出列表的查询出列表,也就是返回list, 在我们这个例子中也就是 List ,
2014-12-16 16:23:56
552
转载 mybatis实战教程(mybatis in action)之二:以接口的方式编程
前面一章,已经搭建好了eclipse,mybatis,mysql的环境,并且实现了一个简单的查询。请注意,这种方式是用SqlSession实例来直接执行已映射的SQL语句:session.selectOne("com.yihaomen.mybatis.models.UserMapper.selectUserByID", 1)其实还有更简单的方法,而且是更好的方法,使用合理描述参数和SQL语
2014-12-16 16:22:57
520
转载 mybatis实战教程(mybatis in action)之一:开发环境搭建
mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包。这些软件工具均可以到各自的官方网站上下载。首先建立一个名字为 MyBaits 的 dynamic web project 1. 现阶段,你可以直接建立java 工程,但一般都是开发web项目,这个系列教程最后也是web的,所以一开始就建立web
2014-12-16 16:22:13
499
转载 lucene--分词器的分析
/** * SimpleAnalyzer 这个分词是一段一段话进行分 * StandardAnalyzer 标准分词拿来分中文和ChineseAnalyzer一样的效果 ☆PerFieldAnalyzerWrapper 这个很有意思,可以封装很多分词方式,还可以于先设置field用那个分词分!牛 * CJKAnalyzer 这个分词方式是正向退一分词(二分法分词),同
2014-12-12 17:08:14
559
转载 Lucene的中文分词器IKAnalyzer
分词器对英文的支持是非常好的。 一般分词经过的流程: 1)切分关键词 2)去除停用词 3)把英文单词转为小写 但是老外写的分词器对中文分词一般都是单字分词,分词的效果不好。 国人林良益写的IK Analyzer应该是最好的Lucene中文分词器之一,而且随着Lucene的版本更新而不断更新,目前已更新到IK Analyzer 2012版本
2014-12-12 17:07:23
504
转载 Java 并发
并发Table of Contents1 什么是并发问题。2 java中synchronized的用法3 Java中的锁与排队上厕所。4 何时释放锁?5 Lock的使用6 利用管道进行线程间通信7 阻塞队列8 使用Executors、Executor、ExecutorService、ThreadPoolExecutor9 并发流程控制10 并发3定律11 由并发到并行
2014-12-12 16:39:44
412
转载 Java并发小结
Java多线程编程,是并发编程的一种(另一种重要的并发编程是多进程编程)。我们写java程序一般是运行在同一个进程中的,所以可以简单的认为:并发编程 = 多线程编程,让写操作系统的人去关注多进程编程吧。多线程编程是一个重要的软件基础,不管你的代码是不是多线程,java程序运行在jvm中一定是多线程运行的:运行你的main方法的线程,以及一些后台守护线程,如垃圾收集等。虽然在我们平时的程序中很少直接
2014-12-12 16:39:44
455
转载 Map的HashCode
现象:计费和账户的交互通过Map来交互,基本数据格式如下{"pp900_88",20,"pp900_61",2……}在不同的取值情况下,较多数据返回了相同的价格结果,导致计算价格错误。 应用场景:产品计算价格时,使用cache缓存了价格结果数据,cache的key值是传入map的hashCode,本意是要实现完全相同的Map传入值从缓存取数据,减少数据库的访
2014-12-12 16:32:33
1369
转载 hashCode与equals的区别与联系
一、equals方法的作用 1、默认情况(没有覆盖equals方法)下equals方法都是调用Object类的equals方法,而Object的equals方法主要用于判断对象的内存地址引用是不是同一个地址(是不是同一个对象)。2 、要是类中覆盖了equals方法,那么就要根据具体的代码来确定equals方法的作用了,覆盖后一般都是通过对象的内容是否相等来判断对象是否相
2014-12-12 16:30:28
497
转载 于Java内存结构组织
Java的内存分配 Java程序运行时的内存结构分成:方法区、栈内存、堆内存、本地方法栈几种。 方法区 存放装载的类数据信息,包括:基本信息:每个类的全限定名、每个类的直接超类的全限定名、该类是类还是接口、该类型的访问修饰符、直接超接口的全限定名的有序列表。每个已装载类的详细信息:运行时常量池、字段信息、方法信息、静态变量、到类classloader的引用、到类class的引用。
2014-12-07 19:13:17
448
原创 文件上传服务器接收
package com;import java.io.File;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Iterator;import java.util.List;import java.util.Random;import java.util.ArrayList;imp
2014-12-03 14:46:27
689
原创 MySQL字符集的那些事情: 设置及转换
在MySQl里面,字符集转换确实是个有点小头痛的问题,之前同事遇到过,自己用ODBC/C时也遇到过,现在总结下,以后遇到在修正此篇文章内容。MySQL应用的character_set变量:root@test 09:22:42>SHOW VARIABLES LIKE 'character_set%';+--------------------------+------------
2014-10-08 10:34:44
520
转载 java中加载配置文件路径终结者
Java中getResourceAsStream的用法首先,Java中的getResourceAsStream有以下几种: 1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由ClassLoade
2014-09-23 15:34:41
577
转载 设计模式六大原则
单一职责原则(Single Responsibility Principle)定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责
2014-09-10 15:05:58
459
基于Lucene4.8的空间检索
2014-07-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人