02-Spring_aop
一.AOP(面向切面)
spring中的aop底层是jdk和cglib的动态代理实现,结合注解使用
二.xml中开启aop自动代理注解
三.AOP 中的概念
四.数据源持久层技术
jdbc----->dbutils---->jdbcTemplate(Spring提供)----->ibatis----->mybatis(主流)----->spring data jpa(趋势)
五.数据源
c3p0
dbcp
spring jdbc 自带数据源
druid 阿里数据源
六.各个数据源xml配置
a. c3p0数据源
<!--c3p0数据源-->
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<!--引入外部属性文件-->
<context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder>
<!--配置c3p0数据源-->
<bean id="c3p0DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}"></property>
<property name="jdbcUrl" value="${jdbc.url}"></property>
<property name="user" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
b. dbcp 数据源
<!--dbcp数据源-->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<!--dbcp数据源-->
<bean id="dbcpDataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driver}"></property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
c. spring jdbc 自带数据源,包含了JdbcTemplate对象
<!--spring自带数据源-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
d. <!--spring自带的数据源-->
<bean id="springDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driver}"></property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
六.事务管理的方式
1.编程式事务管理: 在业务层中写了很多事务技术代码。
优点:控制的更精准;缺点:大量重复代码
比如先获取数据库连接,手动开启事务代码等,connection.setAutoCommit(false)
begin、commit、rollback等
2.声明式事务管理:xml 事务管理器配置、注解事物管理器配置。
优点:解耦,aop实现无侵入业务层代码;缺点:不够精准
六.
问题:
一个数据库事务必须用同一个connection对象吗?
动态代理怎么和aop结合的?
jdk动态代理和cglib动态代理
dbutils、c3p0、dbcp、spring_temp数据源xml方式配置
事物的隔离级别
事物的传播
Last updated
Was this helpful?