- 浏览: 165513 次
- 性别:
- 来自: 武汉
文章分类
- 全部博客 (116)
- 随笔 (2)
- spring (24)
- struts (1)
- hibernate (6)
- log4j (0)
- mysql (14)
- oracle (0)
- ext (0)
- jQuery (0)
- HTML+CSS (2)
- Javascript (1)
- 其它杂碎 (0)
- IT (3)
- J2EE综合 (15)
- SQLServer (1)
- 好文章URL 待阅读 (3)
- 编辑器 (2)
- 版本控制 (5)
- Tomcat (4)
- DoJo (0)
- Ubuntu (11)
- Hadoop (3)
- cxf (3)
- maven (6)
- CI (5)
- H2 (1)
- JVM (1)
- FirefoxOS (1)
- Jboss (1)
- 操作系统 (1)
- C3P0 (2)
- Quartz (1)
- maps (10)
- 设计模式 (5)
最新评论
-
yogurt2012:
请问··我如果要调试H2数据库来分析其JOIN算法应该怎么做呢 ...
H2笔记 -
carlosfu:
很好很全,很有收获
Spring3笔记之 JDBC -
ponlya:
coldrush 写道看了你的配置 ,刚绝 file:后加绝对 ...
添加使用dtd文件 -
ponlya:
byp19980911 写道这不是很好的解决办法,最好是使用连 ...
java.net.SocketException:Software caused connection abort: socket write error -
ponlya:
ayanami001 写道为什么spring没有封装分页吗,那 ...
Spring3笔记之 JDBC(分页)
Spring AOP部分使用JDK动态代理或者CGLIB来为目标对象创建代理.如果被代理的目标对象实现了至少一个接口,则会使用JDK动态代理。所有该目标类型实现的接口都将被代理。 若该目标对象没有实现任何接口,则创建一个CGLIB代理。
接口:com.spring305.test.aopSpring.dao.AopSpringDao.java
public interface AopSpringDao { public void test(); public String test2(String name); }
实现:com.spring305.test.aopSpring.dao.impl.AopSpringDaoImpl.java
public class AopSpringDaoImpl implements AopSpringDao { @Override public void test() { System.out.println(AopSpringDaoImpl.class.getName()+" +====="); } @Override public String test2(String name) { System.out.println(AopSpringDaoImpl.class.getName()+" test2() +====="+name); return name+" in test2()"; } }
定义切面: com.spring305.test.aopSpring.dao.AopInterceptor.java
@Aspect //切面定义完后交给spring管理,XML中的bean配置来交给Spring管理,或者使用自动扫描来 public class AopInterceptor { @Pointcut("execution (* com.spring305.test.aopSpring.dao.impl.AopSpringDaoImpl.*(..))") private void anyMethod(){}//采用方法定义的方式来定义切入点的名字,声明一个切入点 //@Before("anyMethod()")//前置通知里参数写切入点名 @Before("anyMethod()&&args(name)")//前置通知里参数写切入点名 public void beforeAdvice(String name){//有了参数后,则只针对其中参数相匹配的方法 //String name System.out.println("前置通知"+name); } @AfterReturning(pointcut="anyMethod()",returning="revalue") public void returnAdvice(String revalue){ System.out.println("后置通知"+revalue); } @AfterThrowing(pointcut="anyMethod()",throwing="e") public void exceptionAdvice(Exception e){ System.out.println("例外通知"+e.toString()); } @After("anyMethod()") public void releaseAction(){ System.out.println("最终通知"); } @Around("anyMethod()") public Object bacicProfiling(ProceedingJoinPoint pjp) throws Throwable{ System.out.println("环绕通知 进入方法"); Object result = pjp.proceed(); System.out.println("环绕通知 退出方法"); return result; } }
XML:
<aop:aspectj-autoproxy /><!-- 开启切面编程功能 --> <bean id="myInterceptor" class="com.spring305.test.aopSpring.dao.AopInterceptor"></bean> <bean id="aopSpringDao" class="com.spring305.test.aopSpring.dao.impl.AopSpringDaoImpl"></bean>
测试:
@Test//annotation式 public void testAopInterceptorAnnotation(){ ApplicationContext cxt = new ClassPathXmlApplicationContext("testAopSpring.xml"); AopSpringDao aop = (AopSpringDao)cxt.getBean("aopSpringDao"); aop.test(); aop.test2("123"); }
也可以使用XML方式来配置切点;
<bean id="aopSpringDaoImpl"class="com.spring305.test.aopSpring.dao.impl.AopSpringDaoImpl"> </bean> <bean id="aspectBean"class="com.spring305.test.aopSpring.dao.TheInterceptor"> </bean> <aop:config> <aop:aspect id="asp" ref="aspectBean"> <aop:pointcut id="thecut" expression="execution(* com.spring305.test.aopSpring.dao.impl.AopSpringDaoImpl.*(..))" /> <aop:after-returning pointcut-ref="thecut" method="afterReturningRes" returning="result" /> <aop:around pointcut-ref="thecut" method="around" /> <aop:after-throwing pointcut-ref="thecut" method="catchException" throwing="e" /> <aop:after pointcut-ref="thecut" method="after" /> <aop:before pointcut-ref="thecut" method="before" /> </aop:aspect> </aop:config>
<!-- <aop:pointcut id="thecut" expression="execution(void com.spring305.test.aopSpring.dao.impl.AopSpringDaoImpl.*(java.lang.String,..))" /> 参数中第一个为string,后面的不管了,返回为void的 -->
发表评论
-
Spring整合Hibernate(摘录)
2011-05-07 09:48 749简要步骤From:http://blog.csdn.net/s ... -
Spring3笔记之 JDBC(分页)
2011-04-25 22:08 2022接上篇的实体,DAO接口,实现,测试及XML http://p ... -
Spring3笔记之 JDBC
2011-04-25 22:02 7821使用Spring 的JDBC 先创建表: DROP TAB ... -
Spring3笔记之 事务传播
2011-04-24 15:51 1217摘自:http://zhxing.iteye.com/blog ... -
Spring3笔记之 AOP Cglib 代理
2011-04-24 14:13 1363JDK的Proxy实现代理要求 ... -
Spring3笔记之 AOP JDK 代理
2011-04-24 14:09 1061使用JDK代理,代理对象必须实现一接口 com.spring ... -
Spring3之 Resource
2011-04-21 22:49 3982主要是org.springframework.core.io. ... -
Spring3之 bean 注解
2011-04-20 22:18 1509小记下,spring注解相关: com.spring305. ... -
Spring3之 bean 定制bean特性
2011-04-19 21:10 1301Customizing the nature of a bea ... -
Spring3之 bean 作用域scope
2011-04-18 22:21 1463Bean scopes 作用域 5个:singleton,p ... -
Spring3之 bean Method injection
2011-04-17 20:04 1463Method injection(方法注入) bean都是s ... -
Spring3之 bean AutoWire
2011-04-17 12:01 5947Autowiring collaborators 自动装配 ... -
Spring3之 bean depends-on
2011-04-17 08:56 3289depends-on depend-on用来表 ... -
Spring3之 bean Lazy-initialized beans
2011-04-17 08:48 1974Lazy-initialized beans延迟 ... -
Spring3之 集合对象属性注入
2011-04-16 23:17 1214com.spring305.test.beanInit.cpo ... -
Spring3之 bean idref?
2011-04-16 18:39 973很是奇怪idref是干什么 ... -
Spring3之 bean简单属性注入
2011-04-16 17:40 1370DI (依赖注入)有二种: Constructor-based ... -
Spring3之 实例化bean2
2011-04-16 14:30 1021Spring3之 bean命名(http://ponlya.i ... -
Spring3之 bean命名
2011-04-16 11:36 2014一、bean的命名采用标准Java命名约定:小写字母开头,首字 ... -
Spring3之 IoC容器的实例化
2011-04-16 08:39 1521Bean:在Spring中,那些组成你应用程序的主体(ba ...
相关推荐
本学习笔记将深入探讨Spring AOP的核心概念、工作原理以及实际应用。 1. **核心概念** - **切面(Aspect)**:切面是关注点的模块化,包含业务逻辑之外的横切关注点,如日志、事务管理。 - **连接点(Join Point...
Spring AOP 源码分析笔记 Spring AOP(Aspect-Oriented Programming)是一种编程范式,它允许开发者 modularize cross-cutting concerns,即将横切关注点模块化。AOP 使得开发者可以将一些公共的功能模块化,以便在...
本笔记将深入探讨这两个概念以及它们在Spring中的实现。 1. Spring框架简介: Spring作为一个轻量级的开源框架,旨在简化企业级应用的开发。它通过提供IOC容器,实现了对象的创建、管理和依赖注入,减轻了开发者对...
在本篇Spring学习笔记中,我们将深入探讨如何利用Spring配置文件来实现面向切面编程(AOP)。面向切面编程是Spring框架的核心特性之一,它允许我们把关注点分离,将横切关注点(如日志、事务管理、权限控制等)与...
**Spring AOP 学习笔记及实现Demo** Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架中的一个重要组成部分,它提供了一种在不修改源代码的情况下,对程序进行功能增强的技术。AOP的主要目的...
这篇“学习Spring笔记_AOP_Annotation实现和XML实现”主要探讨了如何在Spring中利用注解和XML配置来实现AOP的概念。 AOP,全称Aspect-Oriented Programming,是一种编程范式,旨在将关注点分离,让开发者可以更专注...
NULL 博文链接:https://linres.iteye.com/blog/281221
3. **Spring MVC(Model-View-Controller)**: Spring MVC是Spring框架提供的用于构建Web应用的模块。它遵循MVC设计模式,将模型、视图和控制器分离开来,以提高代码的可读性和可维护性。在Spring Boot中,通过`@...
SSH笔记主要围绕的是Spring框架中的AOP(面向切面编程)特性进行讲解,结合了动态代理和基于注解的配置方式。AOP是Spring框架的一个重要组成部分,它提供了一种模块化和解耦代码的方式,使得我们可以将关注点分离到...
Spring Aop 学习笔记
3. **面向切面编程 (AOP)**:Spring支持面向切面编程,这是一种将横切关注点(如日志记录、事务管理等)从业务逻辑中分离出来的编程范式。通过AOP,开发者可以在不修改业务逻辑代码的情况下添加新的功能。 4. **ORM...
**Spring3笔记** Spring是企业级应用的全面解决方案,包括依赖注入(DI)、面向切面编程(AOP)、事务管理等。以下是关键点: 1. **依赖注入(Dependency Injection, DI)**: 通过容器管理组件之间的依赖关系,...
3. **Spring与JDBC的整合**: Spring提供了JdbcTemplate和NamedParameterJdbcTemplate,简化了数据库操作,避免了原始JDBC的繁琐。`spring_dao.txt`可能会讨论这些模板类的用法,包括如何执行SQL查询、事务管理等。 ...
3. **面向切面编程(Aspect-Oriented Programming,AOP)**:Spring AOP允许开发者定义“切面”——跨越多个类的行为或责任。通过切点(Pointcut)和通知(Advice),可以在不修改原有代码的情况下添加新的功能。 4...
SSH-AOP笔记主要涵盖的是Spring、Struts和Hibernate三大框架集成使用时,如何结合Aspect Oriented Programming(面向切面编程)的理念进行应用增强。在Java企业级开发中,SSH是常用的MVC架构,而AOP则是一种编程范式...
Spring_AOP,全称为Spring的面向切面编程,是一种编程范式,旨在将关注点分离,使得代码结构更清晰,可维护性更强。在传统的面向对象编程(OOP)中,我们通常会将业务逻辑与系统服务(如日志、事务管理等)混杂在...
马士兵Spring课堂笔记(超级详细版) 本资源主要讲解了Spring框架的基础概念和应用,涵盖了面向接口编程、IOC/DI、AOP、Spring应用IOC/DI、Spring应用AOP、Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2整合、Spring...
【Spring AOP源码笔记】 Spring AOP是Spring框架的核心组件之一,它实现了面向切面编程(Aspect-Oriented Programming,简称AOP),允许开发者定义“切面”,这些切面可以封装横切关注点,如日志记录、事务管理等。...