- 博客(28)
- 收藏
- 关注
原创 spring的AOP(五)----Spring AOP 编程(AspectJ )
AspectJ 简介 AspectJ是一个面向切面的框架,它扩展了Java语言。AspectJ定义了AOP语法所以它有一个专门的编译器用来生成遵守Java字节编码规范的Class文件。 AspectJ是一个基于Java语言的AOP框架 Spring2.0以后新增了对AspectJ切点表达式支持 @AspectJ 是AspectJ1.5新增功能,通过JDK5注解技术,允许直接在Bean类中定义
2017-05-31 22:25:09 410
原创 spring的AOP(四)----Spring AOP 编程(Advisor)
Spring AOP增强类型 AOP联盟为通知Advice定义了org.aopalliance.aop.Interface.Advice Spring按照通知Advice在目标类方法的连接点位置,可以分为5类 1.前置通知 org.springframework.aop.MethodBeforeAdvice 在目标方法执行前实施增强 2.后置通知 org.springframework.ao
2017-05-31 21:42:15 551
原创 spring的AOP(三)----Cglib动态代理
CGLIB(CodeGenerationLibrary)是一个开源项目!是一个强大的,高性能,高质量的Code生成类库,它可以在运行期扩展Java类与实现Java接口。 如果被代理目标对象,没有实现任何接口,不能用JDK动态代理使,就要选用Cglib 类库进行动态代理。Cglib 使用原理流程 和 JDK代理 是类似的 其底层依赖一个工具类org.springframework.cglib.p
2017-05-31 20:44:35 1274
原创 spring的AOP(二)----JDK动态代理
JDK动态代理在1.3的时候引入,其底层需要依赖一个工具类java.lang.reflect.Proxy和一个接口java.lang.reflect.InvocationHandlerJDK 动态代理 必须基于 接口进行代理 代码示例: JdkProxyUtils.javapackage com.my.jdkproxy;import java.lang.reflect.InvocationHand
2017-05-31 20:25:55 1215 1
原创 spring的AOP(一)----AOP的概念及其相关术语
什么是AOP ? AOP的全称为Aspect Oriented Programing, 即面向切面编程。 AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码(性能监视、事务管理、安全检查、缓存)AOP的原理: 使用代理模式,在程序中为目标对象,创建一个代理对象,将重复代码抽取出来,在访问目标对象时,通过代理对象去调用重复性代码 ,实现在不改变目标对象代码情况下,对目标进行增强AOP 企
2017-05-31 19:58:15 1297
原创 spring中注解的使用
spring中使用注解对bean进行管理时,需要在applicationContext.xml文件中配置扫描。例如: <!-- 配置 注解Bean 所在包,让spring容器能够扫描到 --> <context:component-scan base-package="com.my.annotation"></context:component-scan> <!-- 使用注解注入
2017-05-30 19:53:05 857
原创 在Servlet中获取spring管理的bean
在Servlet中获取spring管理的bean需要导入spring的web相关的jar包。spring-web-3.2.0.RELEASE.jar在web.xml文件添加ContextLoaderListener 在Servlet中调用以下代码,获取ApplicationContext对象进而获取spring管理的bean。ApplicationContext applicationContex
2017-05-30 19:25:51 1901
原创 spring的依赖注入DI
依赖注入的方式: 1.构造函数依赖注入 2.setter方法依赖注入p名称空间的使用 Spring2.5 版本,引入p名称空间,作用简化 setter方法注入的配置 第一步: 在xml配置文件中,配置p名称空间 xmlns:p = “http://www.springframework.org/schema/p” 第二步: 通过p名称空间语法,简化setter方式属性注入
2017-05-30 16:37:37 480
原创 spring的IOC 容器管理 Bean
Bean 实例化的方式: 1.使用类构造器创建Bean实例 2.提供静态工厂方法创建Bean实例 3.提供实例工厂方法创建Bean实例 代码示例: Bean1.javapackage com.my.ioc_bean;// 第一种 构造器public class Bean1 {}Bean2.javapackage com.my.ioc_bean;//第二种 静态工厂方法public c
2017-05-30 15:53:07 653
原创 spring框架简介
Spring是分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring 框架由来 : 在2002 年 Rod Johnson 推出 Expert One-to-One J2EE Design and Develo
2017-05-30 15:08:45 516
原创 Hibernate的HQL简介
HQL(Hibernate Query Language)描写对象操作一种查询语言。Hibernate特有。 与SQL语法基本一致,不同的是HQL是面象对象的查询,查询的是对象和对象中的属性 HQL的关键字不区分大小写,但类名和属性名区分大小写在Hibernate 提供的各种检索方式中, HQL是使用最广的一种检索方式. 它有如下功能: 在查询语句中设定各种查询条件 支持投影查询, 即仅检索
2017-05-22 22:03:50 371
原创 Hibernate中的一级缓存和二级缓存
缓存(Cache): 计算机领域非常通用的概念。它介于应用程序和永久性数据存储源(如硬盘上的文件或者数据库)之间,其作用是降低应用程序直接读写永久性数据存储源的频率,从而提高应用的运行性能。缓存中的数据是数据存储源中数据的拷贝。缓存的物理介质通常是内存。Hibernate中提供了两个级别的缓存 第一级别的缓存是 Session 级别的缓存,它是属于事务范围的缓存。这一级别的缓存由 hibernat
2017-05-22 21:36:34 521
原创 Hibernate持久化对象的状态
Hibernate持久化对象存在三种状态: transient(瞬时态), 尚未与Hibernate Session关联对象,被认为处于瞬时状态,失去引用将被JVM回收,无持久化标识OID,未与Session关联persistent(持久态) 数据库中有数据与之对应并与当前session有关联,并且相关联的session没有关闭数据库并且事务未提交 ,存在持久化标识OID,与Session关联d
2017-05-22 20:28:21 406
原创 Hibernate关联关系映射---1对1
1对1 Hibernate的1对1关联关系映射有两种 1 主表主键与从表主键,形成主外键关系(从表的主键又是外键) 2 主表主键与从表外键(必须唯一unique),形成主外键关系1对1中PO使用的一个,只是hbm.xml映射存在两次写法1对1分析: 实例:公司Company : 地址Addressjvava beanAddress.java:package com.my.bean;publi
2017-05-21 22:14:18 317
原创 Hibernate关联关系映射---多对多
多对多 实例:学生–课程 实例分析: 代码实现:Student.javapackage com.my.bean;import java.util.HashSet;import java.util.Set;public class Student { private Integer id; //native private String name; //不同的学生可以学习不
2017-05-21 21:48:33 576
原创 Hibernate关联关系映射---1对多
1对多 实例:客户–订单 实例分析: 代码实现:Customer.java :package com.my.bean;import java.util.HashSet;import java.util.Set;public class Customer { private Integer id; private String name; //一个用户可以拥有【多个订单】
2017-05-21 21:34:46 404
原创 Hibernate的主键生成策略
在Hibernate中,javabean + hbm.xml 又称作persistent object,即PO 持久对象。持久化对象的唯一标识 为OID。Java按地址区分同一个类的不同对象. 关系数据库用主键区分同一条记录 Hibernate使用OID来建立内存中的对象和数据库中记录的对应关系 对象的OID和数据库的表的主键对应。为保证OID的唯一性,应该让Hibernate来为OID付值,
2017-05-21 20:50:56 212
原创 Hibernate中的配置文件常用配置介绍
(一) Hibernate主配置文件,hibernate.cfg.xml 在该配置文件可以使用 <property name=""></property>添加配置信息 常用属性介绍: hibernate.connection.driver_class 连接数据库驱动程序 hibernate.connection.url 连接数据库URL hibernate.connection.us
2017-05-20 20:42:59 416
原创 Hibernate核心API详解
Configuration类,类负责管理 Hibernate 的配置信息 包括如下内容: 加载 hibernate.properties 和 hibernate.cfg.xml 持久化类与数据表的映射关系(*.hbm.xml 文件)创建 Configuration : 构造方法,new Configuration()获得当前实例,可以加载hibernate.properties Conf
2017-05-20 17:10:50 347
原创 Hibernate基础的增删改查
Java bean:package com.my.bean;public class User { private Integer id; private String username; public Integer getId() { return id; } public void setId(Integer id) {
2017-05-20 16:46:52 255
原创 Hibernate入门
要学习Hibernate,首先要了解ORM,即Object/Relation Mapping,对象-关系映射,就是通过将Java对象映射到数据库表,通过操作Java对象,就可以完成对数据表的操作。Hibernate是最流行的ORM框架,通过对象-关系映射配置,可以完全脱离底层SQLHibernate是轻量级JavaEE应用的持久层解决方案,是一个关系数据库ORM框架,提供了对关系型数据库增删改成操作
2017-05-20 14:14:39 195
原创 Struts2值栈ValueStack介绍
ValueStack(值栈): 贯穿整个 Action 的生命周期(每个 Action 类的对象实例都拥有一个ValueStack对象,每次请求都会创建一个Action类)。请求完成后ValueStack与request将一起消失。ValueStack相当于一个数据的中转站. 在其中保存当前Action 对象和其他相关对象.ValueStack实际是一个接口,在Struts2中利用OGNL时,实际上
2017-05-10 21:51:11 320
原创 Struts2文件的上传与下载
Struts2文件的上传: 要想使用 HTML 表单上传一个或多个文件, 必须把 HTML 表单的 enctype 属性设置为 multipart/form-data, 把它的 method 属性设置为 post 为了让用户能够选择一个文件进行上传, 程序员必须提供一个 <input type=“file”>字段struts2 的文件上传使用拦截器 fileUpload 完成上传,只需要提供属性
2017-05-09 23:00:19 255
原创 Struts2自定义拦截器
自定义拦截器实现对用户登陆的拦截,当用户没有登陆时跳转到登陆页面提示用户登陆,如果用户输入登陆信息错误提示用户登陆信息不匹配,如果成功跳转到首页。代码实现: jsp文件: login.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib ur
2017-05-09 22:04:47 171
原创 Struts2拦截器介绍
Struts2 拦截器在访问某个 Action 方法之前或之后实施拦截, Struts2 拦截器是可插拔的, 拦截器是 AOP 的一种实现.拦截器栈(Interceptor Stack): 将拦截器按一定的顺序联结成一条链. 在访问被拦截的方法时, Struts2拦截器链中的拦截器就会按其之前定义的顺序被依次调用每个拦截器都是实现了 com.opensymphony.xwork2.intercept
2017-05-08 23:13:05 365
原创 Struts2的表单数据验证
Struts2的action对表单数据的验证有多中方式,可以通过覆写 validate()方法进行对所有方法进行验证,也可以通过validateXxx()方法对指定的xxx()方法进行验证,也可以通过配置xml文件对其进行验证。1, 覆写 validate(),action类必须继承ActionSupport,此方法将在执行指定方法前执行。package com.my.action;import o
2017-05-08 20:31:33 243
原创 Struts2标签介绍
在jsp页面引入struts标签库: <%@ taglib uri=”/struts-tags” prefix=”s”%>property:标签用于输出指定值:<s:property value=“#name" default="a default value" /> default:可选属性, 如果需要输出的属性值为null,则显示该属性指定的值 escape:可选属
2017-05-06 15:54:37 212
原创 Struts2中对Servlet API的访问
1 通过接口进行对象注入,action必须是实现相应的接口,struts就可以将指定的对象传递给action类 ServletContextAware接口:可以获得ServletContext对象 ServletResponseAware接口:可以获得ServletResponse对象 ServletRequestAware接口:可以获得ServletRequest对象 request.ge
2017-05-06 15:09:21 306
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人