IoC——Inversion of Control 控制反转DI——Dependency Injection 依赖注入 大家都知道,依赖注入是Spring中非常重要的一种设计模式 ...
IoC——Inversion of Control 控制反转 大家都知道,依赖注入是Spring中非常重要的一种设计模式。可能很多初学者对这种看起来高深的东西有一种抗拒,这里就 依赖关系:在A组件中要引用B组件的对象,则称A依赖于B1、A组件先创建B组件,在调用B组件方法第一个是传统的方法,并没有解决依赖关系依赖注入和控制反转其实就是将的同一个设计模式,只是从不同的角度进行描述的。依赖注入包括两种方式,一是设值注入,一是构造注入。下面就以Spring中具体代码实现例子来解释两种依赖注入方式:1、数据库操作的接口:2、接口两种实现方式:(2)
1 import com.csu.test.dao.UserDao; 2 3 public class UserDaoHibernate implements UserDao{ 4 5 @Override 6 public void save(String name, String pass) { 7 8 System.out.println("模拟通过Hibernate存储用户:"+name ); 9 }10 11 }
1 import org.springframework.context.ApplicationContext; 2 import org.springframework.context.support.ClassPath 3 4 import com.csu.test.dao.UserDao; 5 6 public class UserService { 7 8 private UserDao userDao; 9 10 11 12 //1、通过为userDao提供sett方法,在配置文件中的property属性进行配置,即可解决A依赖B的问题13 public void setUserDao(UserDao userDao) {14 this.userDao = userDao;15 }16 17 //2、通过构造方法进行配置18 public UserService(UserDao userDao){19 this.userDao = userDao;20 }21 22 23 24 public void addUser(String name,String pass){25 //UserDao userDao = new UserDao();26 //UserDao userDao = new UserDaoJdbc();27 //UserDao userDao = UserDaoFactory.getUserDao();28 29 /**30 //spring中可以向创建Spring容器31 ApplicationContext ctx = new ClassPath32 UserDao userDao = ctx.getBean("userdao",UserDao.class);33 userDao.save(name, pass);34 **/35 36 userDao.save(name, pass);37 }38 }
4、配置文件:
<?(2)、构造注入当然两种方式不要重复设置,上面已经注释掉一种,可以自己再测试一下。
原标题:简单解析依赖注入(控制反转)在Spring中的应用
关键词:Spring
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。