Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
spring中Aware接口的实际应用_Spring - Fatal编程技术网

spring中Aware接口的实际应用

spring中Aware接口的实际应用,spring,Spring,如果我将ApplicationContextAware接口实现到我的bean,那么我将在我的bean中获得ApplicationContext的一个实例,但是它的实际用途是什么?为什么我们需要*感知接口,为什么我要用spring绑定代码?根据spring: 因此,bean可以通过编程方式操纵 通过ApplicationContext接口或强制转换创建它们 对该接口的已知子类的引用,例如 ConfigurableApplicationContext,它公开了其他 功能一个用途是对另一个的编程检索

如果我将
ApplicationContextAware
接口实现到我的bean,那么我将在我的bean中获得
ApplicationContext
的一个实例,但是它的实际用途是什么?为什么我们需要
*感知接口,为什么我要用spring绑定代码?

根据spring:

因此,bean可以通过编程方式操纵 通过ApplicationContext接口或强制转换创建它们 对该接口的已知子类的引用,例如 ConfigurableApplicationContext,它公开了其他 功能一个用途是对另一个的编程检索 豆子。有时这种能力是有用的;但是,总的来说你 应该避免它,因为它将代码耦合到Spring,而不会 遵循控制反转的风格,合作者在这里 作为属性提供给bean使用的其他方法 ApplicationContext提供对文件资源的访问、发布 应用程序事件和访问消息源。


如果要从组件发布应用程序事件,可能需要引用应用程序上下文;如果要检索某些消息,可能需要引用由提供的
MessageSource


但正如JB Nizet在评论中提到的,通常有更好的选择。例如,您通常可以自动连接
MessageSource
ApplicationEventPublisher
以及
*Aware
接口提供的其他组件,因此通常不再需要实现这些接口。

有时,我们在创建 , 和

为了满足上述要求,我们从Spring获得了许多接口

javaodc对此进行了解释:。请记住,此接口非常旧。过去它有用的大多数情况现在都有了更好的替代方案。