我想使用自己的Velocity框架中的StringResourceRepository实现。但是我需要在这个实现中使用注入的@Repository。问题是Velocity通过反射创建我的类,然后在初始化期间使用它的方法。因为Repository引用为null - 没有注入任何东西。如果不修改Velocity源代码,我该怎么处理这段代码?
似乎有一种可能性是实现自己的StringResourceLoader,但我想知道有没有其他方法可以解决这个问题?
答案 0 :(得分:0)
看看@Configurable注释,这使spring能够将依赖注入到不是由spring直接实例化的对象中。您需要启用aspectj编织才能工作。
答案 1 :(得分:0)
您可以让Spring自行创建您自己创建的实例或由第三方库创建的实例,如下所示: WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext); 。wac.getAutowireCapableBeanFactory()autowireBean(对象);
这需要手头有ServletContext,因为没有包含根WebApplicationContext的全局静态。
或者,如果您在FactoryBean中设置速度,则可以实现WebApplicationContextAware并以此方式获取AutowireCapableBeanFactory。
另一种选择是使用AspectJ和加载时间编织。