Spring学习(四) Spring实例分析2014-10-14上次的博文中 深入浅出Spring(二) IoC详解 和 深入浅出Spring(三) AOP详解中,我们分别介绍了一下Spring框架的两个核心一个是IoC,一个是AOP。接下来我们来做一个Spring的实例。为了更好的讲解Spring的相关内容,这次的博文会针对一个【添加用户】的实例,进行逐步的解剖和优化,再此过程中,细节内容大家不需要考虑,只需要加深对Spring的理解即可。1、实例一首先,我们来看一个没有使用任何Spring框架内容,比较单纯的添加用户的实例。先看一下相关的类图和实现代码,具体如下:

public class User {private String username;private String password;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}public interface UserDao {public void addUser(User user);}public class UserDao4OracleImpl implements UserDao {@Overridepublic void addUser(User user) {System.out.println("UserDao4OracleImpl.addUser() , username="+user.getUsername());}}public class UserDao4MySqlImpl implements UserDao {@Overridepublic void addUser(User user) {System.out.println("UserDao4MySqlImpl.addUser(), username="+user.getUsername());}}public interface UserManager {public void addUser(User user);}public class UserManagerImpl implements UserManager {@Overridepublic void addUser(User user) {UserDao userDao = new UserDao4MySqlImpl();userDao.addUser(user);}}public class Client {public static void main(String[] args) {User user = new User();user.setUsername("张三");user.setPassword("123456");UserManager userManager = new UserManagerImpl();userManager.addUser(user);}}分析上面的类图和代码中,我们可以很明显的看出:在UserManagerImpl类的方法addUser中,UserManagerImpl调用了UserDao及其具体的实现类UserDao4MySqlImpl,这就不符合IoC模式中,将接口的具体实现类的控制权从调用类中分离转交给第三方决定的相关思想,所以我们需要在这里进行修改。(参考我们之前的IoC文章)。URL:http://www.bianceng.cn/Programming/Java/201410/45838.htm