Spring框架,前瞻介绍:
1:Spring的介绍:
Spring框架是开发过程中必须使用的框架,一般情况下,Struts和SpringMvc中选择一个,hibernate和Mybatis中间选择一个。
Spring是一个开源的框架,于2003年兴起。是一个轻量级的一个框架。Spring主要用来解决业务逻辑层和其他各层的松耦合的问题,将面向接口的编程思想贯穿于整个系统应用。Spring可以完成以前只能有EJB来完成的事情。从简单性,可测试性,松耦合的角度而言,所有的java应用都可以从Spring中收益。Spring的两大核心功能:控制反转(IOC/DI)和面向切面(AOP),Spring当然还有一些其他的功能。
2:Spring核心功能之控制反转:
1:IOC:
我们之前所做的项目,所有的Bean都是我们自己创建的,使用new的一个方式我们自己来创建。但是现在我们可以通过Spring来为我们创建Bean,通过Spring来为我们创建Bean其实就是控制反转。
DAO层:
public class UserDaoImpl implements UserDao {
@Override
public void saveUser() {
System.out.println("保存用户数据");
}
}
public interface UserDao {
public void saveUser();
}
Service层:
public interface UserService {
public void saveUser();
}
public class UserServiceImpl implements UserService{
我需要在Service层中来创建Dao层的实现类,这样肯定会增加代码的耦合
private UserDao userDao = new UserDaoImpl();
@Override
public void saveUser() {
userDao.saveUser();
}
}
我们之前的项目分层开发就是这样子的。
我需要在service的实现类中将UserDao实例化,这样其实是有侵入性的,增加了代买的耦合度。我们程序的开发,讲究的是低耦合,高内聚。要将层与层之间尽量剥离开,是的层与层之间不受影响。
如我对sevice层进行修改,不应该影响到dao层,或者对于程序的测试,我可以单独的来测试某一层,但是现在这样显然是做不到的。