我想要完成的是从上下文向任何模板注入一些spring存储库对象。 已经有可能从任何地方调用任何方法,包括模板,但“任何方法”必须定义为静态,在这种情况下,我们可以从模板调用@ Class.staticMethod()。我想做同样的事情但我需要从spring上下文中检索“Class”
答案 0 :(得分:0)
基本上你需要的是一个带有静态方法的服务定位器,它允许从Spring上下文中获取bean。有很多方法可以从静态方法访问Spring上下文。下面我介绍其中一个。
@Service
public class ServiceLocator {
@Autowired
private static ApplicationContext appContext;
@Autowired
public ServiceLocator(ApplicationContext appContext) {
ServiceLocator.appContext = appContext;
}
public static <T> T getClassFromSpringContainer(Class<T> clazz) {
return appContext.getBean(clazz);
}
}
在视图中,您可以导入该类并获取您喜欢的任何bean。
@import models.ServiceLocator
@import models.SampleService
@ServiceLocator.getClassFromSpringContainer(classOf[SampleService]).sampleMethod()