gpt4 book ai didi

java - Spring 和 Java 接口(interface)

转载 作者:行者123 更新时间:2023-12-01 18:13:21 24 4
gpt4 key购买 nike

在阅读一些有关开发企业应用程序的高级书籍时,我经常看到以下模式,可以通过以下示例进行说明:。

public interface Oracle {
String defineMeaningOfTheLife();
}
public class BookwormOracle implements Oracle {

public String defineMeaningOfTheLife() {

return "Use life, dude!";
}
}

主要功能:

  public static void main(String[] args) {
XmlBeanDefinitionReader rdr = new XmlBeanDefinitionReader(factory);
rdr.loadBeanDefinitions(new ClassPathResource(
"META-INF/spring/xml-bean-factory-config.xml"));

Oracle oracle = (Oracle) factory.getBean("oracle");
System.out.println(oracle.defineMeaningOfTheLife());
}

以及 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.xsd">


<bean id="oracle" name="wiseworm" class="BookwormOracle" />

据我了解,无法实例化该接口(interface)。但是,在我看来,使用 Spring 框架是可以做到这一点的。那么 Spring 框架是如何做到这一点的呢?从纯Java角度看代码

Oracle oracle = new Oracle();

是相当错误的。

最佳答案

Spring 还需要接口(interface)的实现来实例化 bean 并使其可供您的应用程序使用。它实际上是上下文文件 (xml-bean-factory-config.xml) 中定义的内容:

<bean id="oracle" name="wiseworm" class="BookwormOracle" />

在 spring 上下文中,您定义要创建的 Oracle 接口(interface)的实现。当你的 main 方法调用时:

Oracle oracle = (Oracle)factory.getBean("oracle");

它要求 Spring 获取 id 为“oracle”的 bean,它是您的 Oracle 接口(interface)的实现。

关于java - Spring 和 Java 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31244377/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com