自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(292)
  • 资源 (12)
  • 收藏
  • 关注

原创 【Nginx-反向代理服务器】基础知识(二)之多进程模式

Nginx的多进程模式 nginx在启动后,会有一个master进程和多个worker进程。master进程主要用来管理worker进程,包含:接收来自外界的信号,向各worker进程发送信号,监控worker进程的运行状态,当worker进程退出后(异常情况下),会自动重新启动新的worker进程。而基本的网络事件,则是放在worker进程中来处理了。多个worker进程之间是对等的,他们同等竞

2015-08-03 08:28:32 3095 2

原创 【Nginx-反向代理服务器】基础知识(一)之事件处理机制

反向代理服务器: 反向代理(ReverseProxy)方式是在服务器端接受客户端的请求,然后把请求分发给具体的服务器进行处理,然后再将服务器的响应结果反馈给客户端。 正向代理服务器与反向代理服务器的区别: 正向代理:用户A主动访问服务器B,但是用户A的所有请求都由代理服务器Z来处理,也就是在用户A访问服务器B时,会通过代理服务器Z 反向代理:反向代理正好与正向代理相反,用户A始终认为它访问的是原始

2015-08-02 22:05:18 3530 3

原创 Web Service学习-CXF与Spring整合为JavaEE应用发布WebService(三)

CXF与Spring整合,分两个方面给大家介绍: 1,在传统ssh项目基础上添加Web Service赋值CXF的jar包在web.xml配置文件中导入CXF的核心控制器:CXFServlet在Spring配置文件中导入CXF提供Schema,xml配置文件在Spring配置文件中使用jaxws:endpoint元素来暴露Web Service如果要添加拦截器,在jaxws:endpoint元素里

2015-08-02 14:52:29 8126 5

原创 Web Service学习-CXF开发Web Service的权限控制(二)

Web Service如何进行权限控制? 解决思路:服务器端要求input消息总是携带有用户名,密码信息,如果没有用户名和密码信息,直接拒绝调用 解决方案:拦截器 为了让程序员能访问,并修改CXF框架所生成的SOAP消息,CXF提供了拦截器 CXF(Celtix +XFire)说明: 如果不用CXF等框架,SOAP消息的生成,解析都是由程序员负责。无论是添加用户名,密码信息还是提取用户名,密码信息

2015-08-02 14:49:41 5946 3

原创 Web Service学习-CXF开发Web Service实例demo(一)

Web Service是什么? Web Service不是框架,更甚至不是一种技术。而是一种跨平台,跨语言的规范 Web Service解决什么问题: 为了解决不同平台,不同语言所编写的应用之间如何调用问题。例如,有一个C语言写的程序,它想去调用java语言写的某个方法。 集中解决:1,远程调用 2,跨平台调用 3,跨语言调用 实际应用: 1,同一个公司的新,旧系统的整合。Linux上的java应

2015-08-02 12:53:59 7380 7

原创 JAVA 并发编程-读写锁之模拟缓存系统(十一)

在多线程中,为了提高效率有些共享资源允许同时进行多个读的操作,但只允许一个写的操作,比如一个文件,只要其内容不变可以让多个线程同时读,不必做排他的锁定,排他的锁定只有在写的时候需要,以保证别的线程不会看到数据不完整的文件。这时候就需要使用读写锁。/** * 简单读写锁demo * @author hejingyuan * */public class ReadWriteLockTest

2015-08-01 17:31:44 2919 3

原创 JAVA 并发编程-线程同步工具类(十二)

本文主要介绍一些java线程同步工具类,并不进行具体讲解,当有需要时,可以再去结合实例学习。 信号灯(Semaphore) 应用场景举例: 例如公司的打卡系统,如果有一个打卡机,那么一次就只能有一个人打卡,其余的人就被阻塞住,打卡完以后就可由下一个人打卡。如果有3个打卡机,那么一次就允许3个人或者少于三个人打卡,其余的人就得等待打卡机空闲下来才能继续打卡。 结果: 已进入1个线程,还可进入2个已进

2015-08-01 17:31:10 2336 3

原创 JAVA 并发编程-线程同步通信技术(Lock和Condition)(十)

在之前的博客中已经介绍过线程同步通信技术《JAVA 并发编程-传统线程同步通信技术(四)》,上篇是使用的synchronized,wait,notify来实现,今天我们使用的是Lock和Condition,下面我们结合两者对比来学习。 简单的Lock锁应用:/** * 简单Lock的应用 * @author hejingyuan * */public class LockTest {

2015-08-01 10:01:48 2592 5

原创 JAVA 并发编程-返回执行结果(Callable和Future)(九)

启动一个线程不论使用Thread或者Runnable的时候,都是没有返回结果的。也就是说Thread和Runnable的run()方法必须没有返回值。   public void run(){} 解决方案: Callable和Future,一个产生结果,一个拿到结果。 简单的来一个实例demo帮助我们理解:public class CallableAndFuture { /** * @pa

2015-07-30 10:12:38 6460 6

转载 JAVA 并发编程-基于线程池设计的ScheduledExecutor(八)

上篇博客《JAVA 并发编程-线程池(七)》中曾介绍到newScheduledThreadPool(intcorePoolSize),创建corePoolSize大小的线程池。此线程池支持定时以及周期性执行任务的需求。    接下来我们一起来分析一下Java中几种任务调度实现与比较    任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务。 Timer相信大家都已经非常熟悉jav

2015-07-29 09:08:45 2003 3

原创 JAVA 并发编程-线程池(七)

线程池的作用:    线程池作用就是限制系统中执行线程的数量。   根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。 为什么要用线程池: 1.减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。2.可以根据系统的承受能

2015-07-27 19:21:57 2495 4

原创 JAVA 并发编程-多个线程之间共享数据(六)

多线程共享数据的方式: 1,如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据,例如,卖票系统就可以这么做。2,如果每个线程执行的代码不同,这时候需要用不同的Runnable对象,例如,设计4个线程。,其中两个线程每次对j增加1,另外两个线程对j每次减1,银行存取款 有两种方法来解决此类问题:将共享数据封装成另外一个对象,然后将这个对象逐一传递

2015-07-25 10:09:05 42790 20

原创 JAVA 并发编程-线程范围内共享变量(五)

线程范围内共享变量要实现的效果为: 多个对象间共享同一线程内的变量未实现线程共享变量的demo:package cn.itcast.heima2;import java.util.HashMap;import java.util.Map;import java.util.Random;public class ThreadScopeShareData { private stati

2015-07-23 15:43:54 7782 5

原创 JAVA 并发编程-传统线程同步通信技术(四)

首先介绍几个概念: wait()方法   wait()方法使得当前线程必须要等待,等到另外一个线程调用notify()或者notifyAll()方法。   当前的线程必须拥有当前对象的monitor,也即lock,就是锁。   线程调用wait()方法,释放它对锁的拥有权,然后等待另外的线程来通知它(通知的方式是notify()或者notifyAll()方法),这样它才能重新获得锁的拥有权和恢复执

2015-07-22 11:03:58 2817 4

原创 JAVA 并发编程-传统线程互斥技术(Synchronized)(三)

java线程互斥是为了保证,同一时刻最多只有一个线程执行该段代码。那么它的出现又是为了解决什么问题呢?账户存取款,在同一时间段只能让一个人进行操作。 下面来看一个简单实例(多线程带来的问题):public class TraditionalThreadSynchronized { /** * @param args */ public static void main(String[

2015-07-21 20:44:37 2924 3

原创 JAVA 并发编程-线程创建(二)

对于线程的创建及更加详细的信息可以参看博客《JAVA--线程》,下面是对线程创建的细化及简单再实现。在java中如果要创建线程的话,一般有两种方式:1)继承Thread类;2)实现Runnable接口。 方式一:继承Thread类 MyThread:package com.tgb.hjy;public class MyThread extends Thread{ private Stri

2015-07-21 16:25:22 2633 5

原创 JAVA 并发编程-线程与进程的由来(一)

在学习Java编程之初,我们就接触过Java线程,当时敲过代码也总结过,但是现在看来还是有点缺陷,并没有联系线程的由来来说明问题,只是简单的介绍了什么是进程,什么是线程,以及它们之间的关系-《Java-线程》。今天我们从进程和线程的由来来补充一下之前的总结。参考:http://www.cnblogs.com/dolphin0520/p/3910667.html一.操作系统中为什么会出现进程?说起进

2015-07-09 14:28:40 3440 5

原创 Spring Web Flow 入门demo(三)嵌套流程与业务结合 附源码

上篇博客我们说Spring web Flow与业务结合的方式主要有三种,下面我们主要介绍一下第三种的应用方式 3,执行到 元素SpringWeb Flow 中的这个 是专为执行业务逻辑而设的 state 。如果某个应用的业务逻辑代码既不适合放在transition 中由客户端来触发,也不适合放在 Spring Web Flow 自定义的切入点,那么就可以考虑添加 元素专用于该业务逻辑的执行。更倾

2015-07-03 14:42:49 7000 3

原创 Spring Web Flow 入门demo(二)与业务结合 附源码

第一部分demo仅仅介绍了简单的页面跳转,接下来我们要实现与业务逻辑相关的功能。业务的逻辑涉及到数据的获取、传递、保存,相关的业务功能函数的调用等内容,这些功能的实现都可用Java 代码来完成,但定义 Spring Web Flow 的语法与 Java 是无关的,这就要求 Spring Web Flow 提供与 Java代码的整合机制。要了解这种机制,关键在于搞清楚两个问题: 业务逻辑代码在什么时

2015-07-02 09:54:28 10068 5

原创 Spring Web Flow 入门demo(一)简单页面跳转 附源码

Spring Web Flow (SWF)是Spring Framework的一个脱离模块。这个模块是Spring Web应用开发模块栈的一部分,Spring Web包含Spring MVC。Spring Web Flow的目标是成为管理Web应用页面流程的最佳方案。当你的应用需要复杂的导航控制,例如向导,在一个比较大的事务过程中去指导用户经过一连串的步骤的时候,SWF将会是一个功能强大的控制器。

2015-06-16 09:32:21 41755 13

原创 【应用篇】Activiti外置表单实例demo(四)

在这里我想说的外置表单,是说我们将我们自己的jsp(.form,.html)等页面上传到工作流的数据库中,当任务执行到当前结点时,给我们像前台发送绑定好的表单。 此处是给表单绑定表单的过程不同意为:${deptLeaderPass =='false'} 下面我们看start.form对应的内容: 简单的html页面: 请假类型: 公休 病假 调休

2015-06-08 15:01:37 40755 9

原创 【应用篇】Activiti外置表单简单应用(三)

Activiti的简单应用,使用外置表单的方式将业务页面绑定到工作流的结点上,当执行到当前结点时,打印出绑定表单的内容。 新建4个form页面,页面内容随便写些内容即可:按照下图的方式依次绑定:流程变量设置如图,其他的类似:对应生成的xml:

2015-06-08 10:51:46 23213 4

原创 【应用篇】Activiti监听与业务颗粒结合的简单应用(三)

Activiti的简单应用,应用监听来实现简单的业务颗粒与工作流程结合,让流程带动业务颗粒执行的过程,此次的流程图应用多分支结构,并将流程中的判断值设为参数,由前台传递过去。 新建普通java类:package com.tgb.itoo.activiti.controller;public class xs { public static void SayHello(){ System

2015-06-02 14:56:58 6135 1

原创 【应用篇】Activiti监听(抽象)与业务颗粒结合的简单应用(二)

Activiti的简单应用,应用监听来实现简单的业务颗粒与工作流程结合,让流程带动业务颗粒执行的过程,此次的监听我们应用抽象的监听来实现,也就是说所有的普通业务类均应用此抽象监听,而不需要每一个类一个监听的来操作。 新建两个普通类:package com.tgb.itoo.activiti.controller;public class milaoshi { public static vo

2015-06-02 10:30:16 3893 3

原创 【应用篇】Activiti监听与业务颗粒结合的简单应用(一)

Activiti的简单应用,应用监听来实现简单的业务颗粒与工作流程结合,让流程带动业务颗粒执行的过程。 新建一个普通类新建一个监听类类似的再建两个类(ghy,xs)与两个监听(guhaiyanDelegate,xvshuDelegate) 画如下流程图:配置相应的属性 每个类上添加相应的监听 如图:给每条流向添加变量 如图:最终生成的配置文件 如下:启动流程对应的代码:执行结果:总结: 以上简单的

2015-05-31 19:21:31 4826 1

原创 SpringMVC入门学习(三)+Spring应用(整合)

在整合之前我们再来回顾一下Spring和SpringMVC Spring: Spring框架的核心是提供了一个容器,该容器可以对Bean组件进行管理,例如创建Bean对象,销毁一个Bean对象等操作.此外该容器还具有IOC和AOP高级特性,将Bean对象调用解耦. SpringMVC: spring mvc是类似于struts的一个MVC开源框架,其实都是属于spring,spring mvc需要

2015-05-29 17:04:28 1939 3

原创 深入浅出学Shiro(二)--授权认证

授权即访问控制,它将判断用户在应用程序中对资源是否拥有相应的访问权限。如,判断一个用户有查看页面的权限,编辑数据的权限,拥有某一按钮的权限,以及是否拥有打印的权限等等。    认证通过后接受 Shiro授权检查,授权验证时,需要判断当前角色是否拥有该权限。只有授权通过,才可以访问受保护 URL 对应的资源,否则跳转到“未经授权页面”。 首先来结合一个实例来说明: 上篇博客(深入

2015-05-05 20:47:33 3501 16

原创 深入浅出学Shiro(一)--登录认证

ApacheShiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能: Shiro为解决下列问题,提供了保护应用的API:  认证 - 用户身份识别,常被称为用户“登录”;  授权 - 访问控制;  密码加密 - 保护或隐藏数据防止被偷窥;  会话管理 - 每用户相关的时间敏感的状态。 对于任何一个应用程序,Shiro都可以提供全面的安

2015-05-02 20:46:49 9471 13

原创 CAS 实现单点登录(SSO)返回更多用户信息(五)

配置转换器返回更多用户信息从cas server登录成功后,默认只能从cas server得到用户名。但程序中也可能遇到需要得到更多如姓名,手机号,email等更多用户信息的情况。cas client拿到用户名后再到数据库中查询,的确可以得到关于该用户的更多信息。但是如果用户登录成功后,直接从cas server返回给cas client用户的详细信息,这也是一个不错的做法。这个好处,

2015-04-19 09:26:54 26860 21

原创 CAS 实现单点登录(SSO)数据库查询认证机制-自定义编码方式(四)

通过xml配置方式实现数据库查询认证,的确简单但是不够灵活。但是如果登录验证逻辑稍微复杂些,可能通过xml配置方式就不能满足需求了,比如:当用户登录时,需要判断该用户是否绑定了邮箱,如果未绑定,拒绝登录并给出提示信息。 遇到类似的情况,就需要使用自定义登录来完成,并且给出的提示信息也需要是自定义的。 自定义登录验证(默认实现QueryDatabaseAuthenticationHand

2015-04-18 11:47:07 8366 18

原创 CAS 实现单点登录(SSO)数据库查询认证机制-xml方式(三)

继前面介绍过基于CAS实现单点登录(SSO)的实例演示,演示过程中服务端认证机制采用的是默认配置即CAS Servier默认用户名和密码一致即可登录成功,那么本文将侧重于应用方面,真正通过查询用户名密码来进程验证用户是否可以登录。 CAS Server添加相关的jar包 需要在web项目的lib下添加两个包:cas-server-support-jdbc-x.x.x.jar和 mysq

2015-04-17 19:50:38 6219 13

原创 CAS 实现单点登录(SSO)简单实例demo(二)

本文目的很明确,并不是要逐步讲清楚每一步的操作,具体的步骤网上有很多,那么整理本文的目的只是要梳理一下自己的知识点,帮助自己加深理解。 小知识点积累: 域名地址的修改: 根据演示需求,用修改hosts文件的方法添加域名最简单方便(这个非常重要),在文件 C:\Windows\System32\drivers\etc\hosts 文件中添加三条 127.0.0.1

2015-04-07 16:55:39 19681 15

原创 Spring AOP应用实例demo

AOP(Aspect-Oriented Programming,面向方面编程),可以说是OOP(Object-OrientedPrograming,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。OOP的问题,AOP的补充:当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许你

2015-03-16 08:44:10 17035 13

原创 CAS 实现单点登录(SSO)基本实现流程(一)

单点登录(Single Sign On),简称为SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 CAS(Central Authentication Service),中央认证服务。CAS(Central Authentication Service)是一款不错的针对 Web应用的单点登录框架

2015-03-15 14:59:33 28308 29

原创 Spring IOC的简单实现(附demo)

简单的说,Spring就是通过工厂+反射将我们的bean放到它的容器中的,当我们想用某个bean的时候,只需要调用getBean("beanID")方法即可。 原理简单说明: Spring容器的原理,其实就是通过解析xml文件,通过反射创建出我们所需要的bean,再将这些bean挨个放到集合中,然后对外提供一个getBean()方法,以便我们获得这bean。 下面我们来简单

2015-03-10 12:27:30 5527 5

原创 OSGI实例demo说明(二)

下面我们就来真正的写一个实例demo,结合OSGI的优点来说明一下,该demo设计如下图:         这个demo包含五个Bundles:SayHello Bundle 包含一个接口,只有唯一的方法sayHello();BobSays、RodSays、KentSays三个Bundles分别实现了三个具体的sayHello();SayHelloService

2015-03-08 09:57:02 5263 3

原创 OSGI基础概括(一)

研究了两天的OSGI,对于这两天的学习进行一个简短的总结。 OSGi是什么 OSGi——Open Service Gateway Initiative 字面上的意思是一个公共的服务平台。OSGi亦称做Java语言的动态模块系统,它为模块化应用的开发定义了一个基础架构。简单说,它是是一个动态模块化框架的规范,提供了插件化、面向服务和插件扩展三大功能。这个规范体现非常重要的2点:“

2015-03-07 20:49:22 1937 3

原创 【整合篇】Activiti业务与流程整合之查询(三)

继前两篇博客:应用第三种方式 实体中不需要引入任何与工作流相关的任何属性,单纯的做好自己即可!例如如下申请实体(Leave):package com.tgb.itoo.basic.entity;import java.util.Date;import java.util.HashSet;import java.util.Map;import java.util.Set;

2015-02-23 19:15:09 6953 9

原创 【整合篇】Activiti业务与流程整合之查询(二)

继上篇博客:【整合篇】JBPM4.4业务与流程整合之查询 应用第二种方式:申请实体中加入需要的相应的工作流的属性package com.tgb.itoo.basic.entity;import java.util.Date;import java.util.HashSet;import java.util.Map;import java.util.Set;import javax

2015-02-23 14:18:35 8127 6

原创 【整合篇】Activiti业务与流程的整合

对于无论是Activtit还是jbpm来说,业务与流程的整合均类似,启动流程是绑定业务,流程与业务的整合放到动态代理中/** * 启动修改课程流程Leave leave, * * @param leave */ @RequestMapping(value = "start", method = RequestMethod.POST) p

2015-02-16 08:44:36 27278 9

Spring线程池demo

Spring 线程池 demo

2016-05-25

session共享 tomcat+nginx+memcache

tomcat+nginx+memcache+session 所需jar包,包括memcache等安装包

2016-03-12

CXF Spring 整合

Web Service学习-CXF与Spring整合为JavaEE应用发布WebService(三)

2015-07-31

CXF WebService带有拦截器

Web Service学习-CXF开发Web Service的权限控制(二)

2015-07-30

CXF开发Web Service实例demo

Web Service学习-CXF开发Web Service实例demo(一)

2015-07-30

Spring Web Flow

SpringWeb Flow 中的这个 <action-state> 是专为执行业务逻辑而设的 state 。如果某个应用的业务逻辑代码既不适合放在transition 中由客户端来触发,也不适合放在 Spring Web Flow 自定义的切入点,那么就可以考虑添加<action-state> 元素专用于该业务逻辑的执行。更倾向于触发某个事件来执行。

2015-07-02

Spring Web Flow CartApp4

CartApp3 demo仅仅介绍了简单的页面跳转,接下来我们要实现与业务逻辑相关的功能。 业务的逻辑涉及到数据的获取、传递、保存,相关的业务功能函数的调用等内容,这些功能的实现都可用 Java 代码来完成,但定义 Spring Web Flow 的语法与 Java 是无关的,这就要求 Spring Web Flow 提供与 Java 代码的整合机制。

2015-06-16

Spring Web Flow CartApp3

Spring Web Flow 的目标是成为管理Web应用页面流程的最佳方案。当你的应用需要复杂的导航控制,例如向导,在一个比较大的事务过程中去指导用户经过一连串的步骤的时候,SWF将会是一个功能强大的控制器。

2015-06-15

activiti外置表单demo

activiti外置表单demo实现 运行方式: 1,修改连接的数据库 2,初始化用户,初始化脚本在src/resources目录下 3,访问地址http://localhost:8080/activitiDemo 4,登录后,需要部署流程才可以使用,流程文件在diagrams文件夹下,打成压缩包上传即可。

2015-06-08

Spring IOC实现原理demo

Spring容器的原理 其实就是通过解析xml文件 通过反射创建出我们所需要的bean 再将这些bean挨个放到集合中 然后对外提供一个getBean 方法 以便我们获得这bean

2015-03-10

Eclipse搭建SSH架构

Eclipse搭建ssh框架,详细的搭建过程,逐步的整合过程!

2014-11-13

2012电算化题

2012年最新电算化试题,抓住机遇,相信自己肯定行!

2012-05-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除