美文网首页编程知识点IT技术篇Java学习笔记
Spring/Spring MVC/Spring Boot有什么

Spring/Spring MVC/Spring Boot有什么

作者: 魏永_Owen_Wei | 来源:发表于2017-08-02 15:36 被阅读124次

    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应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。

    相关文章

      网友评论

        本文标题:Spring/Spring MVC/Spring Boot有什么

        本文链接:https://www.haomeiwen.com/subject/gmoelxtx.html