继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

慕田峪4524236
关注TA
已关注
手记 204
粉丝 19
获赞 52

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

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

接下来,我们将通过示例来理解 Spring 基于构造函数的依赖注入。

示例:

下面的例子显示了一个类 TextEditor,只能用构造函数注入来实现依赖注入。

让我们用 Eclipse IDE 适当地工作,并按照以下步骤创建一个 Spring 应用程序。

步骤描述
1创建一个名为 SpringExample 的项目,并在创建的项目中的 src 文件夹下创建包 com.tutorialspoint 。
2使用 Add External JARs 选项添加必需的 Spring 库,解释见 Spring Hello World Example chapter.
3在 com.tutorialspoint 包下创建 Java类 TextEditorSpellChecker 和 MainApp
4在 src 文件夹下创建 Beans 的配置文件 Beans.xml 。
5最后一步是创建所有 Java 文件和 Bean 配置文件的内容并按照如下所示的方法运行应用程序。

这是 TextEditor.java 文件的内容:

package com.tutorialspoint; public class TextEditor {    private SpellChecker spellChecker;    public TextEditor(SpellChecker spellChecker) {       System.out.println("Inside TextEditor constructor." );       this.spellChecker = spellChecker;    }    public void spellCheck() {       spellChecker.checkSpelling();    } }

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

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

以下是 MainApp.java 文件的内容:

package com.tutorialspoint; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class MainApp {    public static void main(String[] args) {       ApplicationContext context =               new ClassPathXmlApplicationContext("Beans.xml");       TextEditor te = (TextEditor) context.getBean("textEditor");       te.spellCheck();    } }

下面是配置文件 Beans.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">    <!-- Definition for textEditor bean -->    <bean id="textEditor" class="com.tutorialspoint.TextEditor">       <constructor-arg ref="spellChecker"/>    </bean>    <!-- Definition for spellChecker bean -->    <bean id="spellChecker" class="com.tutorialspoint.SpellChecker">    </bean> </beans>

当你完成了创建源和 bean 配置文件后,让我们开始运行应用程序。如果你的应用程序运行顺利的话,那么将会输出下述所示消息:

Inside SpellChecker constructor. Inside TextEditor constructor. Inside checkSpelling.


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP