返回顶部

SpringBoot 从入门到源码解析


快速入门

  • 创建 Maven 工程,引入依赖

    <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>2.4.5</version>
    </parent>
    
    <dependencies>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
    </dependencies>
    
  • 创建主程序,运行main函数,浏览器直接访问。

    //启动类
    @SpringBootApplication
    public class Springboot01Application {
    
      public static void main(String[] args) {
          SpringApplication.run(Springboot01Application.class, args);
      }
    }
    
    //Controller控制层
    @RestController
    public class HelloController {
      @RequestMapping("/hello")
      public String hello(){
          return "hello spring boot";
      }
    }
    
  • 简化配置:唯一配置文件 application.properties

  • 简化部署:打包插件,打成jar包

    <build>
      <plugins>
        <plugin>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
      </plugins>
    </build>
    

原理分析

  • 依赖管理

    • 父项目做依赖管理,版本控制。
    • 更改版本
    • starter场景启动器
  • 自动配置

    • 我们自己写的Controller、Service、Dao都必须在启动类的包内或者子包,这样就会自动扫描包。

    • 引入spring boot starter依赖,启动主程序,之前xml中的组件都被自动配置了,一共127个,但是因为条件装配(@Conditional),最终会按需配置。



    • 配置文件的配置最终都对应一个类,这些类会在容器中创建对象。


注解使用

  • @Conditional:满足条件则进行组件注入

  • @ImportResource:导入Spring配置文件XML中配置的bean

  • @ConfigurationProperties:配置绑定,读取properties文件内容,封装到bean


  • @PathVariable:接收RestFul风格请求参数,可以单个接收,也可以封装到一个Map集合中

  • @RequestParam:获取请求参数,同样可以使用Map接收所有。

  • Lombok插件

    //1、引入依赖
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    </dependency>
    
    //2、IDEA安装Lombok插件
    
    //3、实体类添加注解
    @Data                //Get、Set方法
    @ToString            //ToString方法
    @AllArgsConstructor  //全参数构造方法
    @NoArgsConstructor   //无参构造方法
    

热部署

  • 引入依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <scope>runtime</scope>
    <optional>true</optional>
</dependency>
  • 其他配置:CTRL+shift+alt+/


posted @ 2021-10-16 21:46  凑数的园丁  阅读(45)  评论(0编辑  收藏  举报