java - 我可以向第三方 bean 注入(inject)属性吗?

标签 java spring inversion-of-control

假设我有一些类,这些类不是由 Spring 实例化的。例如,它们可以通过反序列化器或 JavaFX 实例化。

我可以像编写 Spring bean 一样编写这些类并稍后将属性注入(inject)其中吗?

实际上,我想要一个例程,它可以使用反射扫描类,查找其中的所有 @Autowired 注释并从应用程序上下文注入(inject)值?

如果我调用applicationContext.getBeanFactory().registerSingleton("myName", myBean),会发生这种情况吗?请注意,我不会限制自己使用单例。

最佳答案

如果bean不是由Spring实例化的,那么你不能要求Spring注入(inject)依赖项或建议它们。

这是我看到 Spring 新手常犯的一个错误。他们调用 new 来实例化带有注释的 bean,并且无法理解为什么没有注入(inject)它们的依赖项。

Spring 将处理您使用 Bean 工厂实例化的所有 Bean。与使用 new 创建的所有其他人一样,您只能靠自己。

关于java - 我可以向第三方 bean 注入(inject)属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37346511/

相关文章:

Java 重载构造函数

使用 Axis2 和 Netbeans 的 Java Web 服务

mysql - 在域对象约束中指定grails浮点精度,如何?

java - Spring Mongo聚合项目过滤器

java - 如何用 ANT 重命名 n 个文件? (批处理作业)

java - 在 Controller 或服务中进行验证?

c# - 使用 Ninject,我可以在不公开具体类的情况下从接口(interface)创建实例吗?

c# - ASP.NET MVC3 : Set custom IServiceProvider in ValidationContext so validators can resolve services

c# - Ninject 工厂扩展和 InCallScope 没有给出预期的结果

Java:用assert实现长类型溢出免疫