- 博客(281)
- 收藏
- 关注
原创 Cxf中获取Http对象
介绍在使用Cxf的过程中如何获取到Webservice对应的Http对象,比如HttpServletRequest对象。
2017-05-17 17:45:41 13312 1
原创 Web环境使用相对路径发布Webservice
webservicecxfCXFServletCXFNonSpringServlet相对地址发布Web环境使用相对路径发布Webservice 通常我们的Webservice服务的发布地址都将是一个相对路径,在与Spring一起使用时我们需要引入Cxf配置Webservice的schema,如jaxws,用以定义对应的Webservice。 xml version="1.0" en
2017-05-17 13:57:10 12508
原创 Cxf拦截器
Cxf拦截器 拦截器是Cxf的基础,Cxf中很多的功能都是由内置的拦截器来实现的,拦截器在Cxf中由Interceptor表示。Cxf的拦截器包括入拦截器和出拦截器,所有的入拦截器或出拦截器构成了一个拦截器链,它们可以作用在Server端也可以作用在Client端。当需要使用拦截器链处理消息的时候,Cxf会确保对应的消息被拦截器链里面的每一个拦截器都执行一遍。拦截器链在Cxf中由In
2017-05-17 08:59:39 12350
原创 JaxWs基于消息编程
JaxWs 基于消息编程1 两种消息模式2 三种数据类型2.1 Source2.2 SOAPMessage2.3 DataSource3 服务端访问底层信息4 客户端访问底层消息4.1 Dispatch的三种请求方式5 统一入口6 注意6.1 MESSAGE和PAYLOAD的区别 通过SEI(Se
2017-05-16 14:29:14 13568
原创 Spring使用Cache、整合Ehcache
Spring使用Cache、整合Ehcache 从3.1开始,Spring引入了对Cache的支持。其使用方法和原理都类似于Spring对事务管理的支持。Spring Cache是作用在方法上的,其核心思想是这样的:当我们在调用一个缓存方法时会把该方法参数和返回结果作为一个键值对存放在缓存中,等到下次利用同样的参数来调用该方法时将不再执行该方法,而是直接从缓存中获取结果进行返回。所
2017-05-15 16:25:11 13355
原创 Ehcache(09)——缓存Web页面
页面缓存目录1 SimplePageCachingFilter1.1 calculateKey1.2 可配置的初始化参数1.2.1 cacheName1.2.2 blockingTimeoutMillis2 SimpleCachingHeadersPageCachingFilter3 SimplePageFragmentCac
2017-05-15 08:52:27 11607
原创 Ehcache(08)——可阻塞的Cache—BlockingCache
可阻塞的Cache—BlockingCache 在上一节我们提到了显示使用Ehcache锁的问题,其实我们还可以隐式的来使用Ehcache的锁,那就是通过BlockingCache。BlockingCache是Ehcache的一个封装类,可以让我们对Ehcache进行并发操作。其内部的锁机制是使用的net.sf.ehcache.concurrent.ReadWriteLockSync
2017-05-12 15:29:23 13599
原创 Ehcache(07)——Ehcache对并发的支持
Ehcache对并发的支持 在高并发的情况下,使用Ehcache缓存时,由于并发的读与写,我们读的数据有可能是错误的,我们写的数据也有可能意外的被覆盖。所幸的是Ehcache为我们提供了针对于缓存元素Key的Read(读)、Write(写)锁。当一个线程获取了某一Key的Read锁之后,其它线程获取针对于同一个Key的Read锁不会受到限制,但其它线程(包括获取了该Key的Read锁
2017-05-12 14:01:00 12569 1
原创 Ehcache(06)——监听器
监听器 Ehcache中监听器有两种,监听CacheManager的CacheManagerEventListener和监听Cache的CacheEventListener。在Ehcache中,Listener是通过对应的监听器工厂来生产和发生作用的。下面我们将来介绍一下这两种类型的监听器。 1 CacheManager监听器 Ehcache中定义了一个Cac
2017-05-11 19:26:04 11937
原创 Ehcache(05)——缓存的查询
目录1. 使Cache可查询1.1 基于Xml配置1.2 基于代码的配置2 指定可搜索的属性2.1 可查询属性类型2.2 属性的提取2.2.1 定义自己的AttributeExtractor2.2.2 JavaBeanAttributeExtractor2.2.3 ReflectionAttributeExtractor2.2.4 DynamicAttributesExtractor2.3 通过程序指定可查询
2017-05-11 08:56:57 12124
原创 Ehcache(04)——设置缓存的大小
设置缓存的大小 目录1 CacheManager级别2 Cache级别3 大小衡量4 配置大小示例 缓存大小的限制可以设置在CacheManager上,也可以设置在单个的Cache上。我们可以设置缓存使用内存的大小,也可以设置缓存使用磁盘的大小,但是使用堆内存的大小是必须设置的,其它可设可不设,默认不设就是无限制。在设置缓存大小的时候,我们可以设置缓存
2017-05-10 19:03:49 11783
原创 Ehcache(03)——Ehcache中储存缓存的方式
Ehcache中储存缓存的方式 目录1 堆内存(MemoryStore)1.1 指定可用内存1.2 驱除策略1.3 元素过期2 非堆内存(BigMemory)3 磁盘(DiskStore)3.1 指定可用容量3.2 元素过期 在Ehcache中对于缓存的存储主要有三种方式:分别是堆内存、非堆内存和磁盘。其中非堆内存是针对
2017-05-09 14:14:56 13288
原创 Ehcache(02)——ehcache.xml配置简介
ehcache.xml简介 ehcache.xml文件是用来定义Ehcache的配置信息的,更准确的来说它是定义CacheManager的配置信息的。根据之前我们在《Ehcache简介》一文中对CacheManager的介绍我们知道一切Ehcache的应用都是从CacheManager开始的。在不指定配置信息参数创建CacheManager时,CacheManager将首先在类路径的
2017-05-09 10:31:51 13475
原创 简单的Jax-WS webservice实现
目录 1 定义Service2 服务端发布Service2.1 排除WebService中的某个方法3 客户端访问Service4 java2ws工具的使用4.1 命令行使用java2ws4.2 Maven使用java2ws5 基于Spring的Jax-ws WebServ
2017-05-08 15:04:18 11800
原创 简单的Webservice实现
1 简介 Cxf有四个主要的类: Service:它是对应WebService服务类及其操作的抽象代表,包括数据绑定类型、正在使用的拦截器等其他信息。 Endpoint:它可以接收消息,其主要功能是持有拦截器,并且可以监听出现的错误,客户端和服务端都需要使用到Endpoint。 Server:服务端的代表。
2017-05-04 14:07:45 12457 1
原创 Ehcache(01)——简介、基本操作
Ehcache简介目录1 CacheManager1.1 构造方法构建1.2 静态方法构建2 Cache2.1 Cache的创建 Ehcache是用来管理缓存的一个工具,其缓存的数据可以是存放在内存里面的,也可以是存放在硬盘上的。其核心是CacheManager,一切Ehcache的应用都是从Cac
2017-05-03 19:44:54 11817 3
原创 Mybatis指定日志输出实现
Mybatis指定日志输出实现 在程序开发过程中,为了调试方便、了解程序的运行过程,进行必要的日志输出总是免不了的。对于使用Mybatis而言,我们常见的需求是希望可以在日志中打印出Mybatis执行过程中进行数据库操作的SQL语句及其传递的参数。Mybatis的日志输出是统一管理的,它有自己的日志接口,然后在需要进行日志输出的时候使用统一的API进行日志输出。这个统一的接口是
2017-05-03 17:56:06 16284 1
原创 Mybatis介绍之参数传递
Mybatis介绍之参数传递9.1 使用Mapper接口时参数传递方式 Mybatis在使用Mapper接口进行编程时,其实底层是采用了动态代理机制,表面上是调用的Mapper接口,而实际上是通过动态代理调用的SqlSession的对应方法,如selectOne(),有兴趣的朋友可以查看DefaultSqlSession的getMapper()方法实现,其最终会获得一个
2017-05-03 17:08:49 13042
原创 Mybatis介绍之缓存——一级缓存和二级缓存
Mybatis介绍之缓存Mybatis中有一级缓存和二级缓存,默认情况下一级缓存是开启的,而且是不能关闭的。一级缓存是指SqlSession级别的缓存,当在同一个SqlSession中进行相同的SQL语句查询时,第二次以后的查询不会从数据库查询,而是直接从缓存中获取,一级缓存最多缓存1024条SQL。二级缓存是指可以跨SqlSession的缓存。 Mybatis中进行SQ
2017-05-02 17:43:52 13817
原创 Mybatis结果集自动映射
Mybatis结果集自动映射 在使用Mybatis时,有的时候我们可以不用定义resultMap,而是直接在语句上指定resultType。这个时候其实就用到了Mybatis的结果集自动映射。Mybatis的自动映射默认是开启的,其在映射的时候会先把没有在resultMap中定义字段映射的字段按照名称相同的方式自动映射到返回类型的对应属性上。自动映射的时候会忽略大小写,比如查
2017-05-02 17:02:35 14556
原创 Mybatis的Executor介绍(二)——批处理
Mybatis的Executor介绍(二)——批处理 在程序中,有时候我们需要批量的去操作一些数据,批量的新增、修改、删除,如果是通过for循环一条记录一条记录的去更新无疑效率会比较慢。更佳的做法无疑是采用JDBC对批处理的支持。Mybatis基于JDBC对批处理的支持,也提供了进行数据的批量操作的API,BatchExecutor。下面是一段JDBC进行批量操作的示例代码。
2017-04-28 17:14:04 15288
原创 Mybatis的Executor介绍(一)
Mybatis的Executor介绍(一) Mybatis中所有的Mapper语句的执行都是通过Executor进行的,Executor是Mybatis的一个核心接口,其定义如下。从其定义的接口方法我们可以看出,对应的增删改语句是通过Executor接口的update方法进行的,查询是通过query方法进行的。虽然Executor接口的实现类有BaseExecutor和Ca
2017-04-28 17:08:54 17195
原创 Cas(09)——Cas Proxy原理,通过Cas Proxy访问其它Cas应用
通过Proxy访问其它Cas应用 考虑这样一种场景:有两个应用App1和App2,它们都是受Cas Server保护的,即请求它们时都需要通过Cas Server的认证。现需要在App1中通过Http请求访问App2,显然该请求将会被App2配置的Cas的AuthenticationFilter拦截并转向Cas Server,Cas Server将引导用户进行登录认证,这样我们也就
2017-04-28 08:46:28 18271 7
原创 Cas(08)——单点登出
单点登出 1.1 Cas Client端配置单点登出 单点登出功能跟单点登录功能是相对应的,旨在通过Cas Server的登出使所有的Cas Client都登出。Cas Server的登出是通过请求“/logout”发生的,即如果你的Cas Server部署的访问路径为“https://localhost:8443/cas”时,通过访问“https://local
2017-04-27 19:36:20 13131
原创 Cas(07)——建立使用Cas进行单点登录的应用
建立使用Cas进行单点登录的应用 根据之前的描述我们知道,Cas由两部分组成,Cas Server和Cas Client。Cas Server是Cas自己的服务端,而Cas Client是Cas客户端,其需要与我们自己的应用进行集成。 1.1 加入cas-client-core-xxx.jar到classpath 在我们下载的Cas Clie
2017-04-27 19:33:25 12669
原创 Mybatis查询延迟加载
Mybatis查询延迟加载 1.1 启用延迟加载 Mybatis的延迟加载是针对嵌套查询而言的,是指在进行查询的时候先只查询最外层的SQL,对于内层SQL将在需要使用的时候才查询出来。Mybatis的延迟加载默认是关闭的,即默认是一次就将所有的嵌套SQL一并查了将对象所有的信息都查询出来。开启延迟加载有两种方式。 第一种是在对应的或标签上指定fetc
2017-04-27 17:46:09 13670 2
原创 Mybatis核心杂谈
Mybatis杂谈 本文主要介绍Mybatis的配置解析对应的Class、Mybatis的全局配置等,每个点都不会讲太多细节的东西,只是提一下对应的点,更多细节的东西请有兴趣的读者自己去挖掘。1.1 配置解析 Mybatis有一堆的配置,有Mybatis的全局配置文件,有Mapper.xml文件,Mapper.xml文件里面又有select、i
2017-04-27 16:28:56 12791
原创 Mybatis表对象继承实现
Mybatis表对象继承 我们一般用表来表现对象之间的继承关系时通常有三种方式。第一种是把所有对象包含的属性都存放在一张表中,然后用一个字段来区分当前记录对应的对象类型;第二种是每个子类型一张表,每张表都存该对象所有的属性;第三种是基类作为一张表进行存储,每个子类特性的属性都新建一张表进行保存,然后在基类对应的表里面通过一个字段来区分对象的类型。第二种跟普通的处理方式没有什么区;第
2017-04-27 10:49:09 23678 1
原创 Mybatis通过一条SQL查出关联的对象
Mybatis通过一条SQL查出关联的对象以往在做对象的查询时如果需要把关联的对象一起查出来是通过resultMap的子查询来进行的。通过子查询来进行的关联对象的查询时,Mybatis会重新发起一次数据库请求,这在有的时候性能方面不是特别的好,我们期望可以用一条SQL语句就把主体对象以及关联的对象都查出来,Hibernate其实是有对应的实现,Mybatis现在也有对应的支持(笔者以前刚开始接
2017-04-24 17:47:08 14014
原创 Cas(06)——基于数据库的认证
基于数据库的认证 Cas Server自身已经为我们实现了几种基于JDBC的AuthenticationHandler实现,但它们不包含在Cas Server的核心包里面,而是包含在cas-server-support-jdbc中,如果我们要使用Cas Server已经实现好的基于JDBC的AuthenticationHandler,我们必须先将cas-server-sup
2015-03-18 20:01:30 13274
原创 Cas(05)——修改Cas的其它配置
修改Cas Server的其它配置 1.1 修改host.name host.name是定义在cas.properties文件中的一个属性。该属性将被定义在uniqueIdGenerators.xml文件中的各种UniqueTicketIdGenerator用来生成TGT、ST等ticket。默认在生成这些ticket时会将host.name作为对应ticket的后
2015-03-08 09:20:17 15493
原创 Cas(04)——更改认证方式
在Cas Server的WEB-INF目录下有一个deployerConfigContext.xml文件,该文件是基于Spring的配置文件,里面存放的内容常常是部署人员需要修改的内容。其中认证方式也是定义在这个文件中的,id为authenticationManager的bean的authenticationHandlers即定义了需要使用的AuthenticationHandler列表。默认使用
2015-03-05 15:04:39 13464
原创 Cas(03)——Cas Server中各配置文件介绍
Cas Server中各配置文件介绍 Cas Server中所有的配置文件都是放在WEB-INF目录及其子目录下的。 在WEB-INF/classes下的配置文件有: cas-theme-default.properties:该文件存放的是css文件的路径,用户可以在这里指定使用的css文件为自定义的css文件,也可以更改配置文件中对应的css文件
2015-03-04 13:42:35 13773
原创 Cas(02)——部署Cas Server
部署Cas Server Cas应用都需要有一个Cas Server。Cas Server是基于Java Servlet实现的,其要求部署在Servlet2.4以上版本的Web容器中。在此笔者将其部署到tomcat7中。Cas Server是要求使用https协议进行访问的,所以如果你的Web容器没有开启https通道,则需先开启。1.1 开启tomcat7的ht
2015-02-12 21:45:47 13598
原创 Cas(01)——简介
Cas的全称是Centeral Authentication Service,是对单点登录SSO(Single Sign On)的一种实现。其由Cas Server和Cas Client两部分组成,Cas Server是核心,而Cas Client通常就对应于我们的应用。一个Cas Server可以对应于多个Cas Client。它允许我们在一个Client进行登录以后无需再让用户输入用户名和密码
2015-02-06 10:04:04 13824 5
原创 Spring整合Hessian访问远程服务
Spring整合Hessian访问远程服务1.1 Hessian简介 Hessian是一个轻量级的Web服务实现工具,它采用的是二进制协议,因此很适合发送二进制数据。它的一个基本原理就是把远程服务对象以二进制的方式进行发送和接收。1.2 整合1.2.1 概述对于Hessian而言,有服务端和客户端,所以我们的整合也需要分服务端的整合和客户
2015-02-04 15:43:15 13114
原创 SpringMVC表单标签简介
SpringMVC表单标签简介 在使用SpringMVC的时候我们可以使用Spring封装的一系列表单标签,这些标签都可以访问到ModelMap中的内容。下面将对这些标签一一介绍。 在正式介绍SpringMVC的表单标签之前,我们需要先在JSP中声明使用的标签,具体做法是在JSP文件的顶部加入以下指令: Jsp代码 "http://www.springf
2015-02-03 12:33:58 13045 1
原创 SpringMVC介绍之Validation
SpringMVC介绍之Validation 对于任何一个应用而言在客户端做的数据有效性验证都不是安全有效的,这时候就要求我们在开发的时候在服务端也对数据的有效性进行验证。SpringMVC自身对数据在服务端的校验有一个比较好的支持,它能将我们提交到服务端的数据按照我们事先的约定进行数据有效性验证,对于不合格的数据信息SpringMVC会把它保存在错误对象中,这些错误信息我
2015-02-01 10:34:04 12957
原创 SpringMVC介绍之约定优于配置
SpringMVC介绍之约定优于配置 所谓的约定优于配置就是指在程序开发过程中我们约定好一些规则可以使我们更少的进行配置和代码编写。就这么简单的一句话可能你还不是很懂什么是约定优于配置,没关系,看完后面对SpringMVC的约定优于配置的介绍之后你就会明白了。 SpringMVC对约定优于配置的支持主要表现在三个方面,Model、View和Controller。
2015-01-24 11:21:03 13649 1
原创 SpringMVC之类型转换Converter
SpringMVC之类型转换Converter1.1 目录1.1 目录1.2 前言1.3 Converter接口1.4 ConversionService接口1.5 ConverterFactory接口1.6 GenericConverter接口1.6.1 概述1.6.2 Con
2015-01-02 11:06:10 13762
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人