当前位置: 首页 > 编程笔记 >

Spring实战之注入嵌套Bean操作示例

齐学文
2023-03-14
本文向大家介绍Spring实战之注入嵌套Bean操作示例,包括了Spring实战之注入嵌套Bean操作示例的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了Spring实战之注入嵌套Bean操作。分享给大家供大家参考,具体如下:

一 配置

<?xml version="1.0" encoding="GBK"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="http://www.springframework.org/schema/beans"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
   <bean id="chinese" class="org.crazyit.app.service.impl.Chinese">
      <!-- 驱动调用chinese的setAxe()方法,使用嵌套Bean作为参数 -->
      <property name="axe">
        <!-- 嵌套Bean配置的对象仅作为setter方法的参数
           嵌套Bean不能被容器访问,因此无需指定id属性-->
        <bean class="org.crazyit.app.service.impl.SteelAxe"/>
      </property>
   </bean>
</beans>

二 接口

Axe

package org.crazyit.app.service;
public interface Axe
{
   // Axe接口里有个砍的方法
   public String chop();
}

Person

package org.crazyit.app.service;
public interface Person
{
   // 定义一个使用斧子的方法
   public void useAxe();
}

三 实现

Chinese

package org.crazyit.app.service.impl;
import org.crazyit.app.service.*;
public class Chinese implements Person
{
   private Axe axe;
   // 设值注入所需的setter方法
   public void setAxe(Axe axe)
   {
      this.axe = axe;
   }
   // 实现Person接口的useAxe方法
   public void useAxe()
   {
      // 调用axe的chop()方法,
      // 表明Person对象依赖于axe对象
      System.out.println(axe.chop());
   }
}

StoneAxe

package org.crazyit.app.service.impl;
import org.crazyit.app.service.*;
public class StoneAxe implements Axe
{
   public String chop()
   {
      return "石斧砍柴好慢";
   }
}

SteelAxe

package org.crazyit.app.service.impl;
import org.crazyit.app.service.*;
public class SteelAxe implements Axe
{
   public String chop()
   {
      return "钢斧砍柴真快";
   }
}

四 测试类

package lee;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.crazyit.app.service.*;
public class BeanTest
{
  public static void main(String[] args)throws Exception
  {
    // 创建Spring容器
    ApplicationContext ctx = new
      ClassPathXmlApplicationContext("beans.xml");
    // 获取chinese 实例
    Person p = ctx.getBean("chinese" , Person.class);
    // 调用useAxe()方法
    p.useAxe();
  }
}

五 运行

钢斧砍柴真快

更多关于java相关内容感兴趣的读者可查看本站专题:《Spring框架入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

 类似资料:
  • 本文向大家介绍Spring实战之注入集合值操作示例,包括了Spring实战之注入集合值操作示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Spring实战之注入集合值操作。分享给大家供大家参考,具体如下: 一 配置 二 接口 Axe Person 三 实现 Chinese StoneAxe SteelAxe 四 测试类 五 运行 Spring实例化主调bean:Chinese实例...

  • 本文向大家介绍Spring实战之Bean的后处理器操作示例,包括了Spring实战之Bean的后处理器操作示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Spring实战之Bean的后处理器操作。分享给大家供大家参考,具体如下: 一 配置文件 二 接口 Axe Person 三 Bean Chinese SteelAxe 四 Bean后处理器 五 测试结果 Spring实例化主调bea

  • 我对摩基托并不陌生,但这次我在工作中发现了一个有趣的案例。我希望你能帮我解决这件事。 我需要注入mock来改变测试过程中的某些方法行为。问题是,bean结构是嵌套的,并且这个bean在其他bean内部,不能从test方法访问。我的代码如下所示: 所以在我的测试中,我希望调用nestedDAO.method返回模拟答案。 我尝试执行一个initmocks: 还要在我的测试类上添加注释: 总是从方法获

  • 本文向大家介绍Spring框架构造注入操作实战案例,包括了Spring框架构造注入操作实战案例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Spring框架构造注入操作。分享给大家供大家参考,具体如下: 一 配置 二 接口 Axe Person 三 实现 Chinese StoneAxe SteelAxe 四 测试类 五 运行 钢斧砍柴真快 更多关于java相关内容感兴趣的读者可查看本站

  • 本文向大家介绍Spring实战之缓存使用condition操作示例,包括了Spring实战之缓存使用condition操作示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Spring实战之缓存使用condition操作。分享给大家供大家参考,具体如下: 一 配置文件 二 属性文件 三 领域模型 四 Service 1 接口类 2 实现类 五 测试类 六 测试结果 --正在执行findU

  • 本文向大家介绍Spring框架设值注入操作实战案例分析,包括了Spring框架设值注入操作实战案例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Spring框架设值注入操作。分享给大家供大家参考,具体如下: 一 配置 二 接口 Axe Person 三 实现 Chinese StoneAxe SteelAxe 四 测试类 五 运行 石斧砍柴好慢 更多关于java相关内容感兴趣的读者可