Author:宇哥 WeChat/QQ: Warmheart170712 / 939638113
整理不易,重在分享,欢迎转发收藏,助力面试上岸,学编程找宇哥
课程内容介绍:
1、Spring框架介绍
2、IOC容器
2.1、IOC的底层原理
2.2、IOC接口-BeanFactory
2.3、IOC操作bean管理
2.4、Bean管理操作有两种方式
2.4.1、IOC操作bean管理-基于xml方式(demo01、demo02)
2.4.2、IOC操作bean管理-基于注解方式(demo03 demo04)
3、AOP
3.1、什么是AOP(概念)
3.2、AOP底层原理
3.3、AOP相关术语
3.4、AOP操作准备
3.5、AOP操作–基于AspectJ注解
3.6、AOP操作–基于AspectJ配置文件
4、JdbcTemplate
4.1、什么是JdbcTemplate
4.2、准备工作
4.3、基于4.2的准备工作进行CRUD
5、事务管理
5.1、什么是事务
5.2、事务的四个特性ACID
5.3、新建事务操作环境
步骤1、创库创表添加记录:
在user_db库中创建t_account
步骤2、创建service,搭建dao。完成对象创建和注入关系
在service中注入dao,dao中注入jdbcTemplate,在jdbcTemplate中注入DataSource
步骤3、在dao创建两个方法,多钱和少钱的方法,在service中创建转账的方法
@Repository
public class AccountDaoImpl implements AccountDao{
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public void addMoney() {
String sql = "update t_account set money=money+? where username=?";
//设置让mary的钱多100
jdbcTemplate.update(sql, 100,"mary");
}
@Override
public void reduceMoney() {
String sql = "update t_account set money=money-? where username=?";
//设置让lucy的钱少100
jdbcTemplate.update(sql, 100,"lucy");
}
步骤4、编写测试
@Test
public void test1(){
//创建容器加载核心配置文件
ApplicationContext context =
new ClassPathXmlApplicationContext("spring1.xml");
//通过容器获取对象
AccountService accountService = context.getBean("accountService", AccountService.class);
//调用方法
accountService.accountMoney();
}
步骤5、运行查看数据库
lucy少了100 mary多了100
步骤6、模拟异常
如果上述的代码出现了异常
public void accountMoney(){
//luncy少100
accountDao.reduceMoney();
//模拟意向
int a = 1/0;
//maey多100
accountDao.addMoney();
}
出现的结果是:lucy少了100 但是mary没有增加100
步骤7、使用事务解决的异常
//转账的方法
public void accountMoney(){
try{
//第一步:开启事务
//第二步:处理业务
//luncy少100
accountDao.reduceMoney();
//模拟意向
int a = 1/0;
//maey多100
accountDao.addMoney();
//第三步:如果没有发生异常,事务提交
}catch(Exception e){
//第四步:如果出现异常,事务回滚
}
}
5.4、Spring事务管理操作
5.4.1、事务添加到JavaEE三层架构里的Service层,也就是业务逻辑层
5.4.2、在Spring中进行事务管理–两种方式
编程时事务:不建议使用,代码臃肿,不易维护
声明式事务:使用方便
5.4.3、声明式事务:
1、基于注解方式
2、基于xml配置文件方式
3、在Spring进行声明式事务管理。底层用到了AOP原理
4、提供可一个接口,代表事务管理器,这个接口针对不同的框架提供了不同的实现类