Spring-IOC初学
-
之前,程序是主动创建对象!控制权在程序猿手上!
-
使用了set注入后,程序不再具有主动性,而是变成了被动的接受对象!
Userviceimpl:
public class Userviceimpl implements Userservice{ //new 哪个就出来哪个十分不方便,对今后庞大的修改也是十分不好的,所以要用set方法 // Userdao userdao= (Userdao) new Userdaomysql();/之前是这种调用哪个出现哪个十分不方便(impl要一直修改) Userdao userdao; public void setUserdao(Userdao userdao) { this.userdao = userdao; } public void getUser() { userdao.getUser(); }
Mytest:
public class Mytest { public static void main(String[] args) { Userservice userservice=new Userviceimpl(); ((Userviceimpl) userservice).setUserdao(new Userdaomysql());//直接成为主动调用就行,不用再次修改impl里面的东西了 userservice.getUser(); ((Userviceimpl) userservice).setUserdao(new Userdaoimpl()); userservice.getUser(); } }
这种思想,从本质上解决了问题,我们程序猿不用再去管理对象的创建了。系统耦合性大大降低。