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