Spring中引用不同xml中的bean

想要在Spring-Common.xml中引用 Spring-Output.xml中定义的bean 需要使用<ref bean="XXX"/>标签,如果是同一个xml文件中引用则使用<ref local="XXX"/>标签。

 package com.spring.output;

public class OutputHelper {

        IOutputGenerator outputGenerator;
        public void generateOutput(){
            this.outputGenerator.generateOutput();
        }

        public void setOutputGenerator(IOutputGenerator outputGenerator){
            this.outputGenerator = outputGenerator;
        }
}

Spring-Output.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

    <bean id="CsvOutputGenerator" class="com.spring.output.impl.CsvOutputGenerator" />
    <bean id="JsonOutputGenerator" class="com.spring.output.impl.JsonOutputGenerator" />

</beans>

Spring-Common.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    <bean id="OutputHelper" class="com.spring.output.OutputHelper">
        <property name="outputGenerator" >
            <ref bean="CsvOutputGenerator"/>
        </property>
    </bean>
</beans>

在调用的上下文方法的时候这样写:

 package com.spring.hello;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.spring.output.OutputHelper;
public class App {
    private static ApplicationContext context;
    public static void main(String[] args)
    {
        context = new ClassPathXmlApplicationContext(new String[] {"Spring-Common.xml","Spring-Output.xml"});
        OutputHelper output = (OutputHelper)context.getBean("OutputHelper");
        output.generateOutput();
    }
}

CsvOutputGenerator.java

package com.spring.output.impl;

import com.spring.output.IOutputGenerator;

public class CsvOutputGenerator implements IOutputGenerator {

    public void generateOutput() {
        System.out.println("Creating CsvOutputGenerator  Output......");
    }
}

JsonOutputGenerator.java

 package com.spring.output.impl;
import com.spring.output.IOutputGenerator;
public class JsonOutputGenerator implements IOutputGenerator {
    public void generateOutput() {
   System.out.println("Creating JsonOutputGenerator output.......");
    }
}

IOutputGenerator.java

package com.spring.output;

public interface IOutputGenerator {
      public void generateOutput();
}
时间: 2024-09-23 20:50:13

Spring中引用不同xml中的bean的相关文章

参数传递-【Maven】 maven的参数透传。 测试code中引用pom.xml 的参数

问题描述 [Maven] maven的参数透传. 测试code中引用pom.xml 的参数 需求: 1, code 中有一些参数需要经常改变其指定值. 2, 希望在pom.xml(或地方存储这些值) 3, 在使用mvn 执行时使用 mvn -DXXX=XXXX 替换pom.xm中的参数值. 问题: 查阅资料发现, mvn -DXXX 一般都是替换pom.xml 中的引用值, 且替换的值都是mvn执行插件或功能值.但我在工程code 中该怎么引用pom.xml 中指定的值呢? pom.xml 中设

应用-安卓开发中,AndriodManifest.xml中的manifest的标签中的内容放在哪里?

问题描述 安卓开发中,AndriodManifest.xml中的manifest的标签中的内容放在哪里? 就是说,我用eclipse创建了一个安卓应用程序. 若我要修改标签的android:name,书上写"可通过这样来设置Activity 对象的类名称,但类的路径必须是标签中的包路径所指定的路径范围".然后 我找到了标签,其中有一句"package =com.example.test1"(我这个安卓应用程序 的名字是test1,那么怎么查看其所指定的范围? 另外又

eclipse rcp-eclipse RCP开发中如何在Activator中获取plugin.xml中配置的action

问题描述 eclipse RCP开发中如何在Activator中获取plugin.xml中配置的action action是在extensions里重写eclipse提供的标准扩展点:org.eclipse.ui.actionSets.想在Activator中获取此action对象并调用setEnable()方法,达到控制按钮的可用和禁用状态.望各位大神帮忙! 解决方案 目前我也不会,但是需要积分

如何在vb中引用access数据库中的窗体

问题描述 如何在vb中引用access数据库中的窗体 如何在vb中引用access数据库中的窗体 我在vb.net中不知道怎么链接access,我打开那个数据库连接也只能连到表格,连不到窗体,我想连接窗体.大概就是实现在vb.net中按下一个bottom可以弹出access中我已经做好的一个窗体.请告诉我具体的步骤及代码.是期末作业,请各位大神帮忙啊!!!

在Web用户控件中引用样式表中样式的方法_实用技巧

如何在Web用户控件中引用样式表中的样式 复制代码 代码如下: <%@ Control Language="C#" AutoEventWireup="true" CodeFile="gl1.ascx.cs" Inherits="admin_gl1" EnableTheming="True" %> < link href="../App_Themes/qiantai.css&quo

ASP.net中后台从xml中读取数据

问题描述 ASP.net中后台从xml中读取数据 ASP.net中后台从xml中读取数据,数据通过前台显示出来 解决方案 http://blog.csdn.net/qinghecool/article/details/3549764 解决方案二: http://guangquanzhu.blog.163.com/blog/static/112084455201331034415744/ 解决方案三: 写个httpHandler程序,返回xml,然后页面通过ajax调用,解析xml数据.

VC#中怎么调用XML中的变量或函数,高手请时,谢谢了

问题描述 我想在VC#中调用XML中的一个变量,或函数,可我现在做不到,请高手说一下,谢谢,<Ui><Scriptfile="a.lua"/><Scripts><bookid="bk101">floats=aadd();<authortt="$#t"xx="4444">t</author><title>XMLDeveloper'sGuide&l

请问我的MyEclipse中的struts-config.xml中为什么没有Plug-in啊?

问题描述 在学习的时候,发现在集成struts时,struts-config.xml中为什么没有Plug-in啊?请哪位高人帮我解答一下?万分感谢诶,十万分之感谢啊~~ 解决方案 解决方案二:Plug-in标签是要手动配置的.解决方案三:我看视频上的操作是直接在struts-config.xml文件中,右键new->plug-in就可以作相应的配置了,可是我的右键之后却没有plug-in,手动在source中添加<plug-in>之后,struts-config.xml文件就报错了解决方

Tomcat中的server.xml中的URIEncoding属性的设置?

问题描述 如果设置了其为中文编码格式,只对get方法有效,但是post方法就不可以了,因为这个属性本来就是设置了get时候的数据编码,如何使它对post也有作用呢? 解决方案 引用This specifies the character encoding used to decode the URI bytes, after %xx decoding the URL. If not specified, ISO-8859-1 will be used. 官方文档中的说明,该编码指定的是为URI进