applicationContext.xml 中 <ref bean=""> 与 <ref local="">的区别

第一步:创建工程   FirstSpringJAVA

第二步:新建dao层类

Dao.java

package com.xuzhiwen.spring10;

public class Dao {

    public void save(){
        System.out.println("Dao.save()...");
    }
}

第三步:新建service类,将dao通过set的方式注入到 service中

ServiceTest.java

package com.xuzhiwen.spring10;

public class ServiceTest {
    private Dao dao;

    public void setDao(Dao dao) {
        this.dao = dao;
    }

    public void service(){
        System.out.println("ServiceTest.service()...");
        dao.save();
    }
}

第四步:测试 <ref bean=" ">  ,可以在两个配置文件中使用

applicationContext10.xml

<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="service" class="com.xuzhiwen.spring10.ServiceTest">
        <property name="dao">
            <ref bean="dao" />
        </property>
    </bean>

</beans>

applicationContext11.xml

<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="dao" class="com.xuzhiwen.spring10.Dao" />
</beans>

第五步:编写测试类

Test.java

package com.xuzhiwen.spring10;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test {
    public static void main(String[] args) {
        String xml[] = {"applicationContext10.xml","applicationContext11.xml"};
        ApplicationContext app = new ClassPathXmlApplicationContext(xml);
        ServiceTest test = (ServiceTest) app.getBean("service");
        test.service();
    }
}

第六步:运行结果如下

第七步: 测试 <ref local=" ">,只能在同一个配置文件中使用

applicationContext10.xml

<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="service" class="com.xuzhiwen.spring10.ServiceTest">
        <property name="dao">
            <ref local="dao" />
        </property>
    </bean>

    <bean id="dao" class="com.xuzhiwen.spring10.Dao" />
</beans>

第八步: 编写测试类

Test.java

package com.xuzhiwen.spring10;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test {
    public static void main(String[] args) {
        String xml[] = {"applicationContext10.xml"};
        ApplicationContext app = new ClassPathXmlApplicationContext(xml);
        ServiceTest test = (ServiceTest) app.getBean("service");
        test.service();
    }
}

第九步:运行结果如下

时间: 2024-10-18 13:23:08

applicationContext.xml 中 <ref bean=""> 与 <ref local="">的区别的相关文章

applicaitonContext属性未注入, 请在applicationContext.xml中定义SpringContextHolder.

我用的jeesite框架,在使用定时任务时,出现一些问题,,1.在windows上项目可以在tomcat下,运行2.在linux下项目在tomcatgh下,却出现问题: 15-Dec-2017 15:15:37.552 INFO [www.toolcoo.com-startStop-1] org.apache.catalina.core.ApplicationContext.log Initializing Spring root WebApplicationContext2017-12-15

spring controller中@Value取不到applicationContext.xml中加载配置文件的问题

原因还未查证: http://sunjun041640.blog.163.com/blog/static/256268322014127113844746/ 在使用spring mvc时,实际上是两个spring容器: 1,dispatcher-servlet.xml 是一个,我们的controller就在这里,所以这个里面也需要注入属性文件 org.springframework.web.servlet.DispatcherServlet 这里最终是使用WebApplicationContex

AndroidMenifest.xml中minSdkVersion、targetSdkVersion、targetApiLevel的区别

原文: AndroidMenifest.xml中minSdkVersion.targetSdkVersion.targetApiLevel的区别 - Delion - 博客频道 - CSDN.NEThttp://blog.csdn.net/yangdeli888/article/details/22722303 在default.properties中的target是指在编译的时候使用哪个版本的API进行编译. 综上,上面的四个值其实是作用于不同的时期:target API level是在编译的

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 generateO

Hibernate中持久化注解的java文件在applicationContext.xml中的配置

之前用Hibernate操作数据库,都是写下.hbm.xml配置文件的.这段时间发现注解要比.hbm.xml方便很多时,决定用注解. 之前用.hbm.xml时,在applicationContext.xml里配置是: <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <property name="da

applicationContext.xml中的使用${}是代表什么意思?

在applicationContext.xml文件中,使用 ${xxx} 表示的是:调用某个变量,该变量的名称就是{xxx}里面的"xxx". 例如:在applicationContext.xml文件中配置数据连接池 <!-- 配置数据链接池 --> <property name="dataSource"> <bean class="com.mchange.v2.c3p0.ComboPooledDataSource"

在application-context.xml中配置多个property-placeholder

如下所示,直接写多个<context:property-placeholder>标签是会报错的. <context:property-placeholder location="classpath:wechat/official-account.properties" /> <context:property-placeholder location="classpath:db.properties" /> 即便是写在不同的xml

web.xml中Filter,Listener,Servlet的区别

一.Servlet Servlet是基本的服务端程序,他来自接口Servlet,接口中有方法service.而Servlet的一个重要实现类,则是tomcat服务器的核心,那就是HttpServlet HttpServlet有方法: public abstract class HttpServlet extends GenericServlet { private static final String METHOD_DELETE = "DELETE"; private static

模拟Spring中applicationContext.xml配置文件初始化bean的过程

package com.xiaohao.action; import java.io.File; import java.lang.reflect.Method; import java.util.Collections; import java.util.HashMap; import java.util.Map; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; /** *