Google Guice, Google Gin and Spring



我计划改进已经编写的代码,这是一个GWT应用程序,需要部署在GAE上。

依赖注入由Guice和Gin负责。我想知道我是否可以在后端使用 Spring。(这是一个严格的要求)。

我让客户端代码正常工作并向我的服务器代码发送请求,在服务器代码中的"服务"类中,我想为 DAO 层进行 Spring 注入。

但不幸的是,即使我进行@Autowired注入,DAO 引用也是空的。这将导致 NPE。

我知道您只能在春季环境中注入管理豆。所以我尝试在服务器端类上放置一个注释@Service,该类正在接收来自客户端代码的 RPC 请求。该类如下所示:

@Path(ResourcesPath.PERSON)
@Produces(MediaType.APPLICATION_JSON)
@Service
public class PersonResource {
private Logger logger;
@Autowired
PersonDAO dao;
@Inject
PersonResource(Logger logger) {
    this.logger = logger;
}
}

我希望有这样的事情

@Path(ResourcesPath.PERSON)
@Produces(MediaType.APPLICATION_JSON)
public class PersonResource {
private Logger logger;
@Inject
PersonResource(Logger logger) {
    this.logger = logger;
}
}

谢谢你的帮助。请向我建议一些可以解决这个问题的东西。

要将@Service注释与配置弹簧一起使用,您必须像这样配置上下文

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:context="http://www.springframework.org/schema/context"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
     http://www.springframework.org/schema/beans/spring-beans.xsd
     http://www.springframework.org/schema/context
     http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="org.example"/>
</beans>

Spring 将扫描包以找到组件注释。

如果使用 java 5+,则可以像这样使用 java 配置:

@Configuration
@ComponentScan({"org.example"})
public class ExampleConfig {
....
}

有关详细信息,请参阅文档类路径扫描和托管组件。

你可以通过配置Spring上下文来做到这一点,如上所述,或者在这个不错的教程中解释。

许多库可以帮助您将GWT RPC机制与Spring集成,即 GWTRPC-Spring 或 spring4GWT

更多

的例子可以在网络上找到。

相关内容

  • 没有找到相关文章

最新更新