<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
</beans>
- 编写配置目标类
public class OrderDao {
public void save(){
System.out.println("save order");
}
public void update(){
System.out.println("update order");
}
public void delete(){
System.out.println("delete order");
}
public void find(){
System.out.println("find order");
}
}
- 开启aop注解自动代理
- 编写切面类并配置
public class MyAspectAnno {
@Before(value=https://www.isolves.com/it/cxkf/kj/2020-03-03/"execution(* demo1.OrderDao.save(..))")
public void before(){
System.out.println("before");
}
}
<bean id="myAspect" class="demo1.MyAspectAnno">
注解通知类型
- @Before: 前置通知
- @AfterReturning: 后置通知
public void after(Object result){
System.out.println("after "+result);
}
- @Around:环绕通知
public Object around(ProceedingJoinPoint joinPoint) throws Throwable{
System.out.println("before");
Object obj=joinPoint.proceed();
System.out.println("after");
return obj;
}
- @AfterThrowing: 抛出异常
public void afterThrowing(Throwable e){
System.out.println("exception:"+e.getMessage();
}
- @After: 最终通知
public void after(){
System.out.println("finally");
}
- @PointCut:切入点注解
private void pointcut1(){}
此时,在上述通知的注解中,value可以替换为该函数名,例如:
@After(value=https://www.isolves.com/it/cxkf/kj/2020-03-03/"MyAspect.pointcut1()")
public void after(){
System.out.println("finally");
}
这个注解的好处是,只需要维护切入点即可,不用在修改时修改每个注解 。
Spring 的 JDBC 模板Spring 对持久层也提供了解决方案,也就是 ORM 模块和 JDBC 的模板 。针对 JDBC ,提供了 org.springframework.jdbc.core.JdbcTemplate 作为模板类 。
使用 JDBC 模板
- 引入jar包,数据库驱动,Spring 的 jdbc 相关包 。
- 基本使用:
//创建连接池
DriverManagerDataSource dataSource=new DriverManagerDataSource();
dataSource.setDriverClassName("com.MySQL.jdbc.Driver");
dataSource.setUrl("jdbc:mysql:///spring4");
dataSource.setUsername("root");
dataSource.setPassword("123456");
//创建JDBC模板
JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource);
jdbcTemplate.update("insert into account values (null,?,?)", "xiaoming",1000d);
}
- 将连接池和模板交给 Spring 管理
- 配置文件:
<property name="driverClassName" value=https://www.isolves.com/it/cxkf/kj/2020-03-03/"com.mysql.jdbc.Driver">
<property name="url" value=https://www.isolves.com/it/cxkf/kj/2020-03-03/"jdbc:mysql:///spring4">
推荐阅读
- 抖音客服的工作靠谱么 抖音售后客服是干嘛的
- 淘宝店铺的规则主要有哪一些 开淘宝店的规则是什么
- 淘宝不按时发货的惩罚 淘宝店铺未按照约定时间发货有赔偿吗
- 推荐几个开发必备的JSON工具
- 福鼎大白茶,福鼎大白茶的优势
- 福鼎大毫茶,福鼎大白与福鼎大毫茶树的生长条件介绍
- 提高搜索引擎对网站信用度的方法
- 升级win10系统必须要做的5件事,装机、重装系统必知
- 与程序员相关的CPU缓存知识
- 福建绿茶,福建的绿茶种类