java - MessageSourceAware 是特殊情况吗?或者我可以以类似的方式注入(inject)其他依赖项吗?

标签 java spring inversion-of-control

使用 Spring,我们可以定义实现 MessageSourceAware 的类。然后,容器将自动注入(inject) MessageSource(请参阅 this documentation 的尾部)。

这是一个特殊情况还是我也可以使用这个概念来注入(inject)其他依赖项?例如,我的类可以实现以下接口(interface)吗:

public interface MyServiceAware {
  void setMyService(MyService service);
}

然后以某种方式使用合适的 bean 自动连接?

注意:我目前只使用 XML 配置,并且不愿意转向基于 Java 的注释。

最佳答案

*Aware 接口(interface)由BeanPostProcessor 处理。它会自动在应用程序上下文中注册(org.springframework.context.support.ApplicationContextAwareProcessor)。

您可以创建并注册自己的后处理器来处理 MyServiceAware beans。

另请记住,XML 配置确实支持 autowiring对于适当配置的 bean。

关于java - MessageSourceAware 是特殊情况吗?或者我可以以类似的方式注入(inject)其他依赖项吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15436333/

相关文章:

Java/Android工作室: For loop - Same data shows multiple times

java - Jdialog 在 IE9 中没有获得焦点

java - 使用 ws02 身份服务器的 java web 客户端示例

java - (Java) 重载 : How much is too much?

java - Spring在构造函数中使用泛型多次创建泛型服务

c# - 我应该尝试隐藏 IoC 容器(如果是这样,有什么提示)吗?

java - 抛出 RuntimeException 会导致事务回滚,但 Spring Boot 应用程序中不会出现异常

java - Spring Boot项目创建bean出错

c# - 依赖注入(inject)组合根和装饰器模式

c# - 在 C# 中创建一个小型 IoC 容器