【问题标题】:How to inject a Spring bean into a google cloud endpoint class?如何将 Spring bean 注入谷歌云端点类?
【发布时间】:2014-05-28 16:29:08
【问题描述】:

我想将 Spring Data JpaRepository 注入到 goodle 云端点类中。 我怎样才能做到这一点?因为我认为目前云端点类不受 Spring 控制,自动装配注释存储库始终保持为空。

有人找到了guice的解决方案Appengine with Google Cloud Endpoints and Guice

我想做的和 Spring 一样。所以我想用 spring 上下文调出云端点。

目前我在 Spring 上下文中执行此操作以获取我的存储库,例如:

@Api(name = "myapi", version = "v1", scopes = { Constants.EMAIL_SCOPE }, clientIds = {
    Constants.WEB_CLIENT_ID, Constants.ANDROID_CLIENT_ID,
    Constants.IOS_CLIENT_ID, Constants.API_EXPLORER_CLIENT_ID }, audiences = {
Constants.ANDROID_AUDIENCE })
public class TestServiceImpl {

// @Autowired
private TestRepository repository;

public TestServiceImpl () {
    repository = ApplicationContextProvider.getApplicationContext()
            .getBean(TestRepository.class);

}

    ....
    }

但我想使用 Autowired,可以吗?

【问题讨论】:

    标签: spring google-cloud-endpoints code-injection


    【解决方案1】:

    我今天遇到了同样的问题。我通过添加以下构造函数找到了解决方案:

    public TestServiceImpl() {
            SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);
    }
    

    希望对你有帮助。

    【讨论】:

    • 您的 web.xml 是什么样的?我在 org.mortbay.jetty.servlet.ServletHolder.makeUnavailable(ServletHolder.java:415) 的 org.mortbay.jetty 的 org.mortbay.jetty.ServletHolder.makeUnavailable(ServletHolder.java:415) 的 servlet javax.servlet.UnavailableException 中的 GAE Con​​sole.Uncaught 异常中得到一个异常:java.lang.reflect.InvocationTargetException .servlet.ServletHolder.initServlet(ServletHolder.java:458)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-03
    • 2015-10-27
    • 2014-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多