Spring AOP
2020-12-18 18:41:06 0 举报
AI智能生成
spring
作者其他创作
大纲/内容
Spring(二)
Spring AOP
代理模式
动态代理
jdk代理
目标对象一定要实现接口
(以实现同个接口方式)
cglib代理
目标类不能为final,目标方法不能final/static
(集成目标类为父类方式)
切入点表达式
execution(modifiers-pattern? ret-type-pattern declaring-type-pattern?name-pattern(param-pattern) throws-pattern?)
modifiers-pattern?
拦截的方法的访问修饰符
ret-type-pattern
方法返回值类型
declaring-type-pattern?name-pattern(param-pattern)
拦截的方法所在的类
注解方式实现AOP
引入相关jar包
配置文件
xmlns:p=\"http://www.springframework.org/schema/context\"xmlns:aop=\"http://www.springframework.org/schema/aop\"
<!--开启扫描注解--><context:component-scan base-package=\"------\"></contest:component-scan><!--AOP扫描注解--><aop:aspectj-autoproxy></aop:aspectj-autoproxy>
注解
@Aspect 执行一个类为切面类
@Before 前置一个通知,目标执行方法前执行
@After 后置通知,目标方法指定后执行
@AfterReturning 返回后通知,目标方法执行成功之后执行
@AfterThrowing 异常通知,目标方法出现异常执行
@Around 环绕通知,环绕目标方法执行
@Pointcut 定义一个切入点表达式用于其他注解引用
配置方式实现AOP
xmlns:context=\"http://www.springframework.org/schema/context\"xmlns:aop=\"http://www.springframework.org/schema/context\"
<!--目标对象--><bean id=\"userDao\" class=\"com.xinboedu.testaop1.UserDao\"></bean><!--实例化切面类--><bean id=\"aop\" class=\"com.xinboedu.testaop1.TransactionAOP\"></bean>
AOP相关配置
<aop:config></aop:config>
定义切入点表达式
<aop:pointcut expression=\"execution(*UserDao.*(...))\" id=\"pt\"/></aop:aspect>
切面类配置
<aop:config ref=\"aop\">
<aop:before method=\"beginTransaction\" pointcut-ref=\"pt\"/>
<aop:after method=\"commit\" pointcut-ref=\"pt\"/>
Spring与Struts整合
引入jar包
web.xml
struts.xml
apllicationContext.xml
web.xml详情
struts2核心过滤器
Spring配置
<context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param>
<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener></listener-class>
收藏
0 条评论
下一页