Spring和Guice在一起,或者只是Spring

csa*_*zar 21 java spring guice application-design web-application-design

我从头开始创建一个新的Java Web应用程序.

我对Spring Framework没有太多经验,但我知道我想使用它的一些功能,比如Transaccions Management.

另一方面,我非常喜欢Guice的依赖注入.

我知道Guice和Spring可以一起工作:http://www.jroller.com/mindcrime/entry/an_example_of_integrating_guice

但在开始设计我的应用程序之前,我想知道是否有人通过遵循该方法遇到了问题.

另外,我真正喜欢Guice的是你不需要XML配置文件,而只需要java模块,它更短,更容易阅读.Spring上有没有XML配置文件的替代品,类似于Guice?

Mar*_*szS 15

我认为Spring本身就足以满足企业应用需求.

春天也需要XML!Modern Spring Apps使用JavaConfig最小配置.看一下Spring Boot Guides.Whole Spring应用程序根本不能使用任何XML.

Guice很好,但非常有限.使用Spring可以非常简单快速地编写具有事务和持久性的Web应用程序或REST应用程序.使用Guice,这更复杂.

  • 当你说Guice有限时,你会非常错误.使用Guice编写具有持久性和事务的REST应用程序与使用Spring一样简单(如果不是更容易).例如,有一个[官方扩展](http://code.google.com/p/google-guice/wiki/GuicePersist)用于持久性和事务.例如,Resteasy支持Guice开箱即用. (9认同)
  • 看一下Guice主页:*它是Java *的轻量级依赖注入框架,与Spring页面进行比较:*帮助...构建简单,可移植,快速和灵活的基于JVM的系统和应用程序*。一切皆有可能,但Spring致力于构建企业应用程序。 (2认同)

Jak*_*ski 11

如果您刚刚开始,那么我建议您使用https://github.com/spring-projects/spring-boot

它具有出色的自动配置功能,可以节省编写样板代码.由于嵌入式Tomcat,我甚至可以释放您使用应用程序服务器.例如,实现简单的MVC控制器(可以用作REST端点)看起来像这样:

@Controller
@EnableAutoConfiguration
public class SampleController {

    @RequestMapping("/")
    @ResponseBody
    String home() {
        return "Hello World!";
    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(SampleController.class, args);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在你可以执行java -jar your_package.jar所有这些.您还将获得事务管理,数据库集成等.可以在上述链接中找到更多示例,尤其是在https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples目录中


Tom*_*m G 6

Spring现在已经为两个主要版本提供了基于Java的注释配置.您不需要编写单行XML(甚至不是web.xml!)

我和Guice和Spring一起工作过.对于需要DI的小型项目,Guice已足够,但如果您要使用Spring进行MVC或事务性支持,您也可以使用它的DI.Guice也没有像Spring那样有良好的配置文件支持 - 如果你想为本地开发,测试环境和生产提供单独的bean,你必须自己手动切换模块.