您现在的位置是:首页 > 文章详情

SpringFramework核心技术一(IOC:使用ICO容器)

日期:2018-05-10点击:318

使用容器

这ApplicationContext是高级工厂的接口,能够维护不同bean及其依赖项的注册表。使用该方法T getBean(String name, Class requiredType)可以检索bean的实例。


一、

在ApplicationContext可以读取bean定义并访问它们,如下所示:

1.1 怎么使用容器

首先来看一下容器:
这里写图片描述

1.2

有很多同学一上来就是搞一个New,可是这是一个ApplicationContext接口啊。

//接口是不能直接new着用的,这个是重写。 ApplicationContext applicationContext = new ApplicationContext(){...}

1.3

下面这样用才是对的:ClassPathXmlApplicationContext是类

/** * @author:wangdong * @description:怎么使用容器 */ public class Test { public static void main(String[] args) { // create and configure beans //可以从XML文件中读取需要配置Bean并且加载进容器中 ApplicationContext context = new ClassPathXmlApplicationContext("services.xml", "daos.xml"); }

看一下ClassPathXmlApplicationContext类
这里写图片描述

二、下面我们来用一下

package org.springframework.test; import org.springframework.beans.BeansException; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.beans.factory.config.AutowireCapableBeanFactory; import org.springframework.beans.factory.groovy.GroovyBeanDefinitionReader; import org.springframework.beans.factory.xml.XmlBeanDefinitionReader; import org.springframework.context.ApplicationContext; import org.springframework.context.MessageSourceResolvable; import org.springframework.context.NoSuchMessageException; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.context.support.GenericApplicationContext; import org.springframework.context.support.GenericGroovyApplicationContext; import org.springframework.core.ResolvableType; import org.springframework.core.env.Environment; import org.springframework.core.io.Resource; import java.io.IOException; import java.lang.annotation.Annotation; import java.util.Locale; import java.util.Map; /** * @author:wangdong * @description:怎么使用容器 */ public class Test { public static void main(String[] args) { // create and configure beans ApplicationContext context1 = new ClassPathXmlApplicationContext("services.xml", "daos.xml"); // retrieve configured instance(检索配置实例Bean) //如果PetStoreService已经创建,并且在上面的.xml文件中已经配置 PetStoreService service = context1.getBean("petStore", PetStoreService.class); //GenericApplicationContext和ClassPathXmlApplicationContext类似 //只不过这里使用的是.groovy后缀文件 //使用Groovy配置,bootstrapping看起来非常相似,只是一个不同的上下文实现类,它可以感知Groovy(但也理解XML bean定义): ApplicationContext context2 = new GenericGroovyApplicationContext("services.groovy", "daos.groovy"); //最灵活的变体是GenericApplicationContext与.groovy.xml结合使用 GenericApplicationContext context3 = new GenericApplicationContext(); //用于.xml后缀的文件 new XmlBeanDefinitionReader(context3).loadBeanDefinitions("services.xml", "daos.xml"); //用于.groovy后缀的文件 new GroovyBeanDefinitionReader(context3).loadBeanDefinitions("services.groovy", "daos.groovy"); } } 

可以使用它getBean来检索bean的实例。该ApplicationContext 接口还有其他一些检索bean的方法,但理想情况下,应用程序代码不应该使用它们。事实上,你的应用程序代码根本不应该调用该 getBean()方法,因此完全不依赖于Spring API。例如,Spring与Web框架的集成为各种Web框架组件(如控制器和JSF托管的bean)提供了依赖注入,允许您通过元数据(例如自动装配注释)声明对特定Bean的依赖关系。
未完待续~~~持续更新

原文链接:https://yq.aliyun.com/articles/614507
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章