spring boot基础知识

07-17 1231阅读

spring boot是整合spring 一系列的包的坐标集合 对依赖进行整合

总体介绍

spring boot基础知识

spring boot是用来方便构建项目的工具

spring cloud是用来方便spring boot项目之间进行数据交互通讯和配置的

spring cloud data Flow 是用来进行数据的连接的

Spring 缺点

  1. 配置繁琐

    虽然Spring的组件代码是轻量级的,但它的配置却是重量级的。一开始,Spring用XML配置,而且是很多

    XML配置。Spring 2.5引入了基于注解的组件扫描,这消除了大量针对应用程序自身组件的显式XML配置。

    Spring 3.0引入了基于Java的配置,这是一种类型安全的可重构配置方式,可以代替XML。

    所有这些配置都代表了开发时的损耗。因为在思考Spring特性配置和解决业务问题之间需要进行思维切换,所

    以编写配置挤占了编写应用程序逻辑的时间。和所有框架一样,Spring实用,但它要求的回报也不少。

  2. 依赖繁琐

    项目的依赖管理也是一件耗时耗力的事情。在环境搭建时,需要分析要导入哪些库的坐标,而且还需要分析导

    入与之有依赖关系的其他库的坐标,一旦选错了依赖的版本,随之而来的不兼容问题就会严重阻碍项目的开发

    进度。

spring boot功能:

SpringBoot提供了一种快速开发Spring项目的方式,而不是对Spring功能上的增强。

  1. 自动配置

Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定

Spring配置应该用哪个,不该用哪个。该过程是SpringBoot自动完成的。

  1. 起步依赖

起步依赖本质上是一个Maven项目对象模型(ProjectObject Model,POM),定义了对其他库的传递依赖

,这些东西加在一起即支持某项功能。

简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。

  1. 辅助功能

提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等。

三个基本注解,controller,service,repository,分别代表mvc层,service层和dao层,是component的特化

spring 起步依赖原理分析

在spring-boot-starter-parent中定义了各种技术的版本信息,组合了一套最优搭配的技术版本。

在spring boot中存在版本锁定

spring boot基础知识

spring-boot-starter-parent主要定义一些版本的信息

spring boot基础知识

spring-boot-starter-web 依赖传递(间接依赖了其他版本坐标)

  • 在spring-boot-starter-parent中定义了各种技术的版本信息,组合了一套最优搭配的技术版本。
  • 在各种starter中,定义了完成该功能需要的坐标合集,其中大部分版本信息来自于父工程。
  • 我们的工程继承parent,引入starter后,通过依赖传递,就可以简单方便获得需要的jar包,并且不会存在版本冲突等问题。

    spring boot配置文件分类

    • SpringBoot提供了2种配置文件类型:properteis和yml/yaml
    • 默认配置文件名称:application
    • 在同一级目录下优先级为:properties> yml > yaml

      是spring boot yaml文件基本语法

      YAML: 基本语法

      • 大小写敏感
      • 数据值前边必须有空格,作为分隔符
      • 使用缩进表示层级关系(使用python的都懂)
      • 缩进时不允许使用Tab键,只允许使用空格(各个系统Tab对应的空格数目可能不同,导致层次混乱),在IDEA编辑器中可以使用tab键。
      • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
      • #表示注释,从这个字符一直到行尾,都会被解析器忽略。
        server:
          port: 8080
          address: 127.0.0.1
        name: abc
        #对象
        person:
        	name: zhangsan
        	age: 20
        #对象行内写法
        person2: {name: zhangsan,age: 20}
        #数组
        address:
        	- belijing
        	- shanghai
        #数组行内写法
        address2: [beijing,shanghai]
        #纯量
        msg1:'hello \n world’#不会识别转义字符,会原样输出
        msg2:"hello \n world”#会识别转义字符
        

        参数引用

        使用 ${keyname}

        name: list
        person: 
        	name: ${name}
        

        key: valu的冒号后面必须跟上一个空格和多个空格

        spring中获取数据

        spring boot基础知识

        使用@Value注解进行字段自动注入

        spring boot基础知识

        使用Environment Bean进行

        spring boot基础知识

        @Autowired
        private Environment env;
        

        spring boot基础知识

        使用@ConfigurationProperties注解进行自动装配,如果有层级关系,就在注解传参时指定节点

        @ConfigrationProperties(preson=“节点路径”)

        spring boot基础知识

        如果需要自定义配置yal高亮有提示的需要进行配置的处理器

        spring boot基础知识

        spring boot配置profile文件

        1. profile是用来完成不同环境下,配置动态切换功能的。

        2. profile配置方式

          • 多profile文件方式:提供多个配置文件,每个代表一种环境。
            • .application-dev.properties/yml开发环境
            • ·application-test.properties/yml测试环境
            • ·application-pro.properties/yml生产环境
            • yml多文档方式:
              • 在yml中使用—分隔不同配置
              • profile激活方式

                • 配置文件:再配置文件中配置:spring.profiles.active=dev
                • 虚拟机参数:在VMoptions指定:-Dspring.profles.active=dev
                • 命令行参数:java-jarxxx.jar --spring.profiles.active=dev
                • jar包生成

                  点击Maven依赖中的生命周期(Lifecycle)中的package

                  spring boot基础知识

        内部配置加载顺序

        spring boot基础知识

        项目加载路径和模块配置文件

        整合junit

        整合redis

        整合mybatis

        整合swagger3

        整合rabitMQ

        整合jwt加密

        阿里fastjson包JSON转换

        整合lombok

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]