J2EE
刘元涛
活着只为改变世界
展开
-
Java 远程通讯技术及原理分析
在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是些什么关系呢,它们背后到底是基于什么原理实现的呢,了解这些是实现分布式服务框架的基础知识,而如果在性能上有高的要求的话,那深入了解这些技术背后的机制就是必须的了。1 基本原理转载 2016-07-01 14:22:39 · 8888 阅读 · 0 评论 -
基于Dubbo框架构建分布式服务
Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务应用场景来选择合适的集群容错模式,这个对于很多应用都是迫切希望的,只需要通过简单的配置就能够实现分布式服务调用,也就是说服务提供方(Provider)发布的服务可以天然就是集群服务,比如,在实时性要求很高的应用场景下,可能希望来自消费方(Consumer)的调用响应时间最短,只需要选转载 2016-01-12 12:43:26 · 466 阅读 · 0 评论 -
Java通用数据访问层 Uncode-DAL
Uncode-DAL 网站 : http://git.oschina.net/uncode/uncode-dal-all本着不重复造轮子的原则,基于mybatis、spring jdbc、hibernate等ORM的通用数据访问层,支持基于datasource的读写分离、主备自动切换和故障转移,支持简单的负载均衡。特性:基于mybatis、spring jdbc、hib转载 2016-01-11 11:17:18 · 1149 阅读 · 0 评论 -
Dubbo架构设计详解
原文地址:http://shiyanjun.cn/archives/325.htmlDubbo架构设计详解Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象转载 2016-01-11 22:06:00 · 372 阅读 · 0 评论 -
Java动态代理与Cglib库
JDK动态代理 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 按照代理的创建时期,代理类可以分为转载 2014-11-01 22:03:57 · 482 阅读 · 0 评论 -
JAX-RS简介
JAX-RS是JAVA EE6引入的一个新技术。 JAX-RS即Java API for RESTful Web Services,是一个Java编程语言的应用程序接口,支持按照表述性状态转移(REST)架构风格创建Web服务。JAX-RS使用了Java SE5引入的Java标注来简化Web服务的客户端和服务端的开发和部署。JAX-RS提供了一些标注将一个资源类,一个POJO Ja原创 2014-07-15 08:49:57 · 556 阅读 · 0 评论 -
JAX-RS入门 五: 自动类型转换
一、默认类型转换规则 在上一节中,已经了解了怎么使用那个annotations去提取请求中各种信息,不过得到的信息值默认都是一个string类型。 这一节介绍JAX-RS一些内置的自动类型转换及其规则。 理论上JAX-RS可以将请求信息转换成任一Java类型,只要该Java类型满足以下条件之一:1. 基本类型: int、short、float、double、byte原创 2014-07-15 08:48:50 · 411 阅读 · 0 评论 -
JAX-RS入门 三 :细节
一、若希望一个Java类能够处理REST请求,则这个类必须至少添加一个@Path("/")的annotation;对于方法,这个annotation是可选的,如果不添加,则继承类的定义。 二、一个方法上只有添加了某个Http Method的annotation,例如@GET,才有资格处理请求。 三、@Path里的值可以是一个复杂的表达式,例如@Path("{id}") ,其中 {i原创 2014-07-15 08:47:21 · 714 阅读 · 0 评论 -
JAX-RS入门 四: 注入
一、Annotations· @javax.ws.rs.PathParam: 从URI模板参数中提取数据· @javax.ws.rs.MatrixParam:从URI中提取Matrix参数· @javax.ws.rs.QueryParam:从URI中提取查询参数· @javax.ws.rs.FormParam:提取Post F原创 2014-07-15 08:48:16 · 516 阅读 · 0 评论 -
JAX-RS入门 二 :运行
上一节,已经成功的定义了一个REST服务,并且提供了具体的实现,不过我们还需要把它运行起来。 在上一节的装备部分,列举了必须的jar(在tomcat中运行)和可选的jar(作为一个独立的应用程序运行)。这一节将分别介绍如何做为一个独立的应用程序运行和如何在tomcat里运行。 Tomcat(或者其他Web容器)中运行要在tomcat之类的容器里运行,首先需要定义一个Applic原创 2014-07-15 08:46:31 · 718 阅读 · 0 评论 -
JAX-RS入门 一 :基础
简介JAX-RS是一套用java实现REST服务的规范,提供了一些标注将一个资源类,一个POJOJava类,封装为Web资源。标注包括:· @Path,标注资源类或方法的相对路径· @GET,@PUT,@POST,@DELETE,标注方法是用的HTTP请求的类型· @Produces,标注返回的MIME媒体类型· @Con原创 2014-07-15 08:45:40 · 1028 阅读 · 0 评论 -
HttpClient使用详解
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会转载 2016-01-08 10:46:30 · 321 阅读 · 0 评论 -
基于Dubbo的Hessian协议实现远程调用
原文地址:http://shiyanjun.cn/archives/349.htmlDubbo基于Hessian实现了自己Hessian协议,可以直接通过配置的Dubbo内置的其他协议,在服务消费方进行远程调用,也就是说,服务调用方需要使用Java语言来基于Dubbo调用提供方服务,限制了服务调用方。同时,使用Dubbo的Hessian协议实现提供方服务,而调用方可以使用标准的Hess转载 2016-01-12 12:48:34 · 931 阅读 · 0 评论 -
ElasticSearch-2.0.0集群安装配置与API使用实践
ElasticSearch是基于全文搜索引擎库Lucene构建的分布式搜索引擎,我们可以直接使用ElasticSearch实现分布式搜索系统的搭建与使用,都知道,Lucene只是一个搜索框架,它提供了搜索引擎操作的基本API,如果要实现一个能够使用的搜索引擎系统,还需要自己基于Lucene的API去实现,工作量很大,而且还需要很好地掌握Lucene的底层实现原理。ElasticSearch是一转载 2016-01-12 13:29:37 · 901 阅读 · 0 评论 -
为 Java EE 应用提供的 9 种 Docker 方法
原文地址:http://www.admin10000.com/document/6116.html你想在 Java EE 应用中使用 Docker 吗? 一个典型的Java EE应用程序由应用服务器(例如:WildFly)和数据库(例如:Mysql)组成的。除此以外,你也许还需要一个前端负载:例如Apache,用于多台应用服务器的负载均衡,缓存:例如Infinispan,可以转载 2016-07-02 11:57:20 · 1451 阅读 · 0 评论 -
HttpClient使用详解
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会转载 2016-06-24 12:38:18 · 510 阅读 · 0 评论 -
深入浅出Web Service
原文地址:http://siddontang.com/2014/10/16/head-first-web-service/什么是Web service首先根据Wiki的定义:A Web Service is a method of communication between two electronic devices over a network.简单来说,Web转载 2016-03-10 11:16:17 · 343 阅读 · 0 评论 -
freemarker数据类型
原文地址freemarker的数据类型主要包括下面几类:字符串类型定义字符串可以使用双引号和单引号,例如:或者这两种形式是相等的。字符串中可以使用转义字符"\"。如果字符串内有大量的特殊字符,则可以在引号的前面加上一个字母r,则字符串内的所有字符都将直接输出。例如:"It's \"quoted\"" 或者 r"C:\raw\string"数字类型输入不带引号的数转载 2016-03-06 21:19:21 · 554 阅读 · 0 评论 -
freemarker模板解析过程
原文地址例如:一个freemarker表达式 ${hello} ,会被解析成三个部分,分别是${hello}前面和后面的body标签,在freemarker中被定义为TextBlock,中间的变量定义为DollarVariable。那么目前的结构也就是RootExpression = TextBlock DollarVariable TextBlock。解释器一进来将会对R转载 2016-03-06 21:18:32 · 2354 阅读 · 0 评论 -
freemarker常用的基本命令
原文地址if,else,elseif指令switch,case,default,break指令list,break指令include指令import 指令noparse指令compress指令escape,noescape指令assign 指令global 指令local 指令setting 指令用户自定义指令()macro,nested,r转载 2016-03-06 21:17:32 · 327 阅读 · 0 评论 -
Freemarker 使用
原文地址以下内容全部是网上收集:FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组成:1,文本:直接输出的部分2,注释:格式部分,不会输出3,插值:即${...}或#{...}格式的部分,将使用数据模型中的部分替代输出4,FTL指令:FreeMarker指定,和HTML标记类似,名字前加#予以区分,不会输出转载 2016-03-06 21:16:20 · 271 阅读 · 0 评论 -
maven搭建jersey+Spring4+JPA+Druid+quartz
创建web项目首先创建基于Maven的Web项目,这里不多说,我博客里就有自己找下学习就可以。添加依赖包具体主要jar包的版本如下所示: UTF-8 4.2.4.RELEASE 4.3.11.Final 1.7.12 1.19 1.8.6这里说明下几个比较特殊的jar,其他的不进行说明了,后面会提供完成pom.xml进行下载:阿里的数据源,可以进原创 2016-01-13 19:09:38 · 2221 阅读 · 1 评论 -
Maven构建应用程序常用配置
使用Maven来构建应用程序,可以非常方便地管理应用相关的资源。众所周知,应用程序中涉及到的一些依赖关系,如Java应用程序依赖jar文件,如果只是手动找到相应的资源,可能需要花费一些时间。而且,即使已经积累了库文件,在未来应用程序升级以后,还要考虑到依赖库文件的升级情况,再次搜索收集。还有一个问题,对应用程序依赖文件的管理是个非常复杂工作,占用存储空间不说,还可能因为应用之间的版本问题导致依原创 2016-01-12 13:41:41 · 551 阅读 · 0 评论 -
ZooKeeper架构设计及其应用要点
原文地址:http://shiyanjun.cn/archives/474.htmlZooKeeper是一个开源的分布式服务框架,它是Apache Hadoop项目的一个子项目,主要用来解决分布式应用场景中存在的一些问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置管理等,它支持Standalone模式和分布式模式,在分布式模式下,能够为分布式应用提供高性能和可靠地协调服务转载 2016-01-12 13:34:37 · 361 阅读 · 0 评论 -
ZooKeeper-3.3.4集群安装配置
原文地址:http://shiyanjun.cn/archives/469.htmlZooKeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronization)、命名服务(Naming Service)、集群维护(Group Maintenance)等,简化分布式应用协调及其管理的难度,提供转载 2016-01-12 13:33:33 · 485 阅读 · 0 评论 -
jsp通过Cookie实现自动登录
一、什么是用户自动登录?对于我们的网站向已注册用户提供某些专门的服务,比如网上购物、在线下载、收费浏览等等,就会要求用户在使用这些服务之前进入登录页面,输入用户名和密码,并进行验证。如果用户经常访问我们的网站,假如每天都访问一次,或者好几次,那么用户每次都重复这些登录操作就会感到相当厌烦。通过一些简单的技术手段,我们可以让网站“记住”那些在曾经登录过的用户。当该用户下次再来访问的时候,网站可以转载 2016-01-08 10:29:07 · 6829 阅读 · 0 评论 -
基于servlet的文件下载
package org.lyt.util;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStr原创 2016-01-08 10:25:28 · 315 阅读 · 0 评论 -
RESTful API 设计指南
网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备......)。因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信。这导致API构架的流行,甚至出现"API First"的设计思想。RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。我以前写过一篇《理解RESTful架构》,探讨如何理解这个概转载 2014-07-16 10:52:28 · 486 阅读 · 0 评论 -
Json与bean互转的例子
第一种:public class JsonToJavaBean { public static void main(String[] args) { String str="{\"student\":[{\"name\":\"leilei\",\"age\":23},{\"name\":\"leilei02\",\"age\":23}]}"; St原创 2014-07-25 11:17:04 · 457 阅读 · 0 评论 -
jackson快速入门
1. 背景目前维护的产品使用jackson处理json,现整理一下jackson相关资料,希望对初次接触jackson的新手有所帮助。 jackson主页: http://jackson.codehaus.org/ jackson document: http://wiki.fasterxml.com/JacksonJavaDocs JacksonInFi原创 2014-07-25 12:35:03 · 539 阅读 · 0 评论 -
理解RESTful架构
越来越多的人开始意识到,网站即软件,而且是一种新型的软件。这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合,现在我们必转载 2014-07-16 10:54:02 · 348 阅读 · 0 评论 -
JacksonInFiveMinutes
Inspired by the quality and variety of XML tooling available for the Java platform (StAX, JAXB, etc.), theJackson is a multi-purpose Java library for processingJSON. Jackson aims to be the best po转载 2014-07-25 11:17:43 · 412 阅读 · 0 评论 -
cookie写总结
1、Cookie技术:客户端技术Cookie是一段小信息。Servlet把这些小信息写到客户端的缓存中(Set-Cookie),客户端还能带着小信息给服务器(Cookie)。a、Cookie的属性 name:(必须的) value:(必须的) comment:(可选的)针对该Cookie的注释。 path:(可选的)默认值是写Cookie的那个Ser原创 2014-07-26 13:18:46 · 492 阅读 · 0 评论 -
对JavaEE中session的理解
在做网站开发的时候,我们经常会用到session对象,下面我来谈谈对session的理解; Java Servlet API引入session 机制来跟踪客户的状态,session指的是在一段时间内,单个客户和web服务器之间一连串的交互过程,在一个session中,一个客户可能会多次请求同一个网页,也可能请求多个不同服务器资源,例如:在一个邮件系统应用中,从一个客户登录到邮件系统,到写信原创 2016-01-08 10:21:46 · 1574 阅读 · 0 评论 -
如何用FreeMarker生成静态页面
FreeMarker适合于作为Web应用的表现层,那么我们就把把页面中所需要的样式放入FreeMarker文件中,然后将页面所需要的数据动态绑定,并放入Map中,通过调用FreeMarker模板文件解析类process()方法完成静态页面的生成。了解了上面的原理,接下来我就一步步带您实现FreeMarker生成静态页面。Java代码 package tool; im原创 2016-01-08 10:21:14 · 534 阅读 · 0 评论 -
shiro权限管理的一个interceptor
import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactor转载 2016-01-08 10:14:07 · 872 阅读 · 0 评论 -
Session共享实现方案调研
1.背景随着互联网的日益壮大,网站的pv和uv成线性或者指数倍的增加.单服务器单数据库早已经不能满足实际需求。目前大多数大型网站的服务器都采用了分布式服务集群的部署方式,所谓集群,就是让一组计算机服务器协同工作,解决大并发,大数据量瓶颈问题。但是在服务集群中,session共享往往是一个比较头疼的问题。因为session是在服务器端保存的,如果用户跳转到其他服务器的话,session就会丢转载 2016-01-08 10:09:06 · 229 阅读 · 0 评论 -
基于poi的Excel工具类修订版
对于J2EE项目导入导出Excel是最普通和实用功能,本工具类使用步骤简单,功能强大,只需要对实体类进行简单的注解就能实现导入导出功能,导入导出操作的都是实体对象.请看一下这个类都有哪些功能: * 1.实体属性配置了注解就能导出到excel中,每个属性都对应一列. * 2.列名称可以通过注解配置. * 3.导出到哪一列可以通过注解配置.转载 2016-01-08 09:19:24 · 898 阅读 · 0 评论 -
druid配置
1、 配置和dbcp类似,druid的配置项如下配置缺省值说明name 配置这个属性的意义在于,如果存在多个数据源,监控的时候可以通过名字来区分开来。如果没有配置,将会生成一个名字,格式是:"DataSource-" + System.identityHashCode(this)jdbcUrl 连接数据库的ur转载 2016-01-07 21:38:34 · 392 阅读 · 0 评论 -
JBoss AS7 快速配置
文档下载:http://www.minunix.com/docs/document/JBoss_AS7.pdf本文介绍了JBoss AS7 的新特性、部署和管理的基础知识,通过本文的学习,开发者可以快速地了解和使用JBoss 7。 笔者也和您一样,是初者,文档尚存在不足之处,如果发现有错误的地方,还请您指出,我会更新文档,如果有人转载,请注明出处!谢谢!!一、 JBoss A转载 2016-01-04 10:24:01 · 1138 阅读 · 0 评论