IoC的装载机制

IoC容器是用来管理应用程序中的Bean,处理Bean间的关系,需要我们来配置Bean。配置文件描述了bean的定义和它们之间的依赖关系。Spring 是通过java的反射机制动态生成Bean对象注入程序中,至于什么是Java反射机制,看了java反射机制的代码我也是一脸懵逼,只是稍微懂得大概的思想罢了,似乎是java编译的时候生成.class文件,然后根据.class文件能够反射生成其对象,(不知道对不对,这个当我胡扯吧,尴尬)

Spring通过BeanFactory或者ApplicationContext接口来实现对容器的加载。

BeanFactory 是Spring的原始Factory,如XMLBeanFactory就是一种典型的BeanFactory。

ApplicationContext继承了BeanFactory的所有接口,并提供了更多高级特性,所以建议使用后者。

ApplicationContext的实现类有:ClassPathXmlApplicationContext:从CLASSPATH加载配置文件。

                                                   FileSystemXmlApplicationContext:从文件系统加载配置文件。

例子:


IoC的装载机制_第1张图片
applicationContext2.xml是src包下的文件

而对于Web项目,通常ApplicationContext还可以在Web.xml中配置监听器ContextLoaderListener,它的作用是启动web容器时,自动装配ApplicationContext的配置信息。

        contextConfigLocation

         /WEB-INF/applicatonContext.xml

       

               org.springframework.web.context.ContextLoaderListener

         

通过上面的学习后,就能够晓得怎么在main或者单元测试类中加载IoC容器(xml配置文件)以及调用Bean对象了,下面来了解下Spring 的xml配置文件

Spring的配置文件

spring配置文件其实就是描述了Bean的基本信息以及Bean之间的依赖关系

有id,name,class,singleton,autowire,init-method,destory-method, ,,

举个例子来解释下Bean的自动装配


IoC的装载机制_第2张图片
定义一个类向屏幕输出数据


IoC的装载机制_第3张图片
在animal中定义了PrintScreen类为属性并且调用了方法输出

XML配置文件中负责描述类的基本信息以及类间的关系,


在不采用自动装配下,需要自己手动花时间去创建维护标签
采用自动装配autowire则能自动匹配找到Bean

总之:在定义Bean时,标签有一个autowire属性,可以通过设置它的值来让容器Bean自动注入依赖对象。

autowire的属性有:no:默认值,不采用自动装配。

                              byName:通过属性名称的方式来查找JacvaBean依赖的对象并注入

                              byType:通过属性的类型的方式查找JavaBean依赖对象并且注入

                              constructor-arg:构造器注入

                             autodetect:byType与constructor之间自动选择

你可能感兴趣的:(IoC的装载机制)