在Spring框架尚未问世之前,Java EE是以Sun公司所制定的EJB(Enterprise Java Bean)作为标准的。当EJB作为开发企业级应用的主流技术时,开发一个EJB需要大量的接口和配置文件,开发过程繁琐且配置工作量大。
随着时间的推移,EJB的缺点逐渐显露,比如调用过程复杂、性能问题以及测试难度大等。这导致了开发人员和测试人员对EJB的诟病。而Spring的概念在2002年由澳大利亚工程师Rod Johnson提出,并在2004年推出了1.0版本,这一变革彻底地改变了Java EE开发的世界。
Spring框架以强大的控制反转(IoC)来管理各类Java资源,降低了资源的耦合性。Spring的面向切面的编程(AOP)通过动态代理技术,允许我们按照约定进行配置编程,从而增强了Bean的功能,减少了大量重复的代码。
在Spring的发展过程中,早期由于JDK不支持注解,所以主要使用XML进行配置。但随着JDK的升级,注解被广泛使用起来,Spring的内部也出现了使用XML和支持注解的两派。为了简化开发,Spring在后续版本中逐渐引入了注解功能。
Spring Boot是Pivotal团队在原有Spring框架的基础上,通过注解的方式进一步简化了Spring框架的开发。它使用了特定的方式来进行配置,使开发人员不再需要定义样板化的配置。Spring Boot的目标是使开发者能够尽快进行开发代码、发布和测试自己的项目。
与传统Spring MVC项目相比,Spring Boot的配置更加简单,开发者无需单独下载Tomcat等服务器,也无需进行复杂的服务器配置。Spring Boot提供了大量的starter,这些starter可以直接获取开发所需的相关包。通过这些starter项目,就可以以Java Application的形式运行Spring Boot的项目。
Spring Boot还提供了生产就绪型功能,如指标、健康检查和外部配置等。它允许直接进行开发,大部分配置都有默认值,开发者只需在需要时进行少量配置。这使得开发者能够更加专注于业务开发,提高了开发效率。
对于微服务而言,Spring Boot提供了快速搭建环境的可能性,结合Spring Cloud后可以很方便地构建分布式系统开发。随着云技术的到来和微服务的流行,代表Java微服务时代的Spring Boot微服务开发的时代已经到来。