【问题标题】:Play Framework + Spring, dependency injection to Global objectPlay Framework + Spring,对全局对象的依赖注入
【发布时间】:2015-07-15 13:26:01
【问题描述】:

我在这个例子中使用 Play Framework + Spring Data JPA:

https://github.com/typesafehub/play-spring-data-jpa

我有模型、存储库,现在我想在启动时初始化我的数据库。我使用@Autowired 将存储库注入到我的Global.java 文件中,但它们在运行时等于null。是因为 Spring 不会尝试向 Global.java 注入依赖,因为 Global.java 连包名都没有,所以我不能告诉 Spring 扫描他的包!

使用控制器 Spring DI 效果很好,但是如何在 Global.java 中使用它?如何使用存储库初始化数据库?

【问题讨论】:

    标签: spring playframework


    【解决方案1】:

    您可以通过设置属性application.global来更改application.confGlobal.java的包。

    其他方法可以是显式调用获取依赖项

    context.getBean(YourBeanClass)
    

    Global.java 中而不是自动装配 它,因为您在Global 中有可用的上下文。

    【讨论】:

    • 显式调用 context.getBean() 对我有用。自动装配仍然无法正常工作,但可能是因为 Global 对象不是由 Spring 管理的,而 Play Framework 会创建它。不确定,如果可能的话,在 Global 对象中使用 @Autowired,也许这是个坏主意。
    • 是的,我也试了一下。 @Autowired 在全球范围内不起作用。可能是因为 Spring 不承认它是一个组件。
    【解决方案2】:

    您可以通过在您的上下文 xml 中定义它来显式创建一个 bean <bean id="global" class="Global"></bean>

    此外,在默认包中包含类也不是一个好主意。

    【讨论】:

    猜你喜欢
    • 2016-06-19
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多