第一 Spring容器的两个核心接口:BeanFactory和ApplicationContext两个常用接口,其中ApplicationContext是BeanFactory的子接口。

知道了这些最基本的,那么如果Spring容器如果要访问磁盘、类路径以及网络上的资源。怎么做呢?Resource接口

对于一个独立的应用程序,如何实例化BeanFactory了:
// 类加载下的beans.xml文件,独立的程序需要 Resource res=new ClassPathResource("beans.xml"); //创建默认的BeanFactory容器 DefaultListableBeanFactory beanFactory=new DefaultListableBeanFactory(); //让默认的BeanFactory容器加载res对应的XML配置文件 new XmlBeanDefinitionReader(beanFactory).loadBeanDefinitions(res); 逻辑是实例化BeanFactory 首先需要将beans.xml的配置文件加载起来,需要Resource接口来实现,然后需要将BeanFactory接口的DefaultListableBeanFactory实现类建立,最后容器中装载全部的beans.xml配置文件
如果需要加载多个配置文件的化,通常推荐ApplicationContext
ApplicationContext atx=new ClassPathXmlApplicationContext("beans.xml","service.xml")
ApplicationContext是BeanFactory的子类,相比应用场景较多,除非对内存控制非常严格,一般不使用BeanFactory。
相比BeanFactory,ApplicationContext具有更多有点:
1 国际化(我的理解就是本地化,支持更多的语言)
2 能够加载多个bean.xml
3 事件机制
4 资源访问
第二 Bean获取Spring容器
第一种思路:创建Spring容器,再调用Spring容器的getBean()方法来获取Spring容器中的Bean。
第二种思路:Web应用中,Spring容器采用声明方式配置生产:开发者需要在web.xml文件中配置一个Listener,该Listener负责出事化Spring容器,前段框架MVC直接调用Spring容器中的Bean,无须访问Spring容器本身。
第三 Spring容器中的Bean
Spring开发者要做两件事情:1 开发Bean 2 配置Bean
1 Bean的基本定义和Bean别名
<beans.../>是Spring配置文件的根元素,<bean.../>是<beans.../>的子元素。
每个<bean.../>定义一个Bean,而每个Bean对应Spring容器里面的Java实例。
定义Bean是,通常需要指定两个属性
id:确定该Bean的唯一标识 class:指该Bean的具体实现类,不能是接口。
对Bean指定名字,通常有两种方法一种是直接在<bean id="Person" class=" " name="#abc,@!123"/>
这是一种方式,还有一种方式是通过<alias >
<alias name="Person" alias="jack">
2 容器中Bean的作用域
singleton:单例模式,在整个SpringIoc容器中,singleton作用域的Bean将值生成一个Bean
prototype:每次通过容器的getBean()方法获取prototype作用域的Bean时,都尝试新的Bean。
浙公网安备 33010602011771号