我是Spring的新手。 目标是学习Spring,将Spring用作生产应用程序,因为它是行业标准。
应用程序的要求: Hibernate,安全性,MVC,RESTful,DI等 将来可能会添加其他Spring框架。 我正在读“Spring in Action。第三版。”克雷格沃尔斯。 他举例说明了如何使用注释,但无论如何都使用了.xml。 我想知道我是否可以只使用java类编写应用程序来配置应用程序中的所有模块。 我发现Spring Boot能够开发不使用xml文件。但是我读了文章http://steveperkins.com/use-spring-boot-next-project/,作者说Boot还没有准备好用于生产应用程序。 据我所知,Boot隐藏了所有配置工作。另外我担心的是,将来知道Spring的java开发人员将无法处理Spring Boot,我也找不到适合该项目的工程师。 基于此,我有以下问题:
答案 0 :(得分:5)
是否可以避免在Spring中使用xml或更好地混合xml文件和注释?
是的,确实如此。 Spring现在推广Java配置,它完全可行(我正在做),甚至只使用Java来配置你的Spring应用程序。即使不使用Boot。
Spring开发人员是否可以使用Spring Boot?
为什么不呢?它有很好的文档记录,并且基于Spring最佳实践。
我能用Spring Boot学习Spring吗?
我怎么能回答这个问题。尝试这样做,你会看到你是否能够。
Spring Boot是否足够成熟,可以在生产中使用它?
是的,确实如此。与你联系的文章是一岁。从那时起,Spring开发人员在Boot上做了很多工作。 Spring在内部使用Boot来托管自己的spring.io Web应用程序。见https://github.com/spring-io/sagan
答案 1 :(得分:1)
JB Nizet非常清楚地回答了3个答案。只是增加了我身边的生产准备情况。我们目前正在将Spring Boot用于我们打算转向生产的应用程序。到目前为止,在原型设计和测试阶段还没有任何问题。它非常方便,避免了样板,并为嵌入式服务器提供了生产就绪的独立jar文件。如果您愿意,也可以选择构建war文件。
“我能用Spring Boot学习Spring吗?”
正如您提到的,您是Spring的新手,您可能更容易快速获取Spring Boot。
要开始使用,如果您有兴趣,以下是Josh Long的网络研讨会链接,它可以让您非常清楚地了解Spring Boot是多么容易: https://www.youtube.com/watch?v=eCos5VTtZoI
答案 2 :(得分:0)
我不太了解Spring Boot,但我对春天非常了解。 首先,您可以在同一个项目中使用注释和xml配置文件。据我所知,这是最常见的方式。
还有JavaConfig配置选项,您不使用任何xml文件,而是使用带有@Configuration批注的普通java类。我没有使用,也没有看到太多用法。
答案 3 :(得分:0)
你可以在没有任何xml的情况下制作一个spring webapp,虽然我上次查看时弹簧安全性很难配置。对于webapp,您需要实现WebApplicationInitializer,创建应用程序上下文并使用上下文注册@Configuration文件。然后你注册调度程序servlet,你就完全了!
答案 4 :(得分:0)
四个月前,当我开始使用我的网络应用程序时,我几乎在同一条船上。在评估了许多选择后,选择Spring作为平台。我也从Spring in Action开始,但是当作者提供的例子不起作用(Spring basic MVC app not working)时,我感到很沮丧。自从我刚开始以来,我一直在寻找一些非常基本但有效的例子。但不幸的是,大多数与Spring教科书一起出现的例子并没有直接开箱即用。
我想建议一些我认为对初学者有用的Spring资源:
现在,回答你的问题,虽然有点不同:
- 是否可以避免在Spring中使用xml或更好地混合xml文件和注释
现在有一天,你会在net / SO上提供Spring代码中的Annotations以及XML配置。但是,如果您愿意,您当然可以避免使用XML。
Spring开发人员使用Spring Boot是否容易? 我能用Spring Boot学习Spring吗? Spring Boot是否足够成熟,可以在生产中使用它?
我个人认为,如果您认为它为您提供了无法实现的某些优势,那么它只适用于Spring Boot。请记住,您现在可以节省时间,但稍后,它将是您的应用程序中的另一个依赖项,您可能需要了解其架构,以便在出现问题时对其进行调试或根据您的应用程序要求进行增强。最好有最少的依赖,我的学习到现在:)