标签:def rollback 注解 top dem after 就是 weave --
案例一:使用 Spring 的 AOP 对客户管理的
DAO 进行增强
1.1案例需求
1.1.1 需求描述
对于 CRM 的系统而言,现在有很多的 DAO 类,比如客户的 DAO,联系人 DAO 等等。客户提
出一个需求要开发人员实现一个功能对所有的 DAO 的类中以 save 开头的方法实现权限的校验,需
要时管理员的身份才可以进行保存操作。
1.2相关知识点
1.2.1 Spring 使用 AspectJ 进行 AOP 的开发:注解的方式
1.2.1.1 引入相关的 jar 包:
1.2.1.5 开启 aop 注解的自动代理:
aop:aspectj-autoproxy/
1.2.1.6 AspectJ 的 AOP 的注解:
@Aspect:定义切面类的注解
通知类型:
1.2.1.9 其他通知的注解:
@Aspect
public class MyAspectAnno {
@Before("MyAspectAnno.pointcut1()")
public void before(){
System.out.println("前置通知=");
}
@AfterReturning("MyAspectAnno.pointcut2()")
public void afterReturning(){
System.out.println("后置通知=");
}
@Around("MyAspectAnno.pointcut3()")
public Object around(ProceedingJoinPoint joinPoint) throws Throwable{
System.out.println("环绕前通知");
Object obj = joinPoint.proceed();
System.out.println("环绕后通知");
return obj;
}
@AfterThrowing("MyAspectAnno.pointcut4()")
public void afterThrowing(){
System.out.println("异常抛出通知");
}
@After("MyAspectAnno.pointcut4()")
public void after(){
System.out.println("最终通知==");
}
@Pointcut("execution(* cn.itcast.spring.demo4.ProductDao.save(..))")
private void pointcut1(){}
@Pointcut("execution(* cn.itcast.spring.demo4.ProductDao.update(..))")
private void pointcut2(){}
@Pointcut("execution(* cn.itcast.spring.demo4.ProductDao.delete(..))")
private void pointcut3(){}
@Pointcut("execution(* cn.itcast.spring.demo4.ProductDao.find(..))")
private void pointcut4(){}
}
案例二:Spring的事务管理完成转账的案例
1.3案例需求:
1.3.1 需求描述:
完成一个转账的功能,需要进行事务的管理,使用 Spring 的事务管理的方式完成.
1.4相关知识点
1.4.1 Spring 的 JDBC 的模板:
1.4.1.1 Spring 提供了很多持久层技术的模板类简化编程:
1.4.1.2 创建数据库和表:
1.4.1.3 引入相关开发包:
Spring 的基本的开发包需要引入的:6 个.
1.4.1.4 创建一个测试类:
@Test
// JDBC 模板的基本使用:
public void demo1(){
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql:///spring_day03");
dataSource.setUsername("root");
dataSource.setPassword("123");
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
jdbcTemplate.update("insert into account values (null,?,?)", " 会 希
",10000d);
}
1.4.2 将连接池的配置交给 Spring 管理:
1.4.2.1 Spring 内置的连接池的配置:
【引入 Spring 的配置文件】
【配置内置连接池】
【将模板配置到 Spring 中】
标签:def rollback 注解 top dem after 就是 weave --
原文地址:https://www.cnblogs.com/globalcoding/p/12824765.html