其他分享
首页 > 其他分享> > 学习Spring5必知必会(1)~未使用spring前的麻烦

学习Spring5必知必会(1)~未使用spring前的麻烦

作者:互联网


一、未使用spring前的麻烦


1、代码耦合度比较高【不符合开闭原则】:

public class EmployeeServiceImpl implements IEmployeeService {
	private IEmployeeDAO dao;
	public EmployeeServiceImpl() {
		//创建依赖对象
		dao = new EmployeeDAOJdbcImpl();
	}
	public void save() {
	//TODO
	}
}

2、循环依赖问题(使用A类要先创建B类;使用B类要先创建C类;使用C类要先创建A类,循环啦。。。)


3、控制事务繁琐【不符合开闭原则】:

//增删改查的步骤重复了(打开资源、开启事务、提交事务、回滚事务、释放资源)
public class EmployeeServiceImpl implements IEmployeeService {
	public void save() {
		//打开资源
		//开启事务
		try {
			//保存操作
			//提交事务
		} catch (Exception e) {
       		 //回滚事务
		} finally {
			//释放资源
		}
	}
}
■ 模板基类:
//模板基类:
public class BaseServiceTemplate implements IEmployeeService {
    public void save() {
        //打开资源
        //开启事务
        try {
            this.doSave();
            //提交事务
        } catch (Exception e) {
            //回滚事务
        } finally {
            //释放资源
        }
    }

    protected void doSave() {
        //NOOP
    }
}

//子类
public class EmployeeServiceImpl extends BaseServiceTemplate implements IEmployeeService {
    protected void doSave() {
        //保存操作
    }
}

■ 使用第三方框架运用太麻烦:
//使用mybatis框架
Person p = new Person();
SqlSession session = MyBatisUtil.getSession();
PersonMapper personMapper = session.getMapper(PersonMapper.class);
personMapper.insert(p);
session.commit();
session.close();

标签:事务,必知,spring,void,class,session,EmployeeServiceImpl,public,Spring5
来源: https://www.cnblogs.com/shan333/p/15899159.html