- 博客(96)
- 资源 (14)
- 收藏
- 关注
转载 Apache Solr入门教程(初学者之旅)
Apache Solr入门教程(初学者之旅) 写在前面:本文涉及solr入门的各方面,请逐行阅读,相信能帮助你对solr有个清晰全面的了解并能简单实用。在Apache Solr初学者教程的这个例子中,我们将讨论有关如何安装最新版本的Apache Solr,并告诉你如何配置它。此外,我们将告诉你如何进行使用solr的样本数据文件索引。Apache Solr支持不同格式,包括各种数据库
2016-11-29 17:27:28
2873
转载 技术实现(3)之备份文件异地容灾机制(FTP上传)
APDPlat在数据库备份成功之后,会调用一个系统扩展点,用户可以方便地编写自己的包含特定业务逻辑的插件,并可配置启用哪些插件。本文以将备份文件上传到FTP服务器以实现异地容灾为例子,来说明如何编写自己的插件并配置使其生效。 1、如何编写? 我们先看看系统扩展点,即BackupFileSender接口: Java代码 /** * 备份文件发送器
2016-11-29 13:38:11
1312
转载 技术实现(2)之数据库备份恢复的设计与实现
APDPlat提供了web接口的数据库备份与恢复,支持手工操作和定时调度,可下载备份文件到本地,也可把备份文件发送到异地容错,极大地简化了数据库的维护工作。 设计目标:1、多数据库支持2、横切关注点隔离3、异地容错 下面阐述具体的设计及实现: 1、为了支持多数据库,统一的接口是不可避免的,如下所示: Java代码 /** *
2016-11-29 11:13:12
2795
转载 技术实现(1)之业务日志和监控日志的设计与实现
APDPlat提供了业务日志和监控日志,以便对用户操作进行审计、对系统性能进行调优。 业务日志主要包括数据的增删改日志、备份恢复日志以及用户登录注销日志。监控日志主要包括用户请求响应时间、内存使用情况、全文索引重建情况、系统启动关闭事件。 设计目标: 1、灵活,可以很容易地启用或停用2、性能,不对正常的业务操作造成影响3、开放,容易和第三方系统整合 下面阐述
2016-11-29 10:25:09
7102
转载 linux定时任务的设置 crontab 配置指南
为当前用户创建cron服务1. 键入 crontab -e 编辑crontab服务文件 例如 文件内容如下: */2 * * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh 保存文件并并退出 */2 * * * * /bin/sh /home/admin/jiaobe
2016-11-29 09:55:17
467
转载 log4j2的重新加载及不同级别日志输出到不同日志文件
log4j2的配置文件格式可以是JSON,或者XML。 一般是在classpath路径中查找log4j2.json,或者log4j2.xml, 或者也可以通过系统参数来设置配置文件,比如(一般这个用在命令行启动的应用): Java代码 -Dlog4j.configurationFile=path/to/log4j2.xml 在应用启动时,
2016-11-29 09:38:23
6019
1
转载 HttpClient之HttpAsync使用
pom.xml4.54.1 org.projectlombok lombok ${lombok.version} org.apache.httpcomponents httpasyncclient
2016-11-28 13:41:31
4214
转载 加密工具GPG入门教程
http://www.open-open.com/lib/view/open1373767754138.html 今天,就接着来看,现实中怎么使用这个算法,对信息加密和解密。这要用到 GnuPG 软件(简称 GPG),它是目前最流行、最好用的加密工具之一。 一、什么是 GPG 要了解什么是 GPG,就要先了解 PGP。
2016-11-28 11:24:34
755
转载 Aviator-开源轻量级、高性能的表达式求值器
一、轮子的必要性 表达式的求值上,java的选择非常多,强大的如Groovy、JRuby,N年没维护的beanshell,包括javaeye上朋友的IKExpression。为什么还需要Aviator?或者说Aviator的特点是什么? 我将Aviator定位在Groovy这样全功能的脚本和IKExpression这样的简易的表达式求值之间的东西,如果你不希望带上G
2016-11-25 10:18:37
4058
转载 Java判断一个字符串中是否包含中文字符工具类
Java判断一个字符串是否有中文一般情况是利用Unicode编码(CJK统一汉字的编码区间:0x4e00–0x9fbb)的正则来做判断,但是其实这个区间来判断中文不是非常精确,因为有些中文的标点符号比如:,。等等是不能识别的。以下是比较完善的判断方法:CharUtil.java[java] view plain copy print?packag
2016-11-24 14:30:33
7234
1
转载 浏览器和服务器实现跨域(CORS)判定的原理
前端对Cross-Origin Resource Sharing 问题(CORS,中文又称'跨域')应该很熟悉了。众所周知出于安全的考虑,浏览器有个同源策略,对于不同源的站点之间的相互请求会做限制(跨域限制是浏览器行为,不是服务器行为。)。不过下午想到了一个略无趣的问题:浏览器和服务器到底是如何判定有没有跨域呢?本文主要分两个部分,一是对这个问题的总结,二是nginx下如何配置服务器允许跨域。
2016-11-24 13:44:48
17507
4
转载 分布式系统事务一致性的几种解决方案简析
开篇在OLTP系统领域,我们在很多业务场景下都会面临事务一致性方面的需求,例如最经典的Bob给Smith转账的案例。传统的企业开发,系统往往是以单体应用形式存在的,也没有横跨多个数据库。我们通常只需借助开发平台中特有数据访问技术和框架(例如Spring、JDBC、ADO.NET),结合关系型数据库自带的事务管理机制来实现事务性的需求。关系型数据库通常具有ACID特性:原子性(Atomicity
2016-11-24 11:22:44
11165
1
转载 分库分表的几种常见形式以及可能遇到的难题
在谈论数据库架构和数据库优化的时候,我们经常会听到“分库分表”、“分片”、“Sharding”…这样的关键词。让人感到高兴的是,这些朋友所服务的公司业务量正在(或者即将面临)高速增长,技术方面也面临着一些挑战。让人感到担忧的是,他们系统真的就需要“分库分表”了吗?“分库分表”有那么容易实践吗?为此,笔者整理了分库分表中可能遇到的一些问题,并结合以往经验介绍了对应的解决思路和建议。垂直分表垂
2016-11-24 09:56:04
835
转载 为RESTful API配置CORS-实现跨域请求
利用 Ruby on Rails 可以很方便地实现 RESTful API,但如果我们需要通过 AJAX 跨域调用的话,怎么办?说到 AJAX 跨域,很多人最先想到的是 JSONP。的确,JSONP 我们已经十分熟悉,也使用了多年,从本质上讲,JSONP 的原理是给页面注入一个 ,把远程 JavaScript 放在页面上执行。这种做法会带来一个显而易见的问题:如果调用的来源被攻击或篡
2016-11-23 17:21:14
2013
转载 SpringMVC开启CORS支持
前言浏览器出于安全考虑,限制了JS发起跨站请求,使用XHR对象发起请求必须遵循同源策略(SOP:Same Origin Policy),跨站请求会被浏览器阻止,这对开发者来说是很痛苦的一件事,尤其是要开发前后端分离的应用时。在现代化的Web开发中,不同网络环境下的资源数据共享越来越普遍,同源策略可以说是在一定程度上限制了Web API的发展。简单的说,CORS就是为了AJAX能够安全跨
2016-11-23 16:39:20
8570
1
原创 SpringMVC4.2增加CORS支持
跨站 HTTP 请求(Cross-site HTTP request)是指发起请求的资源所在域不同于该请求所指向资源所在的域的 HTTP 请求。比如说,域名A(http://domaina.example)的某 Web 应用程序中通过标签引入了域名B(http://domainb.foo)站点的某图片资源(http://domainb.foo/image.jpg),域名A的那 Web 应用就
2016-11-23 15:51:41
979
转载 从MVC到前后端分离(Rest框架搭建)
1、理解 MVC MVC 是一种经典的设计模式,全名为 Model-View-Controller,即 模型-视图-控制器。其中,模型 是用于封装数据的载体,例如,在 Java 中一般通过一个简单的POJO(Plain Ordinary Java Object)来表示,其本质是一个普通的 Java Bean,包含一系列的成员变量及其 getter/setter 方法。对于视
2016-11-23 15:29:35
4271
1
转载 ajax请求session过期失效被拦截的解决
通常使用过滤器 或拦截器来进行判断session或cookies里是否失效从而跳转页面,通常普通连接请求实现如下:[java] view plain copy print?UserInfo user = (UserInfo)request.getSession().getAttribute("user"); if(user == null) {
2016-11-23 10:09:03
4003
转载 Java中 CopyOnWriteArrayList 的使用
java中,List在遍历的时候,如果被修改了会抛出java.util.ConcurrentModificationException错误。看如下代码:[java] view plain copy print?import java.util.ArrayList; import java.util.List; public class Resou
2016-11-22 17:31:44
394
转载 ConcurrentHashMap Collections.synchronizedMap和Hashtable讨论
在Java类库中出现的第一个关联的集合类是Hashtable,它是JDK1.0的一部分。 Hashtable提供了一种易于使用的、线程安全的、关联的map功能,这当然也是方便的。然而,线程安全性是凭代价换来的――Hashtable的所有方法都是同步的。此时,无竞争的同步会导致可观的性能代价。Hashtable的后继者HashMap是作为JDK1.2中的集合框架的一部分出现的,它通过提供一个不同步的
2016-11-22 16:37:38
1060
转载 SPI之从ServiceLoader联想到DriverManager的使用总结
前言 这篇文章不是专门讲ServiceLoader的用法,这篇文章也不仅是讲DriverManager的用法。他们两个一个是java.util包里面的类,另外一个在jdbc里面应用的很多。从表面上看起来他们之间似乎没有多少的联系。实际上DriverManager对ServiceLoader的使用可以达到一种巧妙的效果。在这里我想探讨一下DriverManager使用到的一种设计思路以
2016-11-22 14:59:26
985
原创 Java的SPI机制浅析与简单示例
一、SPI机制 这里先说下SPI的一个概念,SPI英文为Service Provider Interface单从字面可以理解为Service提供者接口,正如从SPI的名字去理解SPI就是Service提供者接口;我对SPI的定义:提供给服务提供厂商与扩展框架功能的开发者使用的接口。 在我们日常开发的时候都是对问题进行抽象成Api然后就提供各种Api的实现,
2016-11-22 14:33:38
7301
1
原创 使用freemark导出数据到Word(遍历List)
1、根据word编辑模板如下:2、将该模板另存为xml文件,进而重命名为.ftl文件,就得到了freemark的模板,因为是一个列表显示,我们需要所以我们需要根据freemark的标签进行改写,找到word中的每一个表格的行进行改写,改写后的ftl的文件如下:3、导出工具类package org.nercita.bcp.word.util;import java.io.Fi
2016-11-22 12:38:28
14438
原创 使用Jacob实现html和word的相互转换
package zmx.jacob.test;import com.jacob.activeX.ActiveXComponent;import com.jacob.com.Dispatch;import com.jacob.com.Variant;public class JacobUtil { // 8 代表word保存成html public static final in
2016-11-21 16:19:03
7454
11
转载 Java Web项目中使用Freemarker生成Word文档
Web项目中生成Word文档的操作屡见不鲜,基于Java的解决方案也是很多的,包括使用Jacob、Apache POI、Java2Word、iText等各种方式,其实在从Office 2003开始,就可以将Office文档转换成XML文件,这样只要将需要填入的内容放上${}占位符,就可以使用像Freemarker这样的模板引擎将出现占位符的地方替换成真实数据,这种方式较之其他的方案要更为简单。
2016-11-21 16:12:26
822
转载 Hibernate解决原生SQL映射为对象的问题探究
如何将使用本地原生SQL查询出来的结果映射为值对象的问题,这里就Hibernate中提供的方法做个结论。前提,这里没有使用属性的延迟加载技术。 假设有个值对像,如下:Java代码 package test; public class Person { private Long id; private String name; private Long age;
2016-11-17 16:54:14
2339
转载 Hibernate Transformers之三种结果转换说明
在hibernate使用的过程中,我们通常需要对结果进行解释。Hibernate为我们提供了以下3种查询结果解释方法:Transformers.ALIAS_TO_ENTITY_MAP //把输出结果转换成map Transformers.TO_LIST //把结果按顺序排进List Transformers.aliasToBean(target) //把结果通过setter方法注入到指
2016-11-17 15:45:48
5346
转载 java实现简单的RPC框架(源码)
java自定义rpc框架:RpcFramework.java:Java代码 /* * Copyright 2011 Alibaba.com All right reserved. This software is the * confidential and proprietary information of Alibaba.com ("Confid
2016-11-17 11:38:41
3470
转载 远程调用原理与对比RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB
在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是些什么关系呢,它们背后到底是基于什么原理实现的呢,了解这些是实现分布式服务框架的基础知识,而如果在性能上有高的要求的话,那深入了解这些技术背后的机制就是必须的了,在这篇 blog中我
2016-11-17 11:21:19
810
转载 Jetty实战(7)之嵌入式Jetty应用Demo
pom.xml:[html] view plain copy print? dependency> groupId>org.eclipse.jettygroupId> artifactId>jetty-serverartifactId> version>9.0.0.v
2016-11-16 13:49:23
2774
转载 Jetty实战(6)之嵌入式Jetty运行web app
要说嵌入式运行Jetty,最常用的还应该是运行一个标准的war文件或者指定一个webapp目录。0. 首先需要添加Jetty运行时webapp的依赖包,下面是一个完整的pom.xml文件[html] view plain copyproject xmlns="http://maven.apache.org/POM/4.0.0" x
2016-11-16 13:43:03
591
转载 Jetty实战(5)之嵌入式Jetty运行Servlet
在嵌入式Jetty中,有时候我们想运行一些的Servlet,此时就需要创建创建Context,然后让自己的Servlet运行在这些ServletContext中。1. 首先创建一个ServletContextServer类,用来初始化web应用程序的Context,并且指定Servlet和Servlet匹配的url。这里指定了两个Servlet,分别是HelloServlet和Goodby
2016-11-16 13:40:26
878
转载 Jetty实战(4)之嵌入式Jetty集成Spring运行
1. 首先修改pom.xml文件,添加spring的依赖项[html] view plain copyproject xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schema
2016-11-16 13:36:16
2061
转载 Jetty实战(3)之嵌入式简单文件服务器
对于嵌入式运行Jetty,可以通过简单的一些代码实现一个简单的文件服务器的功能,如下:[java] view plain copypackage com.google.code.garbagecan.jettystudy.sample3; import org.eclipse.jetty.server.Handler; i
2016-11-16 10:27:03
944
转载 Jetty实战(2)之嵌入式运行Jetty多Connector
在嵌入运行Jetty的时候,有时候想要启动两个端口,或者通过一个Jetty server提供多个不同服务,比如说使用8080来指定默认访问端口,使用8433指定https访问端口等等,此时就可以通过创建多个Connector来解决。1. 首先创建一个Server类,其中创建了两个Connector实例,一个绑定到了8080端口,另一个绑定到了9090端口:[java
2016-11-16 10:14:35
974
转载 Jetty实战(1)之嵌入式运行Jetty
Jetty最常用的一种用法是把Jetty嵌入到自己的Java应用程序中,此时Jetty作为一个后台的Servlet容器运行,接受用户的http请求,下面是一个最简单的嵌入Jetty的用法。1. 首先使用Maven创建一个java工程[python] view plain copymvn archetype:generate -Dgro
2016-11-16 10:10:23
1195
转载 Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的。现在核心业务抽取出来,作为独立的服务,使前端应用能更快速和稳定的响应。第一:介绍Dubbo背景 大规模服务化之前,应用可能只是通过RMI或Hessian等工具,简单的暴露和引用远程服务,
2016-11-16 09:46:41
602
转载 Java AIO的Socket Demo
同步\异步操作 | 阻塞IO\非阻塞IO理解: 同步阻塞 同步非阻塞 异步非阻塞 [java] view plain copy package com.vdebug.aio.socket; import java.io.IOException; im
2016-11-15 15:15:52
2869
转载 JAVA AIO 服务器与客户端实现示例(代码2)
AIO用于文件处理还是比较快乐的,但用AIO来写网络消息处理服务器端与客户端是比较麻烦的事情,当然这只是我个人意见,主要是有几点原因:一是AIO需要操作系统支持,还好Windows与Linux(模拟)都支持;二是AIO同时使用递归调用和异步调用容易把程序员搞晕,代码容易出错;三是CompletionHandler会使用单独的线程跑,容易出现多线程问题,频繁线程上下文切换比较
2016-11-15 14:27:57
3078
转载 CGlib之LazyLoader实现延迟加载对象
一、延迟加载器LazyLoader作用: 说到延迟加载,应该经常接触到,尤其是使用Hibernate的时候,本篇将通过一个实例分析延迟加载的实现方式。LazyLoader接口继承了Callback,因此也算是CGLib中的一种Callback类型。二、示例: 首先定义一个实体类LoaderBean,该Bean内有一个需要延迟加载的属性对象PropertyB
2016-11-14 11:26:43
1876
1
Hibernate_Session_Transaction
2013-03-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人