IOC即依赖注入,是spring的一个特点,通过spring的方式管理所有的bean,不用用户在调用时再去new一个对象,这样就降低了程序间的耦合性,通过xml文件来实现管理所有bean类
<bean id="dependency" class="com.Dependency"/>
<bean id="business" class="com.Business">
<property name="dependency">
<ref bean="dependency"/>
</property>
</bean>
在上面的xml文件中,我们有两个要实例的类(com.Dependecy和com.Bussiness)这两个实例在需要实例化时只需要使用setter方法。
而dependency中含有一个属性叫做dependency,所以在程序中需要加入setDependency()方法用于实例该类。
spring的注入 是一层一层的注入的,并且如果这个bean没有被配置在xml中用没有使用@Autowired方式注入的话会将它的值设置为null。这样spring容器(beanFactory吧)启动是成功的,直到应用业务调用到这个类的方法时才会抛出NullPointerException ,这样就造成了我们的应用直到运行的时候才会知道原来这个类没有配置bean。
在父子类中同时对同一个类进行注入并且名字相同,使用setXXX方式的话 父类会加载失败, 在spring中有@override的检查,其实spring注入的时候是使用的set方法来查询bean的 如果子类把父类方法给重写了 ,父类 那么bean不会加载到父类中。