扫码一下
查看教程更方便
如你所知,java 内部类是在其他类的范围内定义的,类似地,内部 bean 是在另一个 bean 的范围内定义的 bean。 因此,
下面我们看一个示例,使用之前texteditor的示例。
下面是 texteditor.java 文件的内容
texteditor.java
package com.jiyik; public class texteditor { private spellchecker spellchecker; // 用于注入依赖项的 setter 方法。 public void setspellchecker(spellchecker spellchecker) { system.out.println("inside setspellchecker." ); this.spellchecker = spellchecker; } // 返回 spellchecker 的 getter 方法 public spellchecker getspellchecker() { return spellchecker; } public void spellcheck() { spellchecker.checkspelling(); } }
以下是另一个依赖类文件 spellchecker.java 的内容
spellchecker.java
package com.jiyik; public class spellchecker { public spellchecker(){ system.out.println("inside spellchecker constructor." ); } public void checkspelling(){ system.out.println("inside checkspelling." ); } }
以下是 mainapp.java 文件的内容
mainapp.java
package com.jiyik; 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,它具有基于 setter 的注入但使用内部 bean 的配置
beans.xml
创建完源代码和 bean 配置文件后,让我们运行应用程序。 如果应用程序一切正常,它将打印以下消息
inside spellchecker constructor.
inside setspellchecker.
inside checkspelling.