当前位置: 首页 > news >正文

Spring-基于构造函数的依赖注入

Spring基于构造函数的依赖注入

当容器调用带有一组参数的类构造函数时,基于构造函数的DI就完成了,其中每个参数代表一个对其他类的依赖。

TextEditor.java文件的内容:

package com.tuorialsponit;

public class TextEditor {
    private SpellChecker spellChecker;
    public TextEditor(SpellChecker spellChecker){
        this.spellChecker = spellChecker;
    }
    
    public void spellCheck() {
        spellChecker.checkSpelling();
    }
}

下面是另一个依赖类文件SpellChecker.java内容

package com.tuorialsponit;

public class SpellChecker {
    public SpellChecker(){
        System.out.println("Inside SpellChecker constructor.");
    }
    
    public void checkSpelling(){
        System.out.println("Inside checkSpelling.");
    }
}

以下是MainApp.java文件的内容

public class MainApp {
    public static void main(String[] args){
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
//    
        TextEditor textEditor = (TextEditor) context.getBean("textEditor");
        textEditor.spellCheck();
    }
}

下面是配置文件Beans.xml的内容,它有基于构造函数注入的配置:

<bean id="textEditor" class="com.tuorialsponit.TextEditor">
         <constructor-arg ref="spellChecker"></constructor-arg>
     </bean>
     
     <bean id="spellChecker" class="com.tuorialsponit.SpellChecker">
     </bean>

运行结果:

 

转载于:https://www.cnblogs.com/fangpengchengbupter/p/7816012.html

相关文章:

  • 快速清理系统垃圾和迅雷5.8版以前的隐藏数据库
  • 谁说Windows 7 比 XP 不注重用户体验?
  • 排序二 快速排序
  • 关于android:screenOrientation=portrait
  • 【转】淡入淡出效果的实现
  • 判断浏览器是否支持wml
  • JAVAWEB 一一 Hibernate(框架)
  • 指定的SID在本机上已经存在。请指定一个不同的SID
  • AIO on AIX 6.1 (文档 ID 1328019.1)
  • 没有来的火灾...
  • 使用Eclipse+Axis2构建Web Service应用(客户端无需生成Stub方式)
  • 权限模块_分配权限_实现分配权限(登录与注销)的基本功能
  • 通过配置php来屏蔽PHP错误
  • [转载]写单元测试的好处
  • bootstrap-胶囊式标签页
  • [数据结构]链表的实现在PHP中
  • FastReport在线报表设计器工作原理
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • Java 多线程编程之:notify 和 wait 用法
  • js面向对象
  • LeetCode29.两数相除 JavaScript
  • Ruby 2.x 源代码分析:扩展 概述
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • vue总结
  • 搭建gitbook 和 访问权限认证
  • 订阅Forge Viewer所有的事件
  • 对超线程几个不同角度的解释
  • 看域名解析域名安全对SEO的影响
  • 使用docker-compose进行多节点部署
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 在Unity中实现一个简单的消息管理器
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • (2)MFC+openGL单文档框架glFrame
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (33)STM32——485实验笔记
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • .Net 6.0 处理跨域的方式
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .Net 垃圾回收机制原理(二)
  • .Net6使用WebSocket与前端进行通信
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • .net图片验证码生成、点击刷新及验证输入是否正确
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • [ C++ ] STL---string类的模拟实现
  • [ Linux ] git工具的基本使用(仓库的构建,提交)
  • [ vulhub漏洞复现篇 ] JBOSS AS 5.x/6.x反序列化远程代码执行漏洞CVE-2017-12149
  • [ 转载 ] SharePoint 资料
  • [Android] 240204批量生成联系人,短信,通话记录的APK
  • [C]编译和预处理详解