PS:由于笔者是直接学习的Spring,有些地方写不清楚和有错误的地方还请谅解和指正。
原理部分:
在使用Spring框架之前,如果要实现一个业务(以用户类为例),相当复杂。
原先实现的方式
1、UserDAO 接口
2、UserDAOImpl 实现类
3、UserService 业务接口
4、UserServiceImpl 业务实现类
DAO是Data Access Object数据访问bai接口。 在核心J2EE模式中是这样介绍DAO模式的:为了建立一个健壮的J2EE应用,应该将所有对数据源的访问操作抽象封装在一个公共API中。
Impl 应该是implement的简写
如果当我们增加了程序的要求(比如增加MySQL方式来获取数据,则我需要增加DAOImpl的实现,并且在UserServiceImpl中对代码进行修改才能办到.
(原先需要专门生成UserDAOImpl类)
public interface UserDAO {
void getUser();
}
public class UserDAOImpl implements UserDAO {
@Override
public void getUser() {
System.out.println("this is UserDAO.");
}
}
public interface UserServiceDAO {
void getUser();
}
public class UserServiceDAOImpl implements UserServiceDAO{
private UserDAO userDAO = new UserDAOImpl();
@Override
public void getUser() {
userDAO.getUser();
}
}
修改后(使用类似”注入”的思想)
public class UserServiceDAOImpl implements UserServiceDAO{
private UserDAO userDAO;
//使用注入方式
public void SetUser(UserDAOImpl userDAO) {
this.userDAO = userDAO;
}
@Override
public void getUser() {
userDAO.getUser();
}
}
这样,我们只需要使用setUser函数来对确定传入值,而不需要每次都改UserService中的实现了.
实际Spring使用中,用的是一个Spring即已经实现的一个中间层,把需要的对象直接写入XML文件中,可以直接用Spring的容器直接获取类的实例化,而无须在程序中生成.
具体实现
HelloWorld辟邪
我惊讶的发现,android程序的编写和Spring的项目有着惊人的相似性,都是可以通过XML文件来进行配置.