这是通过Reflection或ServiceLoader完成的吗?我问,因为我有一个自定义的LoginModule应该使用Spring,但是尽管有@Autowired
,相应的bean没有正确填充(在上下文中定义了bean,这显然在类路径上) 。这让我认为LoginModule实现类是使用反射加载的,因此完全绕过了Spring。是这样的吗?如果可以的话,我还能以某种方式使用Spring吗?
答案 0 :(得分:0)
回答我自己的问题:是的,这是使用反射来完成的,它有效地绕过Spring并为你提供了一个没有@Autowired
的实例化对象。
但是,您可以使用LoginModule
initialize()
方法手动初始化Bean。 LoginModule
类应该实现org.springframework.context.ApplicationContextAware
,您必须拥有private static ApplicationContext context
。这样就会为你注入context
,你可以从那里加载bean。
远非最佳,但它似乎正在做的伎俩。如果有人有更好的解决方案,请分享,因为我很乐意听到它!