文章目录

  • SpringBoot框架
  • 1 SpringBoot入门
    • 1.2 什么是SpringBoot
      • 1 官网的解释
      • 2 我的理解
      • 3 SpringBoot的优缺点
      • 4 构建项目
        • 1 使用Spring 官方提供页面构建
        • 2 使用IDEA构建
        • 3 pom包介绍
    • 1.3 SpringBoot核心
      • 1 约定优于配置
      • 2 Starter启动器
      • 3 自动配置工作原理
        • @SpringBootConfiguration
        • @EableAuconfiguration
    • 1.3 SpringBoot全局配置
      • 1 全局配置文件
      • 2 自定义配置文件
        • 1 通过@Value获取自定义配置
        • 2 通过 @ConfigurationProperties注解封装自定义配置

学习SpringBoot框架后写一个总结,这个文档会持续更新的

SpringBoot框架

1 SpringBoot入门

1.2 什么是SpringBoot

1 官网的解释

​ Spring在官方首页是这么说的:说使用SpringBoot可以构造任何东西,SpringBoot是构造所有基于Spring的应用程序的起点,SpringBoot在于通过最少的配置为你启动程序。

2 我的理解

SpringBoot是Spring开源项目的一个子项目,是Spring组件的一站式解决发案,其目的是简化Spring应用的初始搭建和开发过程。

3 SpringBoot的优缺点

其实就是变得简单,快捷,方便,我们以前自己搭建一个Spring Web项目是不是需要配置web.xml,加载Spring和SpringMvc,在配置数据库连接.配置Spring事务,日志文件,对配置文件的读取,开启注解等等一些东西,在然后启动Tomcat调试,如果还要加一些功能,还需要你自己在去搞一遍,为什么SpringBoot可以很方便的搭建一个Web项目了,不提供 Spring 框架的核心特性以及扩展功能,只用于开发新一代基于Spring框架的应用程序。

所有SpringBoot有以下优点:

1. 开发变得简单
2. 配置变得简单
3. 部署变得简单
4. 监控变得简单

Spring Boot有以下缺点:

  1. 将现有的Spring Framework项目转换为Spring Boot应用程序是一个非常困难和耗时的过程。它仅适用于全新Spring项目;
  2. 集成度较高,使用过程中不太容易了解底层

4 构建项目

1 使用Spring 官方提供页面构建

1、访问 http://start.spring.io/

2、选择构建工具 Maven Project、Java、Spring Boot 版本 2.1.15、Spring Web依赖以及一些工程基本信息,可参考下图所示:
3、点击 Generate – Ctrl + 下载项目压缩包

4、解压后,使用 IDEA 导入项目

2 使用IDEA构建

  1. File -> New —> Project… 弹出新建项目的框
  2. 选择 Spring Initializr,Next 也会出现上述类似的配置界面,IDEA 帮我们做了集成。

· Group,一般填写公司域名,· Artifact,可以理解为项目的名称了,在点击next进入Dependencles部署,选择SpringBoot的版本,我一般选择的是2.6.3的版本,在点击next
![在这里插入图片描述](https://img-blog.csdnimg.cn/72ecf91fa5cd4d92ab460859374672cf.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5pit5pmf,size_20,color_FFFFFF,t_70,g_se,x_16
输入项目名称和项目地址在下一步就可以了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-23KNs0ou-1644988805926)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220216114401953.png)]

  • src/main/java 程序开发以及主程序入口
  • src/main/resources 配置文件
  • src/test/java 测试程序

3 pom包介绍

第一部分:项目描述信息
groupId,公司域名;
artifactId,项目名称;
version,项目版本号;
name,项目名称;
description,项目描述
第二部分:依赖配置部分<parent>   配置 Spring Boot 父级版本<groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-parent</artifactId>  <version>2.6.3</version>  <relativePath/> <!-- lookup parent from repository -->
</parent><dependencies>  配置项目所需要的依赖包<dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-web</artifactId>  </dependency>  <dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-test</artifactId>  <scope>test</scope>  </dependency>
</dependencies>

1.3 SpringBoot核心

1 约定优于配置

约定优于配置(Convention Over Configuration),叫作约定编程,是一种设计范式,一般用来减少开发人员做决定的数量。所以.在Spring体系中,Spring Boot jpa就是约定优于配置最佳实现之一,不需要关注表结构,我们约定类名.即是表名,属性名即,是表的字段,在做一些配置,就可以大大简化了我们的工作

2 Starter启动器

Starter可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包

3 自动配置工作原理

@SprngBoot Application 注解启动类 表示项目的的启动
@SprngBoot Application 注解启动类 标注的是SpringBoot 项目的主配置类,用于启动SpringBoot项目,SpringBoot Application里面还有三个注解分别是@EableAuconfiguration,@SpringBootConfiguration,@ComponetScan

@ComponentScan 注解表示扫描组件,以前在SSM中也使用过组件扫描,启用注解配置。启动类上间接包含该注解,表示会扫描启动类所在包及子包下的注解配置。

@SpringBootConfiguration

@SpringBootConfiguration标注当前类是配置类,并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中,并且实例名就是方法名

@EableAuconfiguration

@EableAuconfiguration 注解 开启自动配置,它下面还有两个重要的注解,@AutoConfigurationPackage,@Import

@AutoConfigurationPackage 实现了自动将包放入到扫描器中

@Import注解 自动导入第三方依赖

@SpringBootApplication 完成的三件事情

1、标识当前类为主配置类。

2、自动扫描当前主配置类所在的包及其子包下的所有类。并添加一些类配置类纳入Spring容器中。

3、会自动将SpringBoot项目所需要的第三方依赖进行下载。

1.3 SpringBoot全局配置

1 全局配置文件

1、application.properties。

2、application.yml 配置文件。

在默认情况下properties比yml文件的优先级高

相同点:

可以覆盖Spring Boot自动配置的默认值

不同点:

properties的语法是key=value,比较简单。

3 application.yml 配置文件

yml是YAML语言的文件,以数据为中心,比json、xml等更适合做配置文件

yml的语法是由字母值,对象,数组,三种结构组成,并且是以空格的缩进程度来表示层级关系,空格的个数并不重要,只要左边空格对齐则视为同一个层级。注意不能用tab代替空格。且大小写敏感

注意事项:

1、字符串可以不加引号,若加双引号则输出特殊字符,若不加或加单引号则转义特殊字符;

2、数组类型,短横线后面要有空格;对象类型,冒号后面要有空格;

3、YAML是以空格缩进的程度来控制层级关系,但不能用tab键代替空格,大小写敏感;

4、如何让一个程序员崩溃?在yml文件中加几个空格

2 自定义配置文件

自定义配置文件通过,@Value获取自定义配置,自定义配置文件,@Configuration配置,导入XML配置,下面我就说下通过@Value和自定义配置文件来定义配置文件

1 通过@Value获取自定义配置

在application.properties自定义配置:

com.test.zhangsan.name=张三
com.test.nishi.name=李四

在HelloController.java中通过 @Value注解获取数据:

@RestController
public class HelloController {@Value("${com.test.zhangsan.name}")private String zname;@Value("${com.test.nishi.name}")private String lname;@Autowiredprivate DemoService demoService;@RequestMapping("/hello")  public String hello() {  String msg = demoService.sayHello();  msg += " "+zname +" "+lname;  return msg;  }
}

2 通过 @ConfigurationProperties注解封装自定义配置

使用@ConfigurationProperties注解,需要在]pom.xml中添加依赖

<dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-configuration-processor</artifactId>  <optional>true</optional>
</dependency>
// 在com.demo.comm包下创建Testinfo.java类,并添加注解,prefix指定获取的配置信息的前缀:
@Cconfiguration
@ConfigurationProperties(prefix = "com.test")
public class Testinfo implements Serializable {  private String zname;  private String lname;  //省略setter/getter
}
// 在启动类上使用@EnableConfigurationProperties(Testinfo.class)
//  修改HelloController.java,注入TestInfo获取数据:
@RestController
public class HelloController {  @Resource  private Testinfo Testinfo;  @Autowired  private DemoService demoService;  @RequestMapping("/hello")public String hello() {  String msg = demoService.sayHello();  msg += " "+Testinfo.getZname() +" "+Testinfo.getLname();  return msg;  }
}

SpringBoot框架理解相关推荐

  1. 《SpringBoot框架开发技术整合》笔记(一)

    文章目录 前言 第一章 构建简单WEB项目 第二章 SpringBoot接口返回Json 第三章 SpringBoot热部署 第四章 SpringBoot资源文件属性 前言     笔者近期在慕课网上 ...

  2. 基于JAVA黑白图片和上色处理系统(Springboot框架+AI人工智能) 开题报告

      本科生毕业论文 基于Java(springboot框架)黑白图片和上色处理系统 开题报告 学    院: 专    业: 计算机科学与技术 年    级: 学生姓名: 指导教师:   XXXX大学 ...

  3. 基于JAVA汽车租赁系统 (Springboot框架) 开题报告

      本科生毕业论文 基于Java(springboot框架)汽车租赁系统 开题报告 学    院: 专    业: 计算机科学与技术 年    级: 学生姓名: 指导教师:   XXXX大学本科生毕业 ...

  4. 基于JAVA(Springboot框架)助农商城平台系统设计与实现 毕业设计开题报告

      本科生毕业论文 基于JAVA(Springboot框架)助农商城平台 开题报告 学    院: 专    业: 计算机科学与技术 年    级: 学生姓名: 指导教师:   XXXX大学本科生毕业 ...

  5. 基于JAVA校园疫情防控系统(Springboot框架) 开题报告

      本科生毕业论文 基于Java(springboot框架)校园疫情防控系统 开题报告 学    院: 专    业: 计算机科学与技术 年    级: 学生姓名: 指导教师:   XXXX大学本科生 ...

  6. 基于JAVA学校校园网站系统(Springboot框架) 开题报告

      本科生毕业论文 基于Java(springboot框架)学校校园网站系统 开题报告 学    院: 专    业: 计算机科学与技术 年    级: 学生姓名: 指导教师:   XXXX大学本科生 ...

  7. Java - SpringBoot 框架详解(一)

    1. SpringBoot框架 SpringBoot并不是一个全新的技术解决了新问题的框架!它更像是一个SpringMVC框架,但是,它极大程度的简化了相关的配置,它推荐使用"约定大于配置& ...

  8. 基于JAVA动漫网站和特效处理系统(Springboot框架+AI人工智能) 开题报告

      本科生毕业论文 基于Java(springboot框架)动漫网站和特效处理系统 开题报告 学    院: 专    业: 计算机科学与技术 年    级: 学生姓名: 指导教师:   XXXX大学 ...

  9. 基于JAVA学生信息管理和新生报到系统(Springboot框架) 开题报告

      本科生毕业论文 基于Java框架springboot学生信息管理和新生报到系统 开题报告 学    院: 专    业: 计算机科学与技术 年    级: 学生姓名: 指导教师:   XXXX大学 ...

  10. 15分钟用Java平台实现Springboot框架构建后端项目框架

    15分钟用Java平台实现Springboot框架构建后端项目框架 文章目录 15分钟用Java平台实现Springboot框架构建后端项目框架 前言 准备工具 1. 新建项目 2.搭建项目框架 3. ...

最新文章

  1. 算法分析中递推式的一般代数解法
  2. [mmu/cache]-cache的一些基本概念介绍
  3. 台式计算机防盗锁怎么安装,怎样拆装防盗门锁?防盗门锁怎么进行正确安装?...
  4. Android系统优化(65)---MTK 平台开关机、重启时间优化
  5. java 学习笔记_java学习笔记
  6. Java基础学习总结(89)——为什么单元测试应该我们开发人员来写
  7. 用docker swarm 实现集群
  8. oracle的表空间的检查,oracle数据库检查所有表空间使用率的脚本
  9. docker安装tomcat下的日志查看
  10. 华展云-让展览更高效 2017第6届中国国防信息化装备与技术博览会会刊(参展商名录)
  11. C++ 中typedef用法
  12. nginx请求转发配置
  13. 易语言雷电模拟器adb模块制作实现一键模拟器多开
  14. 简述关于ASP.NET MVC与.NET CORE 的区别
  15. 前端项目使用阿里巴巴icon font的具体过程
  16. 易友八字合婚系统发布(支持同性基友拉拉兼容)1.01发布
  17. 绩点 计算 html,GPA算法大全,教你怎么算GPA
  18. Java中23种设计模式(随时不定时更新)
  19. html5 自动失去焦点,js input失去焦点事件
  20. 优秀的工程师是怎样炼成的

热门文章

  1. 测试了几款mysql监控工具
  2. 焊接工时简便计算工具_2020年新版机械加工工时费用计算(17页)-原创力文档...
  3. 传染病SIR模型及蒙特卡洛方法
  4. 基于51单片机超声波测距仪设计倒车雷达防撞报警器
  5. GBDT算法原理以及实例理解(含Python代码简单实现版)
  6. java爬虫实例教程_Java爬虫的实例分析
  7. (百看不如一练系列)整理的40个前端练手项目|||实践出真知
  8. Matlab画图常用命令
  9. [ACNOI2021]OEIS yyds
  10. 在VM14中建立Win10虚拟机并实现与宿主机的互联