在基于Swing的前端中使用Spring有什么优缺点

时间:2011-03-16 13:05:25

标签: java spring swing

我们有一个使用Swing的前端应用程序。我们使用Spring框架,但目前它仅用于自动装配几个bean ......

更频繁地使用Spring的合理后续步骤是什么? 非Web应用程序是否值得?

有什么优点和缺点?

4 个答案:

答案 0 :(得分:4)

使用Spring(或任何其他依赖注入)框架的优点是,您可以获得(希望)松散耦合的系统,即您的类不会创建其协作者的实例,因此您可以轻松地更改实现。 / p>

这被广泛称为控制反转原理(IoC,也是SOLI中的I),这是一个很好的原则。这意味着spring不仅限于web应用程序,而是可以用于任何想要使用IoC容器的应用程序(基本上就是spring-core)。

缺点: 这实际上取决于你如何看待事物。有更多的代码(您必须为注入的协作者定义一个入口点),但这也使得代码更易于测试(入口点是您可以用来在测试中注入模拟和存根的接缝)。

此外,您无法查看代码并立即查看所使用的协作者的实现。但这也是很好的代码,因为你依赖于接口,而不是实现。

您可以获得更多配置:在xml文件(旧式弹簧)中或使用注释。直到最近,你不得不依赖非标准的spring注释来注入(@Autowired)资源,但是现在你可以使用标准的java依赖注入注释,这意味着你可以在不更改代码的情况下将spring作为IoC容器切换出来

在您的应用程序中使用spring可能有很多优点和缺点,但是这应该让您开始决定使用依赖性反转是否对您的应用程序是一件好事

更多关于Swing和Spring的问题。在我一直在研究的应用程序中,我们一直在使用spring来连接整个应用程序。不同的对话框会注入逻辑(没有应用程序逻辑(在我看来)应该与gui逻辑一起定位)。我们使用JPA / hibernate作为数据库层,因此我们使用spring spring创建实体管理器并将其注入到DAO中,并设置事务设置。

答案 1 :(得分:3)

我写过由春天支持的摇摆UI。

<强>缺点

  • 启动可能会慢一些,但你必须有一个大型的应用程序才能实现。 在这些情况下,使用闪屏是一个好主意。
  • 很容易“过度肥胖”或者过于热心地将所有东西都变成了麻烦。

<强>优点

Spring在GUI后面运行良好。

它提供了许多可以使用的服务

  • 明显的依赖注入和解耦
  • 一个全局事件系统,简化一些自己的事件监听器,用于只会被一个源触发的事件
  • 资源访问
  • 数据库访问是2层应用程序中的一部分
  • rpc for 3 tier apps很容易

Spring应用程序上下文提供了其他服务,但我还没有使用过。

如果你朝这个方向发展,还要看一下spring的基于java的配置,这是3.0中的新功能。我发现它也很有用,因为它使我的弹簧配置类型安全。

答案 2 :(得分:1)

在Swing应用程序中使用Spring的一个缺点是Spring DI会使启动速度变慢。

答案 3 :(得分:0)

如果您决定迁移到Web应用程序,那么您需要(差不多)改变的只是视图。这就是MVC应用程序的美妙之处。