`

Java获取Spring中配置的Bean的三种方式

阅读更多
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;

public class Test {
    /**
     * 获取bean工厂(第一种方式)
     * 
     * @param filePath
     *            相对路径 注意:文件必须在类路径下
     *            比如:applicationContext.xml文件在包com.xieke.test下,
     *            路径就是/com/xieke/test/applicationContext.xml
     * @return
     */
    @SuppressWarnings("deprecation")
    public static BeanFactory getBeanFactory(String filePath)
    {
        return new XmlBeanFactory(new ClassPathResource(filePath));
    }

    /**
     * 获取bean工厂(第二种方式)
     * 
     * @param filePath
     *            相对路径 注意:文件必须在类路径下
     *            比如:applicationContext.xml文件在包com.xieke.test下,
     *            路径就是/com/xieke/test/applicationContext.xml
     * @return
     */
    public static ApplicationContext getApplicationContext(String filePath)
    {
        return new ClassPathXmlApplicationContext(filePath);
    }

    /**
     * 获取bean工厂(第三种方式)
     * 
     * @param filePath
     *            绝对路径或相对路径 如果是相对路径,则从当前项目下的目录开始计算, 
     *            如:当前项目/WebContent/WEB-INF/applicationContext.xml,
     *            相对路径就是/WebContent/WEB-INF/applicationContext.xml
     * @return
     */
    public static ApplicationContext getContext(String filePath)
    {
        return new FileSystemXmlApplicationContext(filePath);
    }

    public static <T> void printBean(BeanFactory beanFactory, String beanId, Class<T> className)
    {
        System.out.println(beanFactory.getBean(beanId, className));
    }

	public static void main(String[] args) {
		
        BeanFactory beanFactory = getBeanFactory("/com/xieke/test/applicationContext.xml");
        printBean(beanFactory, "userBean", User.class);
        printBean(beanFactory, "userBean2", User.class);

        ApplicationContext applicationContext = getApplicationContext("/com/xieke/test/applicationContext.xml");
        printBean(applicationContext, "userBean", User.class);
        printBean(applicationContext, "userBean2", User.class);
		
        ApplicationContext context = getContext("/WebContent/WEB-INF/applicationContext.xml");
        printBean(context, "userBean", User.class);
        printBean(context, "userBean2", User.class);
	}

}

 

   

   转载请注明出处: http://xieke90.iteye.com/blog/2234803

 

1
1
分享到:
评论

相关推荐

    Java中Spring获取bean方法小结

    Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,如何在程序中获取Spring配置的bean呢?下面通过本文给大家介绍Java中Spring获取bean方法小结,对spring获取bean方法相关知识感兴趣的朋友一起学习...

    解析Java中如何获取Spring中配置的bean

    本篇文章是对在Java中如何获取Spring中配置的bean进行了详细的分析介绍,需要的朋友参考下

    获取spring管理的bean

    以静态变量保存Spring ApplicationContext, 可在任何代码任何地方任何时候中取出ApplicaitonContext. 在配置文件中注入&lt;bean class="xxx.xxx.SpringContextHolder" lazy-init="false" /&gt; 即可使用

    Spring装配Bean教程之XML安装配置bean详解

    大家都知道spring有多重配置方式,基于XML,基于注解,基于java类的配置,其中基于XML是最强大的一种,下面这篇文章主要给大家介绍了关于Spring装配Bean之XML安装配置bean的相关资料,需要的朋友可以参考借鉴,下面...

    Spring装配Bean之用Java代码安装配置bean详解

    主要给大家介绍了关于Spring装配Bean之用Java代码安装配置bean的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用spring具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧。

    使用Java配置进行Springbean管理

    众所周知,Spring框架是控制反转(IOC)或依赖性注入(DI) 模式的推动因素,而这种推动是通过基于容器的配置实现的。过去,Spring允许开发人员使用基于XML...尽管使用XML配置较为简单和便捷,但仍有另外一种方法可定义bean

    spring框架技术+第2天+xmind思维导图

    spring框架技术+第2天+xmind思维导图:生命周期,介绍simple project,打印出构造方法...bean作用域request session globalSession:web项目获取核心配置文件要配置两个地方:spring监听器、spring作用域范围的监听。

    Spring XML配置的12个技巧

    Spring是一个强有力的java程序框架,其被广泛应用于java的程序中。它用POJO提供了企业级服务。Spring利用依赖注入可以获得简单而有效的测试能力。 Spring beans,依赖关系,以及服务所需要的bean都将在配置文件中...

    Spring-Reference_zh_CN(Spring中文参考手册)

    6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.1.1. @Configurable object的单元测试 6.8.1.2. 多application context情况下的处理 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来...

    Spring启动后获取所有拥有特定注解的Bean实例代码

    主要介绍了Spring启动后获取所有拥有特定注解的Bean实例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下

    条件化配置Bean.md

    ## 条件化配置Bean 重点: - condition接口类(参数类) - ConditionContxet类:条件文本 - getEnvironment:获得环境 - 获取配置文件参数 - 获取是否画像(选择自己需要的类型) - getBeanFactory - ...

    Spring中文帮助文档

    6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...

    Java spring快速入门,附源码和学习资料仅供学习,使用IDEA工具

    1、Spring程序开发步骤; 2、导入Spring开发的基本包坐标; 3、编写Dao接口和实现类...5、在Spring配置文件中配置UserDaoImpl; 6、 使用Spring的API获得Bean实例; 7、 Spring配置文件; 8、Bean的依赖注入入门; 等等

    Spring攻略(第二版 中文高清版).part1

    1.2 配置Spring IoC容器中的Bean 4 1.2.1 问题 4 1.2.2 解决方案 4 1.2.3 工作原理 4 1.3 调用构造程序创建Bean 14 1.3.1 问题 14 1.3.2 解决方案 14 1.3.3 工作原理 14 1.4 解决构造程序歧义 17 ...

    Spring in Action(第二版 中文高清版).part2

    16.1.3 委托Spring配置的动作 16.1.4 关于Struts 2 16.2 协同使用Spring和WebWork 2/Struts 2 16.3 集成Spring和Tapestry 16.3.1 集成Spring和Tapestry 3 16.3.2 集成Spring和Tapestry 4 16.4 协同使用...

    Spring in Action(第二版 中文高清版).part1

    16.1.3 委托Spring配置的动作 16.1.4 关于Struts 2 16.2 协同使用Spring和WebWork 2/Struts 2 16.3 集成Spring和Tapestry 16.3.1 集成Spring和Tapestry 3 16.3.2 集成Spring和Tapestry 4 16.4 协同使用...

    Spring.3.x企业应用开发实战(完整版).part2

    2.2.3 类包及Spring配置文件规划 2.3 持久层 2.3.1 建立领域对象 2.3.2 UserDao 2.3.3 LoginLogDao 2.3.4 在Spring中装配DAO 2.4 业务层 2.4.1 UserService 2.4.2 在Spring中装配Service 2.4.3 单元测试 2.5 展现层 ...

    java-spring-annotations

    XML配置可能很冗长使用注释配置Spring Bean 注释使XML配置最小化扫描组件类Spring将扫描您的Java类以获取特殊注释在Spring容器中自动注册Bean默认Bean ID 您可以显式创建Bean ID 前任。 @Component(“ beanID”) ...

    Spring 2.0 开发参考手册

    6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. ...

Global site tag (gtag.js) - Google Analytics