可以在 Spring 中自动装配导入的实用程序 类 吗?

Possible to autowire imported utility classes in Spring?

我想在我的 Spring 网络项目中使用数据映射器、记录器、转换器等。是否可以自动装配导入的(jar)实用程序依赖项,而不将其包装在某些@Component 或@Service class 中?我们甚至想那样做,还是应该只使用静态引用?

您只能@Autowire 由 Spring 管理的 bean。因此,您必须通过一些配置声明您的实例:xml 文件中的 bean,或 java 配置中的 @Bean 方法。

@Component 只是在 spring 上下文中自动发现和注册。

如果您的实用程序基于非静态方法,那么这很简单:

如果您使用基于 java 的配置,则只需在 @Bean 注释方法中声明该实用程序。

@Configuration
public class YourConfig {

   @Bean 
   public YourUtil util(){
      return new YourUtil ();
   }
}

在 xml 中可以简单到:

<bean id="util" class="org.example.YourUtil" />

以下是正确的,但不是所要求的:

至少有两种其他方法可以在不是由 Spring 创建(管理)的实例中注入 bean: