通过Spring将继承树加载到List中

本文展示如何使用Spring框架将Bean的继承树加载到List集合中。通过构造函数注入,可以方便地获取到所有子类实例,这在某些场景下非常实用。文章提供了一个具体的示例,包括Nature类和其showAnimals方法,用于输出加载的Bean。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我注意到有趣的Spring功能。 我的一位同事使用它将Spring Bean的整个继承树加载到列表中。 在学习Spring文档时错过了这一点。

让我们来看看Spring bean的继承树:



动物类图

下面的代码片段是通过构造函数注入将该豆树加载到列表中的:

@Component
public class Nature {
	List<Animal> animals;

	@Autowired
	public Nature(List<Animal> animals) {
		this.animals = animals;
	}

	public void showAnimals() {
		animals.forEach(animal -> System.out.println(animal));
	}
}

方法showAnimals使用Java 8 lambda表达式将已加载的bean输出到控制台中。 这些天来,您会发现很多有关此新Java 8功能的文章。

Spring上下文由这个主类加载:

public class Main {
	public static void main(String[] args) {
		AnnotationConfigApplicationContext context =
				new AnnotationConfigApplicationContext(SpringContext.class);

		Nature nature = context.getBean(Nature.class);
		nature.showAnimals();
	}
}

控制台输出:

PolarBear []
Wolf []
Animal []
Grizzly []
Bear []

翻译自: https://www.javacodegeeks.com/2014/05/load-inheritance-tree-into-list-by-spring.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值