Spring @Configurable with JavaConfig on GAE-Objectify classes

时间:2014-09-29 09:47:29

标签: spring google-app-engine spring-mvc objectify spring-java-config

我有一个Objectify Entity类

@Entity
@Cache
@Index
public class DummyEntity {
    @Id private Long id;
    private ObjectifyStartup objectifyStartup;
    private String someData;
    //Getters and setters for all
} 

这个ObjectifyStartup是在Web MVC JavaConfig文件中初始化的bean,我需要将其注入任何DummyEntity实例

@EnableWebMvc
@Configuration
public class SpringWebMvcConfig extends WebMvcConfigurerAdapter {

    @Bean
    public ObjectifyStartup objectifyStartup() { return new ObjectifyStartupImpl(); }
}

我想在代码中的某个地方执行此操作,基本上是在控制器中

DummyEntity newDummy = new DummyEntity();

我知道我需要在@Configurable上使用DummyEntity注释来使Spring容器注入依赖项,但是为了这个我需要为SpringWebMvcConfig类添加的JavaConfig代码是什么DI工作?

我无法使用自动装配,组件扫描,因为此处提到的最佳做法Spring GAE Optimization导致自动装配导致GAE性能下降。我遇到的所有解决方案都使用@Autowired@ComponentScan<context:spring-configured/>。请提供使用主观声明而非自动装配的解决方案。

1 个答案:

答案 0 :(得分:1)

自从我提出这个问题以来已经有一段时间了,我改变了策略,现在我没有初始化ObjectifyStartup bean来为我提供ofy()服务,因为从Objectify Docs来看,不建议创建ofy()的实例并使用它pan-application。我这样做是因为在ObjectifyStartup bean中我使用Objectify注册​​了所有实体,然后获取其bean实例以进行数据存储操作。但是现在我已经将实体注册移动到一个静态块,该块通过Spring引导我的应用程序。