具有弹簧依赖注入的GWT

Bhu*_*ale 9 gwt spring

我用Google搜索但找不到任何答案.

我打算使用GWT.我想知道我是否可以在GWT代码中使用spring来使用依赖注入框架?我不是在谈论GWT gui与后端spring应用程序的交互.

我问的原因是GWT代码被编译为JavaScript,这是在浏览器中执行的.如果我在那里使用spring代码,那么它是否可以工作或者其他任何其他库如log4j等?

或者GUI代码必须只是纯GWT API?

例如,

public class MyTable {
   private Button myButton;
   @Autowired
   public MyTable(Button aMyButton) {
      myButton = aMyButton;
   }
}

小智 18

使用GIN在GWT上支持Guice .对于带有GWT的类似Spring的DI,请查看GWT ToolboxRocket GWT.

我相信GIN是GWT更自然的选择.不是因为它也是由Google制作的,而是因为使用XML进行GWT配置绝对没有意义.所有东西都被静态编译成JavaScript,因此不需要外部化配置.保持您的重构工具愉快; 去找GIN.

要回答您的其他问题,您将找不到许多适用于GWT的SE框架.首先,它不支持反射或字节码操作(一切都是JavaScript),它立即排除了很多框架.另一方面,Log4j没有意义,因为客户端没有可访问的文件系统,但是有些可以做不同的事情.

上面提到的用于GWT的Spring库基本上是对GWT的Spring的重写.他们不与Spring共享任何代码只是因为他们不能.这些框架通过生成代码("工厂")来工作,这些代码就像您手动执行DI一样连接组件.

这也是GIN的工作原理,它为您的类生成Java工厂,GWT将其编译为优化的JavaScript(意味着性能开销很小).GIN确实在幕后使用Guice,在编译时验证配置并检查模块.