Spring优势学习
1.
不使用spring:
耦合度比较高
Controller->Service->DAO
Eg:
在service调用dao层需要:
Private Dao dao = new Dao();
使用spring只需要简单注解
@Resource private Dao dao;
2.
事务管理(使用spring 不需要进行事务管理,如事物的begin和commit,也不用处理复杂的事物传播行为)
例如:转账模拟
Public void pay(){
Bean1.update();
Bean2.save();
}
public classBean1 {
public void update(){
Connection conn = null;
conn.setAutoCommit(false);
.
.
.
}
}
public classBean1 {
public void save(){
Connection conn = null;
conn.setAutoCommit(false);
.
.
.
}
}
如果不修改代码,现在是不能实现这样的需求的,因为它们各自拥有自己的connection;
在这种情况下,需要把connection作为参数传递给两个方法,然后在外部建立connection;
如果使用spring,我们就无需人为处理这些行为:(使用注解)
@Transactional(propagation=Propagation.REQUIRED)
Public void pay(){
Bean1.update();
Bean2.save();
}
public classBean1 {
@Transactional(propagation=Propagation.REQUIRED)
public void update(){
.
.
.
}
}
public classBean2 {
@Transactional(propagation=Propagation.REQUIRED)
public void save(){
.
.
.
}
}
这样简单就可使其处于一个事物中。