有没有办法将spring-managed类注入/导入遗留代码或非spring类?
我正在开发一个spring项目,但是我们有这个遗留代码需要访问spring托管类(特别是jparepsository实现类)。这可能吗?
抱歉,我是Spring框架中的新手。任何帮助/建议将不胜感激。谢谢:))
答案 0 :(得分:0)
您始终可以在代码中加载应用程序上下文。做这样的事情很简单:
ApplicationContext context = new ClassPathXmlApplicationContext("path/to/applicationContext.xml");
您可以通过getBean()函数访问在那里创建的所有bean。这对你来说已经足够了。但是,您无法访问与应用程序其他部分相同的上下文,您将获得一份副本。因此,如果您在应用程序上下文中有有状态bean,那么“#34; unmanaged"代码不会看到相同的状态。
如果您正在谈论Web应用程序,那么您可以使用WebApplicationContextUtils访问与其他Web应用程序相同的上下文。
WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());
既然您可以访问遗留代码,那么是什么阻止您将其重写为Spring管理,或者将其作为ApplicationContextAware?