我们有一个使用Swing的前端应用程序。我们使用Spring框架,但目前它仅用于自动装配几个bean ......
更频繁地使用Spring的合理后续步骤是什么? 非Web应用程序是否值得?
有什么优点和缺点?
答案 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后面运行良好。
它提供了许多可以使用的服务
Spring应用程序上下文提供了其他服务,但我还没有使用过。
如果你朝这个方向发展,还要看一下spring的基于java的配置,这是3.0中的新功能。我发现它也很有用,因为它使我的弹簧配置类型安全。
答案 2 :(得分:1)
在Swing应用程序中使用Spring的一个缺点是Spring DI会使启动速度变慢。
答案 3 :(得分:0)