- 博客(179)
- 资源 (18)
- 收藏
- 关注
原创 Java发送Email
使用Java应用程序发送E-mail十分简单,下面主要演示,发送普通的Email;发送HTML类型的Email;发送带附件的Email。一、 首先配置需要的jar包 我们需要将mail.jar和activation.jar 两个jar包添加到我们的CLASSPATH中,你可以在JavaMail API和JAF(JavaActivation Framework)下载最
2015-06-24 17:46:37 1438 2
原创 Java多线程编程— 线程同步问题
一、 互斥锁的概念 我们知道,一个进程中的多个线程是可以共享这个进程的系统资源的。如果多个线程同时修改统一个资源(对象)就会导致这个资源的不稳定性和某一时刻的不准确性。 于是,为了保证共享数据操作的完整性,在Java语言中,引入了对象互斥锁的概念。每个对象都对应于一个可称为“互斥锁”的标记,这个标记保证在任一时刻,只能有一个线程访问该对象。 关键
2015-06-23 17:07:39 1062 2
原创 Java多线程编程— 概念以及常用控制
多线程能满足程序员编写非常有效率的程序来达到充分利用CPU的目的,因为CPU的空闲时间能够保持在最低限度。有效利用多线程的关键是理解程序是并发执行而不是串行执行的。例如:程序中有两个子系统需要并发执行,这时候就需要利用多线程编程。线程的运行中需要使用计算机的内存资源和CPU。一、 进程与线程的概念 这两者的概念,这里只给出自己狭隘的理解: 进程 进程是一个独立的活动的实
2015-06-23 16:26:37 1301 2
原创 Java反射
一、 概念 一句话说明反射“反射就是把Java类中的各种成分映射成相应的Java类”。如果你对反射足够的了解,相信你一定会对这句话有很多共鸣。 换句话说:一个类中的每个成员都可以用相应的反射API类的一个实例对象来表示(如下图),通过调用Class类的方法(getField、getMethod、getConstructor等)可以得到这些实例对象。
2015-06-21 17:20:50 1009 3
转载 AOP 续
本文是《AOP 那点事儿》的续集。在上篇中,我们从写死代码,到使用代理;从编程式 Spring AOP 到声明式 Spring AOP。一切都朝着简单实用主义的方向在发展。沿着 Spring AOP 的方向,Rod Johnson(老罗)花了不少心思,都是为了让我们使用 Spring 框架时不会感受到麻烦,但事实却并非如此。那么,后来老罗究竟对 Spring AOP 做了哪些改进呢?
2015-06-21 16:53:18 835 1
转载 AOP
大神写的文章看着就是爽,还是忍不住转载了,原文:http://my.oschina.net/huangyong/blog/161338今天我要和大家分享的是 AOP(Aspect-Oriented Programming)这个东西,名字与 OOP 仅差一个字母,其实它是对 OOP 编程方式的一种补充,并非是取而代之。翻译过来就是“面向方面编程”,可我更倾向于翻译为“面向切面编程”。它听起有
2015-06-21 16:50:33 1129 3
转载 CAS—登录后返回更多用户信息
从cas server登录成功后,默认只能从casclient得到用户名。但程序中也可能遇到需要得到更多如姓名,手机号,email等更多用户信息的情况。cas client拿到用户名后再到数据库中查询,的确可以得到关于该用户的更多信息。但是如果用户登录成功后,直接从cas server返回给casclient用户的详细信息,这也是一个不错的做法。这个好处,尤其是在分布式中得以彰显,cas
2015-06-15 20:11:36 7954 5
原创 CAS—注销登录后跳转到登录页
CAS单点登出后,默认会跳到它自带的注销界面(这里建立在已部署好CAS—Server的基础上,详情见上篇文章),如下图: 对应的jsp如下目录:1、修改cas-servlet.xml配置 打开【apache-tomcat-6.0.33\webapps\cas\WEB-INF】目录下的cas-servlet.xml 修改cas-servlet.xml文件的bean的
2015-06-03 08:50:58 18427 7
原创 CAS—修改默认登录页
1、 部署CAS-Server 本文以cas-server-3.4.11-release.zip为例,解压提取cas-server-3.4.11/modules/cas-server-webapp-3.4.11.war文件。然后,解压一个新的tomcat,我的目录为【H:\常用软件\03. Java\tomcat\apache-tomcat-6.0.33】,然后把上面提取的文件copy到
2015-06-03 00:37:42 12674 8
原创 CAS—认证原理
CAS,Central Authentication Service—中央认证服务,是Yale 大学发起的一个企业级的、开源的项目,旨在为Web应用系统提供一种可靠的SSO解决方案。下面简单介绍SSO,重点介绍CAS认证过程。一、 SSO简介 1.1 概念 SSO英文全称Single Sign On,是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应
2015-06-03 00:08:44 41154 21
原创 java集合排序
实际开发中,我们经常需要对一个实体集合中的实体按照实体的某一个字段进行排序,然后再有序地显示到界面上。例如:我们得到了一个学生集合,而需求要求我们可以按照学生的姓名排序或学生成绩排序。 我们得到的实体集合一般是List或Set类型,所以这里就对二者的排序进行简介。1、List排序 List集合本身是有序的,所以对它的排序较简单,这里根据List集合元素的类型分为如下两类:
2015-05-31 15:24:21 2087 3
转载 权限控制模型—RBAC
RBAC(Role-Based AccessControl,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。与ACL实现的区别在于,不能直接为用户分配权限,只能从角色那里继承而来。1. RBAC权限模型 在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。
2015-03-10 11:45:43 8798 12
原创 SpringMVC 3.0 常用注解简介
1. 注册注解处理器 命名空间 首先,如果要使注解工作,则必须配置component-scan 。该配置的功能为:启动包扫描功能,以便注册带有@Controller、@Service、@repository、@Component等注解的类成为spring的bean。例: base-package 属性指定了需要扫描的类包,类包及其递归子包中所有的类都会被处理。
2015-03-01 14:50:28 8952 19
原创 Spring MVC 3.0简介
1. 背景介绍 Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和
2015-02-28 19:28:54 2885 10
原创 Maven仓库—Nexus环境搭建及简单介绍
1. 环境搭建 1.1 下载 http://www.sonatype.org/nexus/ NEXUS OSS [OSS = Open Source Software,开源软件——免费] NEXUS PROFESSIONAL -FREE TRIAL [专业版本——收费]。 所以选择NEXUS OSS 找到Dow
2015-02-25 21:18:45 70759 20
原创 Maven中的核心概念
我们最能感受到的Maven的好处应该是它的“自动化构建”与“管理依赖关系”两大功能,下面就看围绕这两大功能的Maven中的核心概念。1. 项目目录 Maven 使用约定优于配置的原则 。它要求在没有定制之前,所有的项目都有如下的主要目录结构: 一个 maven 项目在默认情况下会产生 JAR 文件,另外 ,编译后 的 .classe文件 会放在 $
2015-02-25 16:23:43 3871 10
原创 Maven安装及与Eclipse集成
1. 安装 Maven不需要作为服务组件安装到Windows上,仅仅需要下载、解压、配置一下环境变量即可。 1.1 JDK和JAVA_HOME 在安装Maven之前,首先要确认你已经正确安装了JDK。Maven可以运行在JDK1.4及以上的版本上。首先,运行命令【echo % java_home % 】检查环境变量JAVA_HOME是否指向了正确的JDK
2015-02-24 21:24:45 8736 9
原创 Maven基础
1. 何为Maven Maven 是一个跨平台的项目管理和构建自动化工具。但是对于我们程序员来说,我们最关心的是它的项目构建功能。Maven 是基于项目对象模型的(POM),这个单词来自于“意第绪语(一种犹太人语言)”,意为“知识的积累”。作为Apache组织中一个颇为成功的开源项目,Maven主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。2. 何为构建(
2015-02-24 11:33:08 1826 9
原创 Ejb-开发持久化Bean
首先,持久化Bean跟普通Java Bean无异,区别在于为了让Ejb容器可以识别,它们用Ejb的Annotation进行了标识。1. 持久化Bean的基本要求 Ø 一个实体类(即普通的POJO),并将其标识为@Entity。 Ø 实体类必须要有主键,一般用@Id将其标识。 Ø 在/META-INF/目录下,有persistence.xml文件,其主要作用是定义实
2015-02-16 17:04:01 967 8
原创 Ejb-客户端类型及访问方式
1. 简介 我们知道Ejb的客户端仅通过业务逻辑Bean所定义的接口来访问业务逻辑,跟具体实现无关。 当在开发企业Bean之前,首先要做的第一个决定是,EJB要支持什么样的客户端?因为不同的客户端,其访问方式也将不同,对Ejb的注解也将不同。 Ejb支持的客户端有如下几种类型: Ø 本地客户端(客户端与其调用的Ejb对象在同一个JVM进程中) Ø 远程客户端
2015-02-15 17:36:35 1754 5
原创 Ejb-有状态&无状态SessionBean
1. Ejb的分类 首先,企业级Bean分为三类: SessionBean用于实现业务逻辑,它可以是有状态的,也可以是无状态的。每当客户端请求时,容器就会选择一个SessionBean来为客户端服务。SessionBean可以直接访问数据库,但更多时候,它会通过EntityBean实现数据访问。 Entity Bean是域模型对象(用来表示真实世
2015-02-14 22:04:48 2030 8
原创 Ejb—开发模型与实例
1. 开发模型 这里用最简洁的一个Ejb项目模型来简介Ejb的开发过程与调用原理。粗略的开发过程如下: Ø 首先,新建Ejb项目,并部署到JBoss服务器(作为服务端)。 Ø 然后,新建普通Java项目作为客户端。(客户端的概念是相对的,它可以是任何类型的项目,包括可以是另一个Ejb项目) Ø 最后,将Ejb项目中的接口打包为jar包,并添加到客户端,客户端即可
2015-02-14 16:46:26 3973 8
原创 JavaEE容器简介
1、定义 容器就是组件和底层服务细节之间的接口。在web组件、企业级Bean等能够执行之前,它必须被装配为一个JavaEE模块,并部署在容器上。如下图: 装配的过程主要包括:定制容器事务管理特性;JNDI服务等。当然,在JAVA EE中,各种不同类型的模块既可以单独打包(JAR)部署,也可以将这些模块综合起来做成一个EAR包进行部署。2、服务 Ja
2015-02-13 21:10:14 5073 7
原创 Java EE应用程序的组件构成与EJB 的出现
1、Java EE应用程序的组件构成(分布式多层应用架构) Java EE应用程序由组件构成: 客户端组件与运行在服务器端的业务逻辑组件通信时,既可以直接访问,也可以通过Web层的组件访问,如下图: SSH架构在整个JavaEE架构中的位置: JavaEE组件经过部署之后,被安装到JavaEE服务器中。JavaEE服务器提供web
2015-01-31 11:12:38 2393 11
原创 Spring AOP中的JDK动态代理与CGLIB代理
1、在Spring中的应用 Spring在将Advice织入目标对象的Joinpoint是在运行时动态进行的。它采用的方式可能有两种,即JDK动态代理与CGLIB代理。Spring会根据具体的情况在两者之间切换。 实际情况如下: Ø 如果目标对象实现了接口,那么Spring默认会采用JDK的动态代理实现AOP Ø 如果目标对象实现了接口,也可以强制使用CGLIB生成代理
2014-12-28 21:48:11 2660 15
转载 静态代理&动态代理
代理概念代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理;而,具体的业务操作由真实委托类执行。为了保持行为的一致性,代理类和委托类通常会实现相同的接口,所以在访问者看来两者没有丝毫的区别。通过代理类这中间一层,能有效控制对委托类对象的直接访问,也可以很好地隐藏和保护委托类
2014-12-28 20:15:38 890 13
原创 Spring 对 AOP 的支持
1、AOP概念 首先,AOP是对OOP的一个补充。它考虑的是“横切性”问题。横切性问题即可以理解为我们同一层类的问题(例如:Service层)。 它的理念是,把遍历在系统各个角落具有横切性的独立的服务,抽出来放到一个地方,然后等到运行时,再放进去,考虑的是“横向”的东西。将横切性关注的东西给抽出来,会使代码大大减少,更加简洁,更加有复用性。 下图展示AOP中的基本概念:
2014-12-28 17:24:06 1120 13
原创 Spring Bean的作用域
1. 常用的两种作用域 Ø scope="singleton" Ø scope="prototype" 首先,scope="singleton"是Spring的IoC容器创建Bean的默认作用域,它表示每个Bean只会创建一次,并将该Bean的状态进行保存,然后再次从IoC容器中拿同一个Bean时直接取用即可,不用再次创建。 然后, scope="prototype"表
2014-12-28 15:10:05 971 12
原创 流程技术
上篇文章回顾了流程思想的发展史: Ø 首先是企业运营所面临的管理问题推动了流程管理思想的萌芽; Ø 接着信息技术驱动的流程自动化推动了流程管理思想的进一步发展; Ø 接着企业以职能进行组织的组织模式问题重重,促使了BPI的诞生,而BPI又对信息技术提出以信息技术为实施核心的要求; Ø 之后,如何以业务流程为中心组织企业的整个运营,催生了BPM管理思想及技术;
2014-11-30 21:47:37 2904 13
原创 流程管理思想
1. 出现 随着当今世界高速运转变化,企业、组织周围的一切环境,包括社会、政治、经济、技术等等环境,也都在高速地发生着变化。外部环境的变化,必然要求组织和企业内部的业务运营能对此快速响应,其响应速度直接决定了它们的竞争优势。这宣告着,现代商业市场的竞争,已从“大鱼吃小鱼”过渡到了“快鱼吃慢鱼”。对企业管理而言,如何实现敏捷的企业流程,真正实现拥抱变化,实现大象也能起舞的理念,
2014-11-30 17:41:35 2666 9
原创 Spring基础
1. Spring的出现 Spring是为了解决企业应用程序开发复杂性而创建的一个开源的轻量级的框架。所谓框架,就是针对某组问题的一组解决方案。也就是某组问题用不用框架都可以解决,只不过框架提供了一套较优的解决方案。那么下面就看Spring框架具体解决了开发中的什么问题。2. Spring 的作用 首先,Spring的主要作用就是“管理对象以及对象之间的依赖关系”:
2014-11-29 20:13:59 994 10
原创 Java5新特性之枚举
1. 概念 首先,枚举并不是一种新技术,而是一种基础数据类型.它隶属于两种基础类型中的值类型,如下: 2. 为什么要有枚举 枚举在真正的开发中是非常常用的,它的作用很简单也很纯粹:它定义了一种规范,就是要让某个类型的变量的取值只能为若干个固定值中的一个,也就是要符合它定义的规范.它可以让编译器在编译时就可以识别程序中填写的非法值,一定程度上防止了运行
2014-09-29 01:11:02 1974 26
原创 Java5新特性之静态导入、可变参数、增强for循环、自动拆装箱
JDK1.5已经发布很长时间,之所以还拿出来是因为它增加了很多个重要的特性,使用这些特性有助于我们简化开发,编写的代码更加简洁清晰安全,主要有以下几个特性: Ø 静态导入 Ø 可变参数 Ø 增强for循环 Ø 自动拆装箱 Ø 泛型 Ø 枚举 由于泛型、枚举内容比较多,也最重要,之后单拿出来讲。这里先介绍前面四个简单而又实用的小特性
2014-09-27 21:25:35 1533 22
原创 泛型
1. 概念解析 首先要知道这里的泛型是针对参数类型而言的,从字面上理解:“泛”字很好理解,体现的当然是“泛化”也就是“抽象”思想,在某种程度上扩展了参数类型的范围。“型”字又可(狭隘的)理解为强类型支持,即参数类型必须属于某种类型;而且对此种类型又可能做一定的限制,也就是所谓的“泛型参数约束”。“强类型支持”与“泛型参数约束”都在某种程度上限制了参数类型的范围,体现了“细化”的思想。
2014-09-18 00:37:08 2493 39
原创 Filter基础
一、概要 简单的说,Filter的作用就是拦截Tomcat的service(Request,Response)方法,拿到Request、Response对象进行处理,然后释放控制,继续自动流转。其运用的还是“分层”的思想。 至于为什么要加入这一层,为什么要对Request、Response对象进行拦截,个人感觉根本原因是为了对多个服务器资源(Servlet、JSP等)的请求、相应进行一
2014-08-28 01:01:53 1821 20
原创 几种网站开发模型- Model1、Model2、三层
以目前自己的理解,所接触到的面向对象思想中最重要的是“抽象”,软件设计目标中最重要的是“可以应对需求的变化(增加或更改)”。 思考一下,无论是“分层”思想,还是“设计模式”思想,还是“泛型”思想等,应该可以说最终的目的都是为了“可以应对需求的变化”,且都充盈着“抽象”。 分层是为了使得“大变小、繁变易”,而针对不同的现实情况,它可以演化出千变万化的原型。分层是一种思想,而Model1、
2014-08-26 00:49:34 4266 21
原创 XML基础以及用DOM4j读取数据
都知道,HTML被设计用来显示数据,XML被设计用来保存、传输数据。而我们平时经常用的无非是保存数据、读取数据。所以这里主要介绍XML相关基础内容,以及用DOM4j来存取XML的数据。下面简介XML相关的基础内容——命名空间、XSL、DTD与Schema基本结构 -------------------------------------------------------
2014-07-31 23:42:41 1652 18
原创 JSP基础
JSP的出现 上篇文章中提到了用Servlet开发,渲染客户端页面是需要一句一句输出的,这样,编写和修改HTML都会非常不方便。也就是说Servlet写“业务层”很合适,但是写“表现层”很繁琐。 于是写“表现层”很方便的JSP就诞生了。这里需要指明,JSP并没有增加任何本质上不能用Servlet实现的功能。但是,在JSP中编写静态HTML更加方便,不必再用println语句来输出每一行
2014-07-30 00:43:37 1431 21
原创 Servlet基础
首先Servlet的命名源于Server+Applet,它就是一个继承了HttpServlet类的一个普通的java类。 都知道它的作用类似于ASP.NET中的HttpHandler(一般处理程序),不错,在.NET中其实用HTML页+HttpHandler+DAL来开发网站,效率是最高的,而且完全可以实现。因为这样就抛掉了我们传统开发所用的大量服务器控件,用纯的HTML控件开发不需要服务器
2014-07-29 00:47:14 1331 22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人