PlayFramework如何将对象注入模板

时间:2014-09-03 12:07:18

标签: java playframework spring-data

我想要完成的是从上下文向任何模板注入一些spring存储库对象。 已经有可能从任何地方调用任何方法,包括模板,但“任何方法”必须定义为静态,在这种情况下,我们可以从模板调用@ Class.staticMethod()。我想做同样的事情但我需要从spring上下文中检索“Class”

1 个答案:

答案 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()
相关问题