SprinBoot-黑马-笔记

SpringBoot----黑马视频地址

网盘链接:https://pan.baidu.com/s/1z8I4IXEuYBepDYbg4ijzUw
提取码:1234

1. 基础篇

1.快速上手SpringBoot

1.SpringBoot入门程序开发

SprinBoot-黑马-笔记_第1张图片

SprinBoot-黑马-笔记_第2张图片

SprinBoot-黑马-笔记_第3张图片

SprinBoot-黑马-笔记_第4张图片

SprinBoot-黑马-笔记_第5张图片

SprinBoot-黑马-笔记_第6张图片

SprinBoot-黑马-笔记_第7张图片

SprinBoot-黑马-笔记_第8张图片

SprinBoot-黑马-笔记_第9张图片

SprinBoot-黑马-笔记_第10张图片

SprinBoot-黑马-笔记_第11张图片

SprinBoot-黑马-笔记_第12张图片

SprinBoot-黑马-笔记_第13张图片

SprinBoot-黑马-笔记_第14张图片

SprinBoot-黑马-笔记_第15张图片

SprinBoot-黑马-笔记_第16张图片

隐藏指定文件/文件夹

image-20220601203250693

2.浅谈入门程序工作原理

SprinBoot-黑马-笔记_第17张图片

SprinBoot-黑马-笔记_第18张图片

parent

SprinBoot-黑马-笔记_第19张图片

starter

SprinBoot-黑马-笔记_第20张图片

image-20220601204931344

引导类

SprinBoot-黑马-笔记_第21张图片

image-20220601210748904

SprinBoot-黑马-笔记_第22张图片

springboot内置三款服务器

SprinBoot-黑马-笔记_第23张图片

SprinBoot-黑马-笔记_第24张图片

SprinBoot-黑马-笔记_第25张图片

2.Rest风格

SprinBoot-黑马-笔记_第26张图片

SprinBoot-黑马-笔记_第27张图片

SprinBoot-黑马-笔记_第28张图片

SprinBoot-黑马-笔记_第29张图片

@RequestBody @RequestParam @PathVariable

SprinBoot-黑马-笔记_第30张图片

@RestController = @Controller + @ResponseBody

RESTful快速开发

SprinBoot-黑马-笔记_第31张图片

SprinBoot-黑马-笔记_第32张图片

SprinBoot-黑马-笔记_第33张图片

3.基础配置

复制工程时,模板module文件样式:

image-20220502012124841

SprinBoot-黑马-笔记_第34张图片

image-20220601220011342

SprinBoot-黑马-笔记_第35张图片

image-20220601220146882

属性配置方式:

SprinBoot-黑马-笔记_第36张图片

SprinBoot-黑马-笔记_第37张图片

SprinBoot-黑马-笔记_第38张图片

SprinBoot-黑马-笔记_第39张图片

SprinBoot-黑马-笔记_第40张图片

4.Yaml

yaml数据读取

@Value(“${一级属性名.二级属性名}”)

封装整个yaml文件中的属性

//使用自动装配将所有的数据封装到一个对象Environment中
    @Autowired
    private Environment env;
// 使用方式
System.out.println("-----------------------------");
        System.out.println(env.getProperty("server.port"));
        System.out.println(env.getProperty("user.name"));

封装yaml文件中的单个对象


//1.定义数据模型封装yaml文件中对应的数据
//2.定义为spring管控的bean
@Component
//3.指定加载的数据
@ConfigurationProperties(prefix = "datasource")
public class MyDataSource {
    private String driver;
    private String url;
    private String username;
    private String password;
}
// 省略 toString()、setXxx()、getXxx()
	
//使用
    @Autowired
    private MyDataSource myDataSource;

SprinBoot-黑马-笔记_第41张图片注意yml文件中的数字信息,eg: 0127 会被当做八进制数 转换为 十进制的 87.

SprinBoot-黑马-笔记_第42张图片

SprinBoot-黑马-笔记_第43张图片

SprinBoot-黑马-笔记_第44张图片

SprinBoot-黑马-笔记_第45张图片

SprinBoot-黑马-笔记_第46张图片

SprinBoot-黑马-笔记_第47张图片

image-20220508001322611

SprinBoot-黑马-笔记_第48张图片

SprinBoot-黑马-笔记_第49张图片

SprinBoot-黑马-笔记_第50张图片

SprinBoot-黑马-笔记_第51张图片

5.整合第三方技术

整合JUint

SprinBoot-黑马-笔记_第52张图片

SprinBoot-黑马-笔记_第53张图片

image-20220601223756208

SprinBoot-黑马-笔记_第54张图片

整合MyBatis

SprinBoot-黑马-笔记_第55张图片

SprinBoot-黑马-笔记_第56张图片

SprinBoot-黑马-笔记_第57张图片

SprinBoot-黑马-笔记_第58张图片

SprinBoot-黑马-笔记_第59张图片

  1. MySQL 8.X驱动强制要求设置时区
  • 修改url,添加serverTimezone设定
  • 修改MySQL数据库配置
  1. 驱动类过时,提醒更换为com.mysql.cj.jdbc.Driver

SprinBoot-黑马-笔记_第60张图片

整合MyBatis-Plus

MyBatis-Plus是中国人开发的

SprinBoot-黑马-笔记_第61张图片

使用改框架可以节省Dao接口的编写,直接让接口继承 BaseMapper<>

SprinBoot-黑马-笔记_第62张图片

SprinBoot-黑马-笔记_第63张图片

整合Druid

SprinBoot-黑马-笔记_第64张图片

SprinBoot-黑马-笔记_第65张图片

SprinBoot-黑马-笔记_第66张图片

SprinBoot-黑马-笔记_第67张图片

6.基于SpringBoot的SSMP整合案例

SprinBoot-黑马-笔记_第68张图片

SprinBoot-黑马-笔记_第69张图片

使用Lombok简化POJO开发

  1. 导入lombok
  2. @Data注解

SprinBoot-黑马-笔记_第70张图片

SprinBoot-黑马-笔记_第71张图片

数据层开发

SprinBoot-黑马-笔记_第72张图片

SprinBoot-黑马-笔记_第73张图片

SprinBoot-黑马-笔记_第74张图片

SprinBoot-黑马-笔记_第75张图片

SprinBoot-黑马-笔记_第76张图片

SprinBoot-黑马-笔记_第77张图片

image-20220602103408930

分页功能

SprinBoot-黑马-笔记_第78张图片

SprinBoot-黑马-笔记_第79张图片

需要用拦截器实现

@Configuration
public class  MPConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return interceptor;
    }
}

SprinBoot-黑马-笔记_第80张图片

SprinBoot-黑马-笔记_第81张图片

SprinBoot-黑马-笔记_第82张图片

SprinBoot-黑马-笔记_第83张图片

业务层开发

SprinBoot-黑马-笔记_第84张图片

SprinBoot-黑马-笔记_第85张图片

image-20220602105300108

SprinBoot-黑马-笔记_第86张图片

SprinBoot-黑马-笔记_第87张图片

SprinBoot-黑马-笔记_第88张图片

SprinBoot-黑马-笔记_第89张图片

SprinBoot-黑马-笔记_第90张图片

SprinBoot-黑马-笔记_第91张图片

SprinBoot-黑马-笔记_第92张图片

表现层开发

SprinBoot-黑马-笔记_第93张图片

SprinBoot-黑马-笔记_第94张图片

SprinBoot-黑马-笔记_第95张图片

SprinBoot-黑马-笔记_第96张图片

表现层数据一致性

SprinBoot-黑马-笔记_第97张图片

SprinBoot-黑马-笔记_第98张图片

SprinBoot-黑马-笔记_第99张图片

SprinBoot-黑马-笔记_第100张图片

前后端协议联调

SprinBoot-黑马-笔记_第101张图片

SprinBoot-黑马-笔记_第102张图片

SprinBoot-黑马-笔记_第103张图片

image-20220602115122774

SprinBoot-黑马-笔记_第104张图片

SprinBoot-黑马-笔记_第105张图片

SprinBoot-黑马-笔记_第106张图片

SprinBoot-黑马-笔记_第107张图片

SprinBoot-黑马-笔记_第108张图片

SprinBoot-黑马-笔记_第109张图片

SprinBoot-黑马-笔记_第110张图片

SprinBoot-黑马-笔记_第111张图片

SprinBoot-黑马-笔记_第112张图片

image-20220602115820070

image-20220602115842459

SprinBoot-黑马-笔记_第113张图片

SprinBoot-黑马-笔记_第114张图片

业务消息一致性处理

SprinBoot-黑马-笔记_第115张图片

SprinBoot-黑马-笔记_第116张图片

SprinBoot-黑马-笔记_第117张图片

SprinBoot-黑马-笔记_第118张图片

SprinBoot-黑马-笔记_第119张图片

SprinBoot-黑马-笔记_第120张图片

SprinBoot-黑马-笔记_第121张图片

SprinBoot-黑马-笔记_第122张图片

SprinBoot-黑马-笔记_第123张图片

SprinBoot-黑马-笔记_第124张图片

image-20220602172557483

SprinBoot-黑马-笔记_第125张图片

SprinBoot-黑马-笔记_第126张图片

SprinBoot-黑马-笔记_第127张图片

SprinBoot-黑马-笔记_第128张图片

SprinBoot-黑马-笔记_第129张图片

SprinBoot-黑马-笔记_第130张图片

SprinBoot-黑马-笔记_第131张图片

SprinBoot-黑马-笔记_第132张图片

SprinBoot-黑马-笔记_第133张图片

image-20220602174409001

总结

SprinBoot-黑马-笔记_第134张图片

SprinBoot-黑马-笔记_第135张图片

2. 运维实用篇

端口冲突

使用命令行杀死进程

SprinBoot-黑马-笔记_第136张图片

临时属性设置

  • 带属性数启动SpringBoot

​ java -jar springboot –server.port=8080

  • 携带多个属性启动SpringBoot,属性使用空格分隔

1. 配置文件的等级

SprinBoot-黑马-笔记_第137张图片

2. 自定义配置文件

  1. 在idea中设置启动参数Program arguments : --spring.config.name= +配置文件名称

SprinBoot-黑马-笔记_第138张图片

  1. 在idea中设置Program arguments : --spring.config.location=classpath:/ebank.yml
  2. Program arguments 中可以写多个配置信息,用 “,” 隔开

多环境开发

1.同一个文件内用 —分隔开

# 应用环境
spring:
  profiles:
    active: pro
# 设置环境

# 生产环境
---
spring:
  config:
    activate:
      on-profile: pro
server:
  port: 80

---
# 开发环境
spring:
  config:
    activate:
      on-profile: dev
server:
  port: 81

---
# 测试环境
spring:
  config:
    activate:
      on-profile: test
server:
  port: 82
  1. 多个环境文件

yml文件和properties文件操作方式相同

SprinBoot-黑马-笔记_第139张图片

spring:
  profiles:
    active: dev
    inclue: 
    #现在用group
    group:
    	"dev": devDB,devMVC
    	"pro": proDB,proMVC

include: 中的文件先加载最后加载 dev

group: 先加载dev,最后加载devMVC

SprinBoot-黑马-笔记_第140张图片

日志

日志基础

  1. 日志作用
    • 日志(log)作用
    • 运营记录信息
      1. 记录日常运营重要信息(峰值流量、平均响应时长…)
      2. 记录应用报错信息(错误堆栈)
      3. 记录运维过程数据(扩容、宕机、报警…)

日志级别

SprinBoot-黑马-笔记_第141张图片

日志输出格式控制

  • 设置日志输出格式

SprinBoot-黑马-笔记_第142张图片

日志文件

3. 实用开发篇

热部署

重启

SprinBoot-黑马-笔记_第143张图片

ctrl+alt+shift+/

SprinBoot-黑马-笔记_第144张图片

默认不触发重启的目录列表

SprinBoot-黑马-笔记_第145张图片

关闭热部署功能

SprinBoot-黑马-笔记_第146张图片

配置高级

@ConfigurationProperties

SprinBoot-黑马-笔记_第147张图片

在使用了@EnableConfigurationProperties()后需要关闭@Component

SprinBoot-黑马-笔记_第148张图片

宽松绑定/松散绑定

SprinBoot-黑马-笔记_第149张图片

宽松绑定不支持注解@Value引用单个属性的方式

prefix 中用小写字符

SprinBoot-黑马-笔记_第150张图片

常用计量单位绑定 SprinBoot-黑马-笔记_第151张图片

数据校验

SprinBoot-黑马-笔记_第152张图片

SprinBoot-黑马-笔记_第153张图片

SprinBoot-黑马-笔记_第154张图片

测试

1. 加载测试专用属性

SprinBoot-黑马-笔记_第155张图片

SprinBoot-黑马-笔记_第156张图片

2. 加载测试专用配置

SprinBoot-黑马-笔记_第157张图片

3.Web环境模拟测试

SprinBoot-黑马-笔记_第158张图片

SprinBoot-黑马-笔记_第159张图片

SprinBoot-黑马-笔记_第160张图片

image-20220508140702865

Json

SprinBoot-黑马-笔记_第161张图片

4.数据层测试回滚

避免测试的数据影响数据库

SprinBoot-黑马-笔记_第162张图片

5.测试用例数据设定

随机测试数据

SprinBoot-黑马-笔记_第163张图片

4. 数据层解决方案

1.SQL

现有数据层解决方案技术选型

Druid + MyBatis-Plus + MySQL

  1. 数据源: DruidDataSource
  2. 持久化技术: MyBatis-Plus / MyBatis
  3. 数据库: MySQL

数据源:

SprinBoot-黑马-笔记_第164张图片

SprinBoot-黑马-笔记_第165张图片

应用场景:

SprinBoot-黑马-笔记_第166张图片

内置持久化解决方案—jdbcTemplate

@SpringBootTest
class Springboot15SqlApplicationTests{
    @Test
    void testJdbcTemplate(@Autowired JdbcTemplate jdbcTemplate){

        String sql = "select * from tbl_book";
        RowMapper<Book> rm = new RowMapper<Book>() {
            @Override
            public Book mapRow(ResultSet rs, int rowNum) throws SQLException {
                Book temp = new Book();
                temp.setId(rs.getInt("id"));
                temp.setName(rs.getString("name"));
                temp.setType(rs.getString("type"));
                temp.setDescription(rs.getString("description"));
                return temp;
            }
        };
        List<Book> list = jdbcTemplate.query(sql, rm);
        System.out.println(list);
    }
}

需要导入依赖

        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-jdbcartifactId>
        dependency>

yml中的jdbcTemplate配置

SprinBoot-黑马-笔记_第167张图片

内嵌数据库

SprinBoot-黑马-笔记_第168张图片

H2数据库:线上运行时请务必关闭

SprinBoot-黑马-笔记_第169张图片

SprinBoot-黑马-笔记_第170张图片

SprinBoot-黑马-笔记_第171张图片

2.NoSQL

主流NoSQL

SprinBoot-黑马-笔记_第172张图片

redis (key-value存储结构)

SprinBoot-黑马-笔记_第173张图片

SprinBoot-黑马-笔记_第174张图片

启动Windows端redis时,一个小bug的解决方式

SprinBoot-黑马-笔记_第175张图片

redis整合流程

  1. 导入redis坐标

SprinBoot-黑马-笔记_第176张图片

  1. 配置redis

SprinBoot-黑马-笔记_第177张图片

  1. RedisTemplate的API

SprinBoot-黑马-笔记_第178张图片

  1. 实例

SprinBoot-黑马-笔记_第179张图片

RedisTemplate是以对象为基本操作单元

StringRedisTemplate以字符串为基本操作单元

SprinBoot-黑马-笔记_第180张图片

SprinBoot-黑马-笔记_第181张图片

连接Redis服务器的方式

  1. lettcus (springboot 默认)
  2. jedis

SprinBoot-黑马-笔记_第182张图片

Mongodb 结构化数据

image-20220509015851565

应用场景:

SprinBoot-黑马-笔记_第183张图片

Mongodb数据库下载

SprinBoot-黑马-笔记_第184张图片

阉割版操作系统可能出现的问题

SprinBoot-黑马-笔记_第185张图片

Mongodb可视化客户端 Robo 3T

SprinBoot-黑马-笔记_第186张图片

SprinBoot-黑马-笔记_第187张图片

SprinBoot-黑马-笔记_第188张图片

SprinBoot-黑马-笔记_第189张图片

SprinBoot-黑马-笔记_第190张图片

SprinBoot-黑马-笔记_第191张图片

ES(Elasticsearch)

Elasticsearch是一个分布式全文搜索引擎

SprinBoot-黑马-笔记_第192张图片

SprinBoot-黑马-笔记_第193张图片

SprinBoot-黑马-笔记_第194张图片

all是虚拟字段,内容由name和description内容组成.

{
    "mappings":{
        "properties":{
            "id":{
                "type":"keyword"
                // 用indext来设置是否用于查询
                // "index":true
            },
            "name":{
                // 设置参与配置的字段
                "type":"text",
                "analyzer":"ik_max_word",
                "copy_to":"all"
            },
            "type":{
                "type":"keyword"
            },
            "description":{
                // 设置参与配置的字段
                "type":"text",
                "analyzer":"ik_max_word",
                "copy_to":"all"
            },
            "all":{
                "type":"text",
                "analyzer":"ik_max_word"
            }
        }
    }
}

SprinBoot-黑马-笔记_第195张图片

SprinBoot-黑马-笔记_第196张图片

用put请求修改数据,需要把只改一个字段数据时,更新后的该数据只保留一个字段,其他字段数据删除

用update请求更改数据,只改一个字段数据时,其他字段数据不会改动

SprinBoot-黑马-笔记_第197张图片

es整合:

SprinBoot-黑马-笔记_第198张图片

SprinBoot-黑马-笔记_第199张图片

SprinBoot-黑马-笔记_第200张图片

SprinBoot-黑马-笔记_第201张图片

其中使用了fastjson 依赖

SprinBoot-黑马-笔记_第202张图片

SprinBoot-黑马-笔记_第203张图片

SprinBoot-黑马-笔记_第204张图片

SprinBoot-黑马-笔记_第205张图片

5.整合第三方技术

1. 缓存

SprinBoot-黑马-笔记_第206张图片

SprinBoot-黑马-笔记_第207张图片

配置中添加 spring.cache.type=simple

SprinBoot-黑马-笔记_第208张图片

SprinBoot-黑马-笔记_第209张图片

SprinBoot-黑马-笔记_第210张图片

SprinBoot-黑马-笔记_第211张图片

1.Ehcache

SprinBoot-黑马-笔记_第212张图片

SprinBoot-黑马-笔记_第213张图片

SprinBoot-黑马-笔记_第214张图片

SprinBoot-黑马-笔记_第215张图片

2.Redis

SprinBoot-黑马-笔记_第216张图片

SprinBoot-黑马-笔记_第217张图片

SprinBoot-黑马-笔记_第218张图片

3.memcached

springboot没有整合memcacahed,所以需要自己定义版本号和提供属性

SprinBoot-黑马-笔记_第219张图片

SprinBoot-黑马-笔记_第220张图片

SprinBoot-黑马-笔记_第221张图片

整合流程

SprinBoot-黑马-笔记_第222张图片

SprinBoot-黑马-笔记_第223张图片

SprinBoot-黑马-笔记_第224张图片

SprinBoot-黑马-笔记_第225张图片

SprinBoot-黑马-笔记_第226张图片

SprinBoot-黑马-笔记_第227张图片

4.jetcache

SprinBoot-黑马-笔记_第228张图片

SprinBoot-黑马-笔记_第229张图片

整合流程

SprinBoot-黑马-笔记_第230张图片

SprinBoot-黑马-笔记_第231张图片

SprinBoot-黑马-笔记_第232张图片

SprinBoot-黑马-笔记_第233张图片

image-20220516163436457

5.j2cache

j2cache-spring-boot2-starter 中包含有redis

SprinBoot-黑马-笔记_第234张图片

SprinBoot-黑马-笔记_第235张图片

image-20220517164455012

SprinBoot-黑马-笔记_第236张图片

2.任务

SprinBoot-黑马-笔记_第237张图片

1.Quartz

SprinBoot-黑马-笔记_第238张图片

SprinBoot-黑马-笔记_第239张图片

定义任务

SprinBoot-黑马-笔记_第240张图片

SprinBoot-黑马-笔记_第241张图片

2.spring task

SprinBoot-黑马-笔记_第242张图片

SprinBoot-黑马-笔记_第243张图片

SprinBoot-黑马-笔记_第244张图片

3.邮件

3个邮件相关协议

SprinBoot-黑马-笔记_第245张图片

SprinBoot-黑马-笔记_第246张图片

SprinBoot-黑马-笔记_第247张图片

SprinBoot-黑马-笔记_第248张图片

4.消息

1.消息概念与作用

SprinBoot-黑马-笔记_第249张图片

image-20220521004515153

SprinBoot-黑马-笔记_第250张图片

SprinBoot-黑马-笔记_第251张图片

2.JMS

一个规范,与JDBC相同

SprinBoot-黑马-笔记_第252张图片

3.AMQP

SprinBoot-黑马-笔记_第253张图片

4.MQTT

SprinBoot-黑马-笔记_第254张图片

5.Kafka简介

SprinBoot-黑马-笔记_第255张图片

SprinBoot-黑马-笔记_第256张图片

SprinBoot-黑马-笔记_第257张图片

ActiveMQ

下载地址

SprinBoot-黑马-笔记_第258张图片

启动服务

SprinBoot-黑马-笔记_第259张图片

整合流程

SprinBoot-黑马-笔记_第260张图片

SprinBoot-黑马-笔记_第261张图片

SprinBoot-黑马-笔记_第262张图片

SprinBoot-黑马-笔记_第263张图片

SprinBoot-黑马-笔记_第264张图片

RabbitMQ

SprinBoot-黑马-笔记_第265张图片

SprinBoot-黑马-笔记_第266张图片

SprinBoot-黑马-笔记_第267张图片

建议使用Chrome访问,edge打不开

SprinBoot-黑马-笔记_第268张图片

SprinBoot-黑马-笔记_第269张图片

direct exchange 整合流程

SprinBoot-黑马-笔记_第270张图片

SprinBoot-黑马-笔记_第271张图片

SprinBoot-黑马-笔记_第272张图片

SprinBoot-黑马-笔记_第273张图片

SprinBoot-黑马-笔记_第274张图片

两个listener轮询处理

SprinBoot-黑马-笔记_第275张图片

SprinBoot-黑马-笔记_第276张图片

topic exchange 整合流程

SprinBoot-黑马-笔记_第277张图片

SprinBoot-黑马-笔记_第278张图片

SprinBoot-黑马-笔记_第279张图片

SprinBoot-黑马-笔记_第280张图片

RocketMQ

SprinBoot-黑马-笔记_第281张图片

SprinBoot-黑马-笔记_第282张图片

启动RocketMQ

SprinBoot-黑马-笔记_第283张图片

SprinBoot-黑马-笔记_第284张图片

整合流程

SprinBoot-黑马-笔记_第285张图片

SprinBoot-黑马-笔记_第286张图片

image-20220525002100060

SprinBoot-黑马-笔记_第287张图片

SprinBoot-黑马-笔记_第288张图片

Kafka

SprinBoot-黑马-笔记_第289张图片

SprinBoot-黑马-笔记_第290张图片

SprinBoot-黑马-笔记_第291张图片

整合流程

SprinBoot-黑马-笔记_第292张图片

SprinBoot-黑马-笔记_第293张图片

SprinBoot-黑马-笔记_第294张图片

SprinBoot-黑马-笔记_第295张图片

6.监控

SprinBoot-黑马-笔记_第296张图片

1. 监控的意义

监控的意义

SprinBoot-黑马-笔记_第297张图片

监控的方式

SprinBoot-黑马-笔记_第298张图片

2.可视化监控平台

SprinBoot-黑马-笔记_第299张图片

SprinBoot-黑马-笔记_第300张图片

二者简化

SprinBoot-黑马-笔记_第301张图片

配置通过web端读取监控信息

adming服务端一定要做成一个web项目把功能开放出来,这样才能监控到这个应用

SprinBoot-黑马-笔记_第302张图片

SprinBoot-黑马-笔记_第303张图片

3.监控原理

SprinBoot-黑马-笔记_第304张图片

management:
  endpoint:
    health:
      show-details: always
    info:
      enable: false
  endpoints:
    web:
      exposure:
      # 端点功能暴露
        include: "*"
    #  端点功能开启与关闭
    enabled-by-default: true

4.自定义监控指标

SprinBoot-黑马-笔记_第305张图片

SprinBoot-黑马-笔记_第306张图片

SprinBoot-黑马-笔记_第307张图片

为Metrics端头添加自定义指标

SprinBoot-黑马-笔记_第308张图片

SprinBoot-黑马-笔记_第309张图片

4.原理篇

1.自动配置

1.bean的加载方式

加载方式一:

SprinBoot-黑马-笔记_第310张图片

加载方式二:

指定加载bean的位置, @component, @configuration

SprinBoot-黑马-笔记_第311张图片

SprinBoot-黑马-笔记_第312张图片

SprinBoot-黑马-笔记_第313张图片

SprinBoot-黑马-笔记_第314张图片

实现对bean加载到容器之前的批处理操作

SprinBoot-黑马-笔记_第315张图片

加载配置类并加载配置文件

SprinBoot-黑马-笔记_第316张图片

SprinBoot-黑马-笔记_第317张图片

SprinBoot-黑马-笔记_第318张图片

@import导入的bean,在容器中的名称为全路径名称

SprinBoot-黑马-笔记_第319张图片

SprinBoot-黑马-笔记_第320张图片

SprinBoot-黑马-笔记_第321张图片

SprinBoot-黑马-笔记_第322张图片

SprinBoot-黑马-笔记_第323张图片

SprinBoot-黑马-笔记_第324张图片

2.bean的加载控制

SprinBoot-黑马-笔记_第325张图片

SprinBoot-黑马-笔记_第326张图片

SprinBoot-黑马-笔记_第327张图片

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oYL1IHZL-1654171453493)(https://typora—pic.oss-cn-hangzhou.aliyuncs.com/img/image-20220530004320491.png)]

SprinBoot-黑马-笔记_第328张图片

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aI70pvpB-1654171453495)(https://typora—pic.oss-cn-hangzhou.aliyuncs.com/img/image-20220530004413927.png)]

SprinBoot-黑马-笔记_第329张图片

image-20220530005330449

SprinBoot-黑马-笔记_第330张图片

小结:

SprinBoot-黑马-笔记_第331张图片

3.bean依赖属性

SprinBoot-黑马-笔记_第332张图片

SprinBoot-黑马-笔记_第333张图片

SprinBoot-黑马-笔记_第334张图片

SprinBoot-黑马-笔记_第335张图片

SprinBoot-黑马-笔记_第336张图片

4.自动配置原理

SprinBoot-黑马-笔记_第337张图片

image-20220530230958338

SprinBoot-黑马-笔记_第338张图片

SprinBoot-黑马-笔记_第339张图片

SprinBoot-黑马-笔记_第340张图片

5.变更自动配置

SprinBoot-黑马-笔记_第341张图片

SprinBoot-黑马-笔记_第342张图片

SprinBoot-黑马-笔记_第343张图片

SprinBoot-黑马-笔记_第344张图片

2.自定义starter

1.案例:统计独立IP访问次数

SprinBoot-黑马-笔记_第345张图片

SprinBoot-黑马-笔记_第346张图片

2.自定义starter

判断key是否存在

SprinBoot-黑马-笔记_第347张图片

SprinBoot-黑马-笔记_第348张图片

SprinBoot-黑马-笔记_第349张图片

SprinBoot-黑马-笔记_第350张图片

SprinBoot-黑马-笔记_第351张图片

SprinBoot-黑马-笔记_第352张图片

SprinBoot-黑马-笔记_第353张图片

SprinBoot-黑马-笔记_第354张图片

SprinBoot-黑马-笔记_第355张图片

SprinBoot-黑马-笔记_第356张图片

SprinBoot-黑马-笔记_第357张图片

SprinBoot-黑马-笔记_第358张图片

SprinBoot-黑马-笔记_第359张图片

SprinBoot-黑马-笔记_第360张图片

SprinBoot-黑马-笔记_第361张图片

SprinBoot-黑马-笔记_第362张图片

SprinBoot-黑马-笔记_第363张图片

采用@Import注解 生成bean, 因为@configurationproperties生成的bean名称与EL表达式冲突

SprinBoot-黑马-笔记_第364张图片

SprinBoot-黑马-笔记_第365张图片

SprinBoot-黑马-笔记_第366张图片

SprinBoot-黑马-笔记_第367张图片

SprinBoot-黑马-笔记_第368张图片

image-20220601131422051

3.辅助功能开发

SprinBoot-黑马-笔记_第369张图片

SprinBoot-黑马-笔记_第370张图片

SprinBoot-黑马-笔记_第371张图片

SprinBoot-黑马-笔记_第372张图片

3.核心原理

1.SpringBoot启动流程

SprinBoot-黑马-笔记_第373张图片

SprinBoot-黑马-笔记_第374张图片

SprinBoot-黑马-笔记_第375张图片

SprinBoot-黑马-笔记_第376张图片

2.容器类型选择

3.监听器

你可能感兴趣的:(spring,boot,java,intellij-idea)