【SpringBoot第一篇入门笔记】之入门1 第一次了解

文章目录

      • 1 第一次了解
        • 1.1 SpringBoot的优势
        • 1.2 Spring 微服务
        • 1.3 第一个项目的搭建HelloWorld
        • 1.4 @SpringBootApplication初步了解
        • 1.5 IDEA:使用 Spring Initializer快速创建项目

1 第一次了解

1.1 SpringBoot的优势

  1. springboot是对spring框架的再封装,用来简化Spring的开发
  2. 快速创建独立运行的Spring项目以及与主流框架集成
  3. 使用嵌入式的Servlet容器,应用无需打成WAR包 直接打包成Jar包,直接使用jar -jar,不需要额外配置Tomcat等
  4. starters自动依赖与版本控制
  5. 大量的自动配置,简化开发,也可修改默认值
  6. 无需配置XML,无代码生成,开箱即用
  7. 准生产环境的运行时应用监控
  8. 与云计算的天然集成

1.2 Spring 微服务

微服务实际上是一种架构风格,它的中心思想是一组小型服务,以HTTP方式交互。

每一个小型服务都是一个可独立替换、独立升级的服务单元。

原先的传统模式为单体应用,所有的服务都封装在一个war包里,这个带来的问题:

  1. 日益增长的软件需求,不可能只有一个应用
  2. 牵一发动全身,一旦修改某个小地方,所有服务都要停止重新打包

【SpringBoot第一篇入门笔记】之入门1 第一次了解_第1张图片

1.3 第一个项目的搭建HelloWorld

  1. 创建maven项目

  2. 导入springboot的相关依赖,引入starters

    注意是继承了一个parent父工程的,spring-boot-starter-parent不是写在依赖中的

    
    
        org.springframework.boot
        spring-boot-starter-parent
        2.0.4.RELEASE
    
    
    
       
        
            org.springframework.boot
            spring-boot-starter-web
        
    
    

    说明:

    1. 继承了一个父项目spring-boot-starter-parent,是所有spring-boot-starter的父项目,该项目实际上是继承了另外一个父项目
    
      org.springframework.boot
      spring‐boot‐dependencies
      1.5.9.RELEASE
      ../../spring‐boot‐dependencies
    
    

    spring‐boot‐dependencies是真正管理Spring Boot应用里面的所有依赖版本的工程。

    父项目spring-boot-starter-parent的功能是Spring Boot的版本仲裁中心,导入依赖默认是不需要写版本;(没有在dependencies里面管理的依赖自然需要声明版本号)。

    1. 中导入的starter-xx才是真正场景启动器

      Spring Boot将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里面引入这些starter,相关场景的所有依赖都会导入进来。

      要用什么功能就导入什么场景的启动器,相关的依赖jar包都会自动导入。

      具体可见

  3. 创建主程序,启动SpringBoot

    @SpringBootApplication
    public class StartApplication {
        public static void main(String[] args) {
            SpringApplication.run(StartApplication.class,args);
        }
    }
    

    说明:

    1. @SpringBootApplication: Spring Boot应用标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot就应该运行这个类的main方法来启动SpringBoot应用
    2. 启动类不能在default包下,否则会报错
    3. 启动类从main函数开始运行,使用SpringApplication.run(StartApplication.class,args)`来加载SpringBoot

1.4 @SpringBootApplication初步了解

@SpringBootApplication其实是一个组合注解

@SpringBootConfiguration 
// @SpringBootConfiguration:Spring Boot的配置类; 标注在某个类上,表示这是一个Spring Boot的配置类;

@EnableAutoConfiguration
//开启自动配置功能;

@ComponentScan(
    excludeFilters = {@Filter(
    type = FilterType.CUSTOM,
    classes = {TypeExcludeFilter.class}
), @Filter(
    type = FilterType.CUSTOM,
    classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {
  1. @SpringBootConfiguration Spring Boot的配置类

    @Configuration
    public @interface SpringBootConfiguration {
    }
    
    • @Configuration:配置类上来标注这个注解;配置类 ----- 配置文件;配置类也是容器中的一个组件
  2. @EnableAutoConfiguration 开启自动配置功能

    以前我们需要配置的东西,Spring Boot帮我们自动配置

    @AutoConfigurationPackage
    @Import(EnableAutoConfigurationImportSelector.class)
    public@interfaceEnableAutoConfiguration{
    
    • @AutoConfigurationPackage:将主配置类(@SpringBootApplication标注的类)的所在包及下面所有子包里面的所有组件扫描到Spring容器;

      • @Import({Registrar.class})
        public @interface AutoConfigurationPackage {
        }
        
      • @Import({Registrar.class}),Import是Spring的底层注解,给容器中导入一个组件,这里导入的组件就是主配置类所在包和子包的所有全限定名组件

    • @Import(AutoConfigurationPackages.Registrar.class),同样导入一些组件,导入的组件是以xx.AutoConfiguration命名的自动配置类,有了自动配置类,免去了我们手动编写配置注入功能组件等的工作。ß

1.5 IDEA:使用 Spring Initializer快速创建项目

IDE都支持使用Spring的项目创建向导快速创建一个Spring Boot项目,只需要选择我们需要的模块:

【SpringBoot第一篇入门笔记】之入门1 第一次了解_第2张图片
选择我们需要的模块;向导会联网创建Spring Boot项目;

默认生成的Spring Boot项目:

  1. 主程序已经生成好了,我们只需要写自己的逻辑
  2. resources文件夹中目录结构
    1. static:保存所有的静态资源:js css images
    2. templates:保存所有的模板页面[Spring Boot默认jar包使用嵌入式的Tomcat,默认不支持JSP,可以使用模板引擎(freemarker、thymeleaf)解决]
    3. application.properties:Spring Boot应用的配置文件,可以修改一些默认设置;

你可能感兴趣的:(SpringBoot)