Spring boot/Spring/SpringMVC

Spring 是一个“引擎”;

Spring MVC 是基于Spring的一个 MVC 框架;Spring MVC提供了一种轻度耦合的方式来开发web应用。它是Spring的一个模块,是一个web框架。通过Dispatcher Servlet, ModelAndView 和 View Resolver,开发web应用变得很容易。解决的问题领域是网站应用程序或者服务开发——URL路由、Session、模板引擎、静态Web资源等等。

Spring Boot 是基于Spring4的条件注册的一套快速开发整合包。Spring Boot实现了自动配置,降低了项目搭建的复杂度。它主要是为了解决使用Spring框架需要进行大量的配置太麻烦的问题,所以它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box)。

Spring 最初利用“工厂模式”(DI)和“代理模式”(AOP)解耦应用组件。大家觉得挺好用,于是按照这种模式搞了一个 MVC框架(一些用Spring 解耦的组件),用于开发 web 应用( SpringMVC )。然后发现每次开发都写很多样板代码,为了简化工作流程,于是开发出了一些“懒人整合包”(starter),这套就是 Spring Boot。spring boot 并不是spring基础上的扩展,只是使应用更简单。

Spring boot

特性&优势
  • 自动配置 Spring @EnableautoConfiguration
    Spring Boot 会根据在类路径中的 jar 包、类,为 jar 包里的类自动配置 Bean,这样会极大地减少我们要使用的配置。当然,Spring Boot 只是考虑了大多数的开发场景,并不是所有的场景,若在实际开发中我们需要自动配置 Bean,而 Spring Boot 没有提供支持,则可以自定义自动配置。
  • 内嵌 Servlet 容器
    Spring Boot 可选择内嵌 Tomcat、Jetty 或者 Undertow,这样我们无须以 war 包形式部署项目。
  • 提供 starter 简化 Maven 配置
    Spring 提供了一系列的 starter pom 来简化 Maven 的依赖加载
  • 独立运行的 Spring 项目
    Spring Boot 可以以 jar 包的形式独立运行,运行一个 Spring Boot 项目只需通过 java–jar xx.jar 来运行。
  • 无代码生成和 xml 配置
    Spring Boot 的神奇的不是借助于代码生成来实现的,而是通过条件注解来实现的,这是 Spring 4.x 提供的新特性。Spring 4.x 提倡使用 Java 配置和注解配置组合,而 Spring Boot 不需要任何 xml 配置即可实现 Spring 的所有配置。
常用知识点
  • 自动配置@SpringBootApplication:复合Annocation,“三体”结构。@Target(ElementType.TYPE)、@Retention(RetentionPolicy.RUNTIME)、@Documented、@Inherited、@Configuration、@EnableAutoConfiguration、@ComponentScanpublic、@interface。

    • @EnableAutoConfiguration也是复合的Annocaton,主要是@AutoConfigurationPackage:自动配置包;@Import:给IOC容器导入组件。借助 @Import 的帮助,将所有符合自动配置条件的 bean 定义加载到 IoC 容器。其中最关键的是@Import(EnableAutoConfigurationImportSelector.class),借助 EnableAutoConfigurationImportSelector,@EnableAutoConfiguration 可以帮助 SpringBoot 应用将所有符合条件的 @Configuration 配置都加载到当前 SpringBoot 创建并使用的 IoC 容器。在这里插入图片描述
    • @ComponentScan就是扫描注解,默认是扫描当前类下的package。将@Controller/@Service/@Component/@Repository等注解加载到IOC容器中。(与@AutoConfidurationPackage扫描的对象是不一样的。)
    • @Configuration,支持JavaConfig的方式来进行配置(使用Configuration配置类等同于XML文件)。
  • 开箱即用的自动配置依赖模块都约定以 spring-boot-starter- 作为命名的前缀,并且皆位于 org.springframework.boot 包或者命名空间下。所有的 spring-boot-starter 都有约定俗成的默认配置,但允许我们调整这些配置以改变默认的配置行为,即约定优先于配置

  • 运行SpringBoot有哪几种方式?
    打包用命令或者放到容器中运行
    用 Maven/ Gradle 插件运行
    直接执行 main 方法运行

  • 开启 SpringBoot特性有哪几种方式?
    继承spring-boot-starter-parent项目
    导入spring-boot-dependencies项目依赖

【参考文档】
springboot知识点归纳
springboot

猜你喜欢

转载自blog.csdn.net/qq_36281031/article/details/108560619