自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 资源 (28)
  • 收藏
  • 关注

转载 重新认识同步与异步,阻塞和非阻塞的概念

 前言在实际的开发中,我们经常会听到同步,异步,阻塞,非阻塞这些编程概念,每次遇到的时候都会蒙圈,然后就各种查网上似是而非的资料,结果越查越迷糊,大部分文章都千篇一律,没有说到本质上的区别,所以下次再碰到这些概念,印象还是比较模糊,尤其是在一些场景下同步与阻塞,异步与非阻塞感觉没啥区别,但其实这四个术语描述的事物还真不是一回事。下面我们来慢慢探讨他们之间的区别与联系,在这之前,我们...

2018-08-28 14:40:27 256

原创 Shiro原理剖析

Apache Shiro是一个强大而灵活的开源安全框架,它能够干净利落地处理身份认证、授权、企业会话管理和加密。相比spring security框架更简单灵活,spring security对spring依赖较强。shiro可以实现web系统、c/s、分布式等系统权限管理。 Shiro完整架构图,如下图: 核心组件:Sub...

2018-08-09 01:25:28 6270 1

原创 基于Redis实现的单点登录

        背景:        每个web应用都有自己的session,那如何在分布式或者集群环境下统一session,即如何实现单点登录,如下图                解决方案:        把session数据存放在redis,统一管理,向外提供服务接口,redis可以设置过期时间,对应session的失效时间        优点:存取速度快,效率高;无单点...

2018-08-08 12:36:23 11169 4

原创 SSO CAS原理剖析

       SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。       CAS(Central Authentication Service)是Yale大学发起的一个企业级的、开源的项目,旨在...

2018-08-08 00:37:43 618

原创 java抽象类和接口的定义及区别

抽象类:        使用了关键词abstract声明的类叫作抽象类。抽象类的特性:        1. 抽象类不能被实例化,如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。        2. 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。        3. 抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现。 ...

2018-08-07 00:42:07 306

转载 spring中自定义Event事件的使用和浅析

       在我目前接触的项目中,用到了许多spring相关的技术,框架层面的spring、spring mvc就不说了,细节上的功能也用了不少,如schedule定时任务、Filter过滤器、 interceptor拦截器等等,而这一篇我要说的是spring Event自定义事件,目前的项目中似乎没怎么用,但是这一项技术貌似还蛮重要,所以也不能不掌握。 对于事件驱动模型的解释和理解,我觉得有...

2018-07-31 16:49:43 1109

转载 java程序员成长之路

转载:http://www.banzg.com/archives/679.html?ref=myread阿里面试回来,想和Java程序员谈一谈引言其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来。LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容基本上忘得一干二净,所以写这篇文章其实是很有难度的。但是,最

2018-01-18 10:07:56 292

转载 微服务架构的基础框架选择:Spring Cloud还是Dubbo?

最近一段时间不论互联网还是传统行业,凡是涉及信息技术范畴的圈子几乎都在讨论微服务架构。近期也看到各大技术社区开始组织一些沙龙和论坛来分享Spring Cloud的相关实施经验,这对于最近正在整理Spring Cloud相关套件内容与实例应用的我而言,还是有不少激励的。目前,Spring Cloud在国内的知名度并不高,在前阵子的求职过程中,与一些互联网公司的架构师、技术VP或者CTO在交流

2017-09-04 14:32:29 441

转载 java 分布式锁方案

第一步,自身的业务场景:在我日常做的项目中,目前涉及了以下这些业务场景:场景一: 比如分配任务场景。在这个场景中,由于是公司的业务后台系统,主要是用于审核人员的审核工作,并发量并不是很高,而且任务的分配规则设计成了通过审核人员每次主动的请求拉取,然后服务端从任务池中随机的选取任务进行分配。这个场景看到这里你会觉得比较单一,但是实际的分配过程中,由于涉及到了按用户聚类的问题,所以要比

2017-08-30 14:15:53 413

转载 Redis应用场景

1.  MySQL+Memcached架构的问题Memcached采用客户端-服务器的架构,客户端和服务器端的通讯使用自定义的协议标准,只要满足协议格式要求,客户端Library可以用任何语言实现。Memcached服务器使用基于Slab的内存管理方式,有利于减少内存碎片和频繁分配销毁内存所带来的开销。各个Slab按需动态分配一个page的内存(和4Kpage的概念不同,这

2017-08-29 15:12:10 388

转载 activeMQ深入了解—队列模式手动控制消费

相信经过了解,基本使用activemq后,大家一定知道队列里面有ACK模式,他的类型有以下几种1、AUTO_ACKNOWLEDGE = 1    自动确认2、CLIENT_ACKNOWLEDGE = 2    客户端手动确认3、DUPS_OK_ACKNOWLEDGE = 3    自动批量确认4、SESSION_TRANSACTED = 0    事务提交并确认

2017-08-02 11:52:01 1037

转载 activeMQ消息类型

Activemq消息类型JMS规范中的消息类型包括TextMessage、MapMessage、ObjectMessage、BytesMessage、和StreamMessage等五种。ActiveMQ也有对应的实现,下面我们结合Spring JMS分别来看一下五种消息类型的收发代码。1、TextMessage/** * 向指定Destination发送text消息

2017-08-02 11:47:43 1113

转载 spring activeMQ 整合(四): JMS 事务管理

1.为什么要用事务?       消息事务是在生产者producer到broker或broker到consumer过程中同一个session中发生的,保证几条消息在发送过程中的原子性。       可以在connection的createSession方法中指定一个布尔值开启,如果消息确认机制是事务确认,那么在发送message的过程中session就会开启事务(实际上broker的)

2017-08-02 11:24:42 706

转载 spring activeMQ 整合(五): 死信队列

1.死信队列和回退队列的区别: 这篇文章写得非常到位:http://blog.csdn.NET/coderepository/article/details/70233042.什么是死信队列:DLQ-死信队列(Dead Letter Queue)用来保存处理失败或者过期的消息。出现以下情况时,消息会被redelivered A transacted session is u

2017-08-02 11:22:57 741

转载 spring activeMQ 整合(三): 确认机制ACK(收到消息后,应该有一个回应也就是确认答复)

之前写的spring   activemq整合的demo   ,今天继续完善一下这个demo,让功能更强大。Spring ActiveMQ 整合(一): 一个简单的demo,测试消息的发送与接收 Spring ActiveMQ 整合(二): 重发机制(消息发送失败后的重新发送)继上篇文章之后,我消息发送失败后,可以重新发送了。但是至于别人有没有收到,这就不得

2017-08-02 11:15:12 1949

转载 spring activeMQ 整合(二): 重发机制(消息发送失败后的重新发送)

之前已经写了一个spring   activemq整合的demo   ,今天继续完善一下这个demo,让功能更强大。Spring ActiveMQ 整合(一): 一个简单的demo,测试消息的发送与接收           假如现在我手里有一个很重要的消息的,想要发给一个人,但是很不幸,消息发送失败了。这时候怎么办呢怎么解决这种尴尬的情况,这时候我们可以利用activeMQ的 

2017-08-02 10:56:51 2884

转载 spring activeMQ 整合(一): 一个简单的demo,测试消息的发送与接收

环境:     windows环境下: spring 3.2.8     、Tomcat 7    、JDK 1.6  、 ActiveMQ 5.9.0  项目目录结构:          applicationContext.xml[html] view plain copy  bean id="connecti

2017-08-02 10:55:49 326

转载 activeMQ的应用场景

MQ的学习目前流行的就是:activemq、ZeroMQ、RabbitMQ、kafka、rocketmq,学习RabbitMQ就可以了,这个就很强大。rabbitMQ的优点(适用范围)     1. 基于erlang语言开发具有高可用高并发的优点,适合集群服务器。    2. 健壮、稳定、易用、跨平台、支持多种语言、文档齐全。    3. 有消息确认机制和持久化机制,可靠性高。

2017-08-02 10:54:19 1308

转载 activeMQ技术分享

本次引入ActiveMQ的背景:ActiveMQ主要解决什么问题:       在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。比如记录用户的操作日志。这部分就能提出来。操作日志,这种东西,用户也不会马上去看他,为何不用更好的技术,ActiveMQ呢,这样做还节省了服务器请求响应时间。一

2017-08-02 10:51:42 601

转载 Mybatis简介与原理

什么是Mybatis       MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data A

2017-03-06 22:35:05 374

转载 ibatis简介

背景 介绍ibatis实现之前,先来看一段jdbc代码: Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/learnworld"; Connection con = DriverManager.getConnection(url, "root","learnworld

2017-03-06 01:03:45 1033

原创 RocketMQ简介

RocketMQ是一款分布式、队列模型的消息中间件。特点:1. 能够保证严格的消息顺序2. 提供丰富的消息拉取模式3. 高效的订阅者水平扩展能力4. 实时的消息订阅机制5. 亿级消息堆积能力6. 较少的依赖选用理由:1. 强调集群无单点,可扩展,任意一点高可用,水平可扩展。2. 海量消息堆积能力,消息堆积后,写入低延迟。3. 支持上万个队列4. 消息失败重试机制5. 消息...

2017-03-01 00:07:09 755

转载 TCP、Socket、HTTP简介

一、什么是TCP连接的三次握手  第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;  第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;  第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ac

2017-02-27 17:30:52 250

转载 ASM简介

一、什么是ASM  ASM是一个Java字节码操纵框架,它能被用来动态生成类或者增强既有类的功能。ASM 可以直接产生二进制 class 文件,也可以在类被加载入 Java 虚拟机之前动态改变类行为。Java class 被存储在严格格式定义的 .class文件里,这些类文件拥有足够的元数据来解析类中的所有元素:类名称、方法、属性以及 Java 字节码(指令)。ASM从类文件中读入

2017-02-23 14:30:13 2776

原创 redis简介

redis是什么:Redis is an open source, BSD licensed,advanced key-value store. It is often referred to as a data structure serversince keys can contain strings, hashes, lists, sets and sorted sets.redis...

2017-02-22 23:49:01 467

原创 memcached简介

memcached是一个基于内存的Key-Value分布式缓存系统memcached特性1. C/S模式架构2. 协议简单3. 支持epoll/kqueue异步I/O模型4. key-value键值对数据类型5. 全内存缓存,效率高6. 支持分布式集群memcached工作原理与机制memcached是一套C/S模式架构的软件,在服务器端启动memcached服务守护进程,可以...

2017-02-22 23:10:08 460

原创 redis与memcached区别

定义:redis是一个基于内存亦可持久化的日志型、Key-Value数据库。memcached是一个基于内存的Key-Value分布式缓存系统。PS :redis单线程共同点:1. 可以做缓存2. 支持字符串3. 用于减少数据库负载,提升性能区别:1. redis支持字符串(string)、链表(link)、无序集合(set)、有序集合(sorted set)和哈希(hash),...

2017-02-21 18:03:21 1433

原创 java综合技术

JAVA三大框架SSH的各自作用使用框架的优点:使项目结构清晰、易于维护;可以提高工作效率Struts是一个MVC框架;主要负责视图层、控制层,在视图层提供了大量的标签库,提高视图层的开发效率,在控制层使用中央控制器(Actionsupport)和配置文件(struts.xml),实现拦截用户请求、封装请求参数及页面导航。Hibernate应用于数据持久化层,是对JDBC的轻量级封装。是一个...

2017-02-07 23:58:21 491

转载 HashTable的实现原理

概述和 HashMap 一样,Hashtable 也是一个散列表,它存储的内容是键值对。Hashtable 在 Java 中的定义为:public class Hashtable extends Dictionary implements Map, Cloneable, java.io.Serializable{}从源码中,我们可以看出,Hash

2017-01-11 00:44:21 290

转载 HashMap实现原理分析

1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。      数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难

2017-01-11 00:42:40 306

原创 HashMap和HashTable异同点及使用场景

HashMap和HashTable异同点及使用场景HashMap和HashTable异同点及使用场景 线程安全不同 是否允许null值不同 继承实现方式不同 初始容量和扩容策略不同 计算hash的方法不同 使用场景 线程安全不同Hashtable是线程安全,HashMap非线程安全。是否允许null值不同HashMap可以使用nul...

2017-01-11 00:32:36 5532 3

转载 Java过滤器与SpringMVC拦截器之间的关系与区别

今天学习和认识了一下,过滤器和SpringMVC的拦截器的区别,学到了不少的东西,以前一直以为拦截器就是过滤器实现的,现在想想还真是一种错误啊,而且看的比较粗浅,没有一个全局而又细致的认识,由于已至深夜,时间原因,我就把一些网友的观点重点摘录下来,大家仔细看后也一定会有一个比较新的认识(在此非常感谢那些大牛们的无私奉献,分享他们的经验与心得,才能让像我这样的小白有机会站一下你们这些巨人的肩膀,才能

2016-12-28 14:43:31 305

转载 Spring事务管理(详解+实例)

写这篇博客之前我首先读了《Spring in action》,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下:Spring事务机制详解Spring事务配置的五种方式Spring中的事务管理实例详解1 初步理解理解事务之前,先讲一个你日常生活中最常干的事:取钱。 比如你去ATM机

2016-12-19 15:31:49 527

转载 spring事务管理总结

Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。    DataSource、TransactionManager这两部分只是会根据数据访问方式有所变化,比如使用Hibernate进行数据访问时,DataSource实际为SessionFactory,T

2016-12-19 15:30:52 271

转载 DelegatingFilterProxy类的作用

使用过springSecurity的朋友都知道,首先需要在web.xml进行以下配置 springSecurityFilterChain org.springframework.web.filter.DelegatingFilterProxy targetFilterLifecycle true springSec

2016-11-08 14:53:41 23791 4

转载 icePDF去水印方法

使用icePDF带字体架包进行pdf转图片时,会有官方的水印。可以通过反编译架包来去除水印,只需修改架包中的两个类即可。 1、首先下载到icepdf的架包。2、用解压缩软件,对该jar文件进行解压,得到名为icepdf-core的文件夹。3、找到2个要修改的class文件,用反编译软件,另存成java文件。在icepdf-core\org\i

2016-11-03 11:09:09 875

转载 JAVA的pdf转图片方法

JAVA中实现pdf转图片可以通过第三方提供的架包,这里介绍几种常用的,可以根据自身需求选择使用。一、icepdf。有收费版和开源版,几种方法里最推荐的。转换的效果比较好,能识别我手头文件中的中文,就是转换后可能字体的关系部分字间距有点宽。因为,字体支持是要收费的,所以转换的图片会带有官方的水印。去水印的方法可以查看另一篇文章:icepdf去水印方法1、下载icepdf的架包,并导

2016-11-03 11:06:04 18163 5

转载 SSO CAS原理浅谈

1. CAS简介   SSO是一个非常大的主题,我对这个主题有着深深的感受,自从广州UserGroup的论坛成立以来,无数网友都在尝试使用开源的CAS,Kerberos也提供另外一种方式的SSO,即基于Windows域的SSO,还有就是从2005年开始一直兴旺不衰的SAML。   如果将这些免费的SSO解决方案与商业的Tivoli或Siteminder或RSA Secure

2016-10-03 01:01:55 2796

转载 JavaWeb 服务启动时,在后台启动加载一个线程

JavaWeb 服务启动时,在后台启动加载一个线程。 目前,我所掌握的一共有两种方法,第一种是监听(Listener),第二种是配置随项目启动而启动的Servlet。 下面对这两种方法做一简单的介绍,(Mark一下,防止以后急用又忘记了): 监听(Listener) 首先,我们创建一个监听的类,继承ServletContextListener,如下: 源码复制打印 

2016-09-05 21:16:52 352

原创 普通java类获取项目的根目录

import org.springframework.web.servlet.support.RequestContext;//获取项目的classes目录,例如:D:/songjinzhou/software/apache-tomcat-7.0.52/webapps/项目名/WEB-INF/classes/String root = RequestContext.class.getR...

2016-09-05 18:15:24 3475

基于redis的sso接口文档和教程

基于redis实现的单点登录这套方案比SSO CAS来说比较简单,容易上手,主要是依赖每个应用的拦截器和redis实现单点登录。

2018-08-08

icepdf-5.0.7和pdfbox-app-2.0.2的jar包

java的pdf文件转图片需要使用的jar包(包括icepdf和pdfbox两种方式),jar分别是:icepdf-5.0.7和pdfbox-app-2.0.2

2016-11-10

icepdf jar包

icepdf-core.jar、icepdf-viewer.jar

2016-11-03

Oracleclient

Oracleclient

2016-08-19

cas的assets文件

cas的assets文件

2016-08-08

干净的apache-tomcat-6.0.37

干净的apache-tomcat-6.0.37

2016-08-05

apache-tomcat-6.0.37_8380_backend

apache-tomcat-6.0.37_8380_backend

2016-08-05

apache-tomcat-6.0.37_8280_cas

apache-tomcat-6.0.37_8280_cas

2016-08-05

项目进度计划文档

项目进度计划文档

2016-06-21

extjs4_任务调度管理系统

一个使用extjs4开发的一个任务调度管理系统。

2016-02-05

视屏截图教程

视屏截图教程,自己保留一份而已,大家不要下载

2016-02-05

springMVC+ibatis+hibernate+spring+boostrap框架的lib包

springMVC+ibatis+hibernate+spring+boostrap框架的lib包

2016-01-15

springMVC+ibatis+hibernate+spring+boostrap框架

springMVC+ibatis+hibernate+spring+boostrap框架

2016-01-12

spring security3动态权限

struts2 + spring3 + hibernate3 + spring security3 + mysql + tomcat sys_users;sys_roles;sys_authorities;sys_resources;sys_users_roles;sys_roles_authorities;sys_authorities_resources; PS:此项目运行不起来的,请参考代码,呵呵!

2015-06-15

springSecurity3简单例子

使用springSecurity3开发的一个简单例子,登录使用sql方式控制,权限使用AOP的方式配置,类似于声明式事务的配置!

2015-05-18

spring security3教程

spring security3教程

2015-05-03

Spring+Security3中文教程.pdf

Spring+Security3中文教程.pdf

2015-04-28

extjs4_权限系统

一个使用extjs4开发的一个权限系统!

2015-04-22

sso cas server原始代码

sso cas单点登录,服务端(server)原始代码

2015-04-13

cas server assets文件

sso cas单点登录的server assets文件

2015-04-13

cas server

sso cas单点登录服务端(server)源代码

2015-04-13

Kettle文档

30几个kettle学习文档,例如:ETL工具Kettle用户手册.doc、kettle常见问题FAQ.doc、Kettle集群.pdf等等

2015-03-15

framework rapid

framework rapid 快速开发框架

2015-03-03

sshi+bootstrap

一个strust spring hibernate ibatic bootstrap结合起来的项目

2015-02-13

email发送工具类

email发送工具类

2015-01-28

jquery项目

一个使用jquery开发的项目

2015-01-20

s2sh lib jar包

springMVC hibernate spring lib

2015-01-20

s2sh全面jar包

最全面的s2sh jar包,里面还包括logger、注释等jar包!

2011-07-09

空空如也

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

TA关注的人

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