目录

  • 只有一个有参构造器,在只有一个有参构造器的情况下,参数的值就会从容器 中拿
  • springBoot入门
  • Spring Boot简介
  • 微服务(SpringCloud)
  • springBoot_hello(Maven工程,需要导入springboot需要的相关依赖。)
  • 创建过程
  • 深入探究helloword
  • 快速创建springBoot_helloword
  • springBoot配置
  • @RestController 是将@Controller与@ResponseBody合并在一起
  • 全局配置文件(application.properties,application.yml)
  • YAML语法
  • 将peoperties或者yml配置文件的值注入javaBean中(@ConfigurationProperties和@Value)
  • 使用@ConfigurationProperties注解进行值注入,前提是容器中的组件@Component
  • 使用@Value注解进行值注入,前提是容器中的组件@Component
  • 注解@Value和@ConfigurationProperties区别
  • 导入使用自定义的配置文件(@PropertySource和@ImportResource)
  • 导入properties文件@PropertySource
  • 导入yml配置文件,使用类PropertySourcesPlaceholderConfigurer
  • 导入xml文件@ImportResource
  • SpringBoot推荐使用全注解方式(@Configuration,@Bean)
  • 配置文件占位符
  • Profile多环境支持(开发环境,测试环境,生产环境。。)
  • 默认配置文件的加载顺序
  • 外部配置的加载顺序
  • 自动配置原理
  • 自动配置的过程
  • 自动配置精髓
  • @Conditional注解,判断当前条件是否成立,返回true或者false。只有当条件成立,自动配置类才会生效
  • 查看哪些配置类生效或者不生效,properties文件中配置debug=true
  • springBoot与日志
  • springBoot与Web开发
  • springBoot与Docker
  • springBoot与数据访问(springDate)
  • springBoot启动配置原理
  • springBoot自定义starters
  • springBoot与缓存
  • springBoot与消息
  • springBoot与检索
  • springBoot与任务
  • springBoot与安全
  • springBoot与分布式
  • springBoot与开发热部署
  • springBoot与监控管理


只有一个有参构造器,在只有一个有参构造器的情况下,参数的值就会从容器 中拿

springBoot入门

Spring Boot简介

简化Spring应用开发的框架
整个spring技术栈的大整合 J2EE开发式一站式整合的解决方案
简化了Spring的配置文件的配置,自动注入配置文件

微服务(SpringCloud)

微服务是一种架构风格,在开发一个应用的时候,应用应该是一组服务的组合,各服务之间通过Http进行联系,转发到服务器上也可以使
用负载均衡。
每一个功能元素都是一个可独立运行,可独立替换的元素。

springBoot_hello(Maven工程,需要导入springboot需要的相关依赖。)

创建spring工程就是spring对应的工程,不是springboot,创建爱你springInitialzer 快速创建是maven工程

使用的是jar包的方式创建的springBoot_hello,使用的是内部的Tomcat,运行main方法的方式进行的启动。

创建过程

SpringBoot Hikari 自动配置 springboot自动配置原理总结_配置文件


pom.xml文件

继承父类的pom文件

修改字符集

加入可以打包成可执行jar包的工具,无需在服务器中部署tomcat服务器等等,这是与普通打包成的jar包的区别。

<!--继承父类pom文件-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.6.RELEASE</version>
    </parent>
    <!--使用UTF-8字符集-->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
    </properties>
    <dependencies>
     <!--开启spring-boot-starter-web服务-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <build>
        <!--打包插件-->
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

SpringBoot Hikari 自动配置 springboot自动配置原理总结_配置文件_02


ApplicationMain.java

@SpringBootApplication
public class ApplicationMain {
    public static void main(String[] args) {
        //SpringBoot启动起来
        SpringApplication.run(ApplicationMain.class,args);
    }
}

HelloController.java

@RestController
public class HelloController {
    @RequestMapping("/hello")
    @ResponseBody
    public String hello(){
        System.out.println("springboot Helloword!!!");
        return "hahahha springbootHelloword!!";
    }
}

深入探究helloword

  1. pom文件
  2. 导入的依赖
  3. 主程序类,主入口类




快速创建springBoot_helloword

SpringBoot Hikari 自动配置 springboot自动配置原理总结_spring_03


SpringBoot Hikari 自动配置 springboot自动配置原理总结_配置文件_04


SpringBoot Hikari 自动配置 springboot自动配置原理总结_java_05


SpringBoot Hikari 自动配置 springboot自动配置原理总结_配置文件_06

springBoot配置

@RestController 是将@Controller与@ResponseBody合并在一起

全局配置文件(application.properties,application.yml)

SpringBoot Hikari 自动配置 springboot自动配置原理总结_java_07


SpringBoot Hikari 自动配置 springboot自动配置原理总结_配置文件_08

YAML语法

SpringBoot Hikari 自动配置 springboot自动配置原理总结_配置文件_09


SpringBoot Hikari 自动配置 springboot自动配置原理总结_spring_10


SpringBoot Hikari 自动配置 springboot自动配置原理总结_配置文件_11


SpringBoot Hikari 自动配置 springboot自动配置原理总结_spring_12

将peoperties或者yml配置文件的值注入javaBean中(@ConfigurationProperties和@Value)

使用@ConfigurationProperties注解进行值注入,前提是容器中的组件@Component

  1. 配置文件application.yml
  2. SpringBoot Hikari 自动配置 springboot自动配置原理总结_spring_13

  3. javaBean
  4. SpringBoot Hikari 自动配置 springboot自动配置原理总结_配置文件_14

  5. 配置文件application.properties
  6. SpringBoot Hikari 自动配置 springboot自动配置原理总结_配置文件_15

  7. idea默认使用的是utf-8,在配置文件注入值的时候,乱码,需要在运行时转化成Ascii码
  8. SpringBoot Hikari 自动配置 springboot自动配置原理总结_配置文件_16

  9. javaBean
  10. SpringBoot Hikari 自动配置 springboot自动配置原理总结_spring_17

使用@Value注解进行值注入,前提是容器中的组件@Component

支持JSR303数据校验,@Validated表示使用校验,@Email表示校验规则,@Value不支持

SpringBoot Hikari 自动配置 springboot自动配置原理总结_spring_18

注解@Value和@ConfigurationProperties区别

SpringBoot Hikari 自动配置 springboot自动配置原理总结_配置文件_19

导入使用自定义的配置文件(@PropertySource和@ImportResource)

导入properties文件@PropertySource

@PropertySource(value={“classpath:proper.properties”})

SpringBoot Hikari 自动配置 springboot自动配置原理总结_spring_20

导入yml配置文件,使用类PropertySourcesPlaceholderConfigurer

在springboot启动类(Application.java)中将自定义的yaml文件加载到spring容器

package com.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
 
@SpringBootApplication
public class YamlApplication {
    public static void main(String[] args) {
        SpringApplication.run(YamlApplication .class, args);
    }
    @Bean
    public static PropertySourcesPlaceholderConfigurer properties() {
        PropertySourcesPlaceholderConfigurer configurer = new         
        PropertySourcesPlaceholderConfigurer();
        YamlPropertiesFactoryBean yaml = new YamlPropertiesFactoryBean();
	    yaml.setResources(new ClassPathResource("test1.yml"),new ClassPathResource("test2.yml"));
        configurer.setProperties(yaml.getObject());
        return configurer;
    }
}

这样就将自定义的test1.yml和test2.yml加载到了spring容器中。

导入xml文件@ImportResource

@ImportResource(locations = {“classpath:beans.xml”})

SpringBoot Hikari 自动配置 springboot自动配置原理总结_配置文件_21

SpringBoot推荐使用全注解方式(@Configuration,@Bean)

SpringBoot Hikari 自动配置 springboot自动配置原理总结_配置文件_22

配置文件占位符

SpringBoot Hikari 自动配置 springboot自动配置原理总结_配置文件_23

Profile多环境支持(开发环境,测试环境,生产环境。。)

SpringBoot Hikari 自动配置 springboot自动配置原理总结_spring_24


SpringBoot Hikari 自动配置 springboot自动配置原理总结_java_25


SpringBoot Hikari 自动配置 springboot自动配置原理总结_配置文件_26


SpringBoot Hikari 自动配置 springboot自动配置原理总结_java_27

默认配置文件的加载顺序

SpringBoot Hikari 自动配置 springboot自动配置原理总结_spring_28

外部配置的加载顺序

SpringBoot Hikari 自动配置 springboot自动配置原理总结_配置文件_29

自动配置原理

自动配置的过程

SpringBoot Hikari 自动配置 springboot自动配置原理总结_spring_30


SpringBoot Hikari 自动配置 springboot自动配置原理总结_spring_31


SpringBoot Hikari 自动配置 springboot自动配置原理总结_配置文件_32


SpringBoot Hikari 自动配置 springboot自动配置原理总结_spring_33


SpringBoot Hikari 自动配置 springboot自动配置原理总结_spring_34


SpringBoot Hikari 自动配置 springboot自动配置原理总结_java_35

自动配置精髓

SpringBoot Hikari 自动配置 springboot自动配置原理总结_配置文件_36

@Conditional注解,判断当前条件是否成立,返回true或者false。只有当条件成立,自动配置类才会生效

SpringBoot Hikari 自动配置 springboot自动配置原理总结_spring_37

查看哪些配置类生效或者不生效,properties文件中配置debug=true

自动配置类会全部加载spring.factories文件中的所有配置类名,只有当满足条件的情况下才会生效

SpringBoot Hikari 自动配置 springboot自动配置原理总结_配置文件_38


SpringBoot Hikari 自动配置 springboot自动配置原理总结_spring_39

springBoot与日志

springBoot与Web开发

springBoot与Docker

springBoot与数据访问(springDate)

springBoot启动配置原理

springBoot自定义starters

springBoot与缓存

springBoot与消息

springBoot与检索

springBoot与任务

springBoot与安全

springBoot与分布式

springBoot与开发热部署

springBoot与监控管理