如何使Spring 3.1.1与App Engine数据存储区一起使用

时间:2012-05-08 22:29:20

标签: spring google-app-engine google-cloud-datastore

每个人都可以向我展示如何在Google App Engine上运行Spring 3.1.1的教程吗?

我已经按照几个教程进行了操作,并设法让简单的HelloWorld示例在App Engine上运行。然而,当我更进一步时,我坚持在Spring和Datastore之间的持久过程中。我也查看了这个线程Configuring JDO in Spring 3.1?,但是它适用于localhost但是由于javax.naming.NamingException而部署到app引擎时它不起作用。

因此,我正在寻找一个不太简单的教程,该教程涵盖了现实应用程序的基本方面,例如视图,模型和数据库。

2 个答案:

答案 0 :(得分:0)

Jappstart是一个很好的地方,可以看到使用Spring和数据存储区(通过JPA)的GAE工作示例,也是构建基本GAE / J应用程序的良好起点。

答案 1 :(得分:0)

花了大约一天时间尝试完成这项工作,我想我会在这里添加一些额外的有用信息。首先看看这个项目https://github.com/hleinone/spring-gae-jdo和这个问题:http://code.google.com/p/googleappengine/issues/detail?id=1240 - 评论24是有用的。

如果有人想要使用注释驱动的配置,我就是这样做的:

package com.domain.yourcode.configuration;

import javax.jdo.JDOHelper;
import javax.jdo.PersistenceManagerFactory;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.orm.jdo.GAETransactionAwarePersistenceManagerFactoryProxy;
import org.springframework.orm.jdo.JdoTransactionManager;
//import org.springframework.orm.jdo.TransactionAwarePersistenceManagerFactoryProxy;

@Configuration
public class JDOConfiguration {

    private static final PersistenceManagerFactory pmf =     JDOHelper.getPersistenceManagerFactory("transactions-optional");

    @Bean
    public GAETransactionAwarePersistenceManagerFactoryProxy proxyPmf() {
        GAETransactionAwarePersistenceManagerFactoryProxy proxy = 
                new GAETransactionAwarePersistenceManagerFactoryProxy();
        proxy.setTargetPersistenceManagerFactory(pmf);
        proxy.setAllowCreate(false);
        return proxy;
    }

    @Bean
    public JdoTransactionManager transactionManager() {
        JdoTransactionManager mgr = new JdoTransactionManager();
        mgr.setPersistenceManagerFactory(pmf);
        return mgr;
    }

}

您仍然希望在applicationContext.xml

中使用<tx:annotation-driven/>