Spring,Spring MVC 和Spring Boot是为了解决不同的问题,并不是相互冲突的。
1.Spring的功能
Spring架构最核心的功能就是依赖注入。
所有Spring模块的核心都是依赖注入。如果合理使用依赖注入,我们可以构建低耦合的应用,而且应用更容易进行单元测试。
不使用依赖注入的例子:
@RestController
public class WelcomeController {
private WelcomeService service = new WelcomeService();
@RequestMapping("/welcome")
public String welcome() {
return service.retrieveWelcomeMessage();
}
}
WelcomeService service = new WelcomeService();这一步创建了一个实例,这个实例和service是仅仅联系在一起的。如果想替换controller中的WelcomeService就不是一件简单的事情了。
使用依赖注入的例子:
@Component
public class WelcomeService {
//Bla Bla Bla
}
@RestController
public class WelcomeController {
@Autowired
private WelcomeService service;
@RequestMapping("/welcome")
public String welcome() {
return service.retrieveWelcomeMessage();
}
}
注解@Component会告诉Spring这里有个bean需要管理。
注解@Autowired会告诉Spring为这个类型找到正确匹配的项并自动装载。
在这个例子中Spring会自动创建一个bean并自动装载到controller中。在执行单元测试的时候可以让Spring自动转载mock service到controller。
除了这个核心功能之外,Spring还有两个重要功能:
减少重复代码
Spring提供了很多模块比如Spring JDBC,Spring MVC,Spring Test。这些功能可以自己实现,但是借助这些封装的模块就能减少代码量,代码越少bug就越少。
很好的集成其他框架
Spring架构从不解决已经被解决的问题,而且和这些解决问题的框架能够很好的集成。比如Hibernate,iBatis,JUnit。
2.Spring MVC的功能
Spring MVC提供了一种轻度耦合的方式来开发web应用。
Spring MVC是Spring的一个模块,式一个web框架。通过Dispatcher Servlet, ModelAndView 和 View Resolver,开发web应用变得很容易。解决的问题领域是网站应用程序或者服务开发——URL路由、Session、模板引擎、静态Web资源等等。
3.Spring Boot的功能
Spring Boot实现了自动配置,降低了项目搭建的复杂度。
众所周知Spring框架需要进行大量的配置,Spring Boot引入自动配置的概念,让项目设置变得很容易。Spring Boot本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box),大部分的Spring Boot应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。
网友评论