传统方式:通过接口访问对象必须经过实例化,这样就必然增加了代码之间的耦合度,而其调用时必须了解接口实现类中定义的内容,同时不同意对生成的对象进行管理。
容器管理方式:当程序中用到该对象时,依赖容器进行实例化。实现方法调用是只须参考接口中实现的方法。当对象实例后通过容器提供的方法,对生成的对象进行管理,使用完毕后将对该实例对象进行消除。
Spring依赖注入的方式有三种:接口注入、设置属性注入、构造方法注入。
构造方法注入,在构造期间即创建一个完整、合法的对象。避免了繁琐的setter方法。
设置属性注入,通过setter方法设定依赖关系。这种方式简单直观,因而在Spring的注入里大量使用。下面举个例子。
1 public class Person { 2 public String name; 3 public String password; 4 public boolean islogin; 5 6 public void setName(String name){ 7 this.name = name; 8 } 9 public void setPassword(String password){10 this.password = password;11 }12 public void setChock(boolean islogin){13 this.islogin = islogin;14 }15 }
1 public class Factory {2 public static void main(String[] args) {3 XmlBeanFactory bFactory = new XmlBeanFactory(new ClassPathResource(4 "Spring.xml"));5 Person person = (Person) bFactory.getBean("person");6 System.out.println("姓名:" + person.name + " 密码:" + person.password7 + " 状态:" + person.islogin);8 }9 }
Spring.xml
1 27 8 9 1310 11 12