黑马程序员六小时急速教程笔记

黑马程序员六小时急速教程笔记,第1张

SpringBoot

黑马程序员六小时急速教程

构建SpringBoot环境
  • 创建Maven项目
  • 导入SpringBoot依赖
  • 定义Controller
  • 编写引导类 - springbootapplication
  • 启动测试

SpringBoot起步依赖原理分析

  • Spring-boot-starter-parent:定义版本信息,组合了一套最优搭配的技术版本,引入starter后,通过依赖传递,就可以简单获得jar包,并不会存在版本冲突问题
  • spring-boot-starter-web

SpringBoot配置

springboot很多配置都有默认值,但是如果要使用自己的配置替换文件时,就要使用application.properties或者application.yaml 或yml 进行配置

可以修改系统默认配置/ 自己的配置

  • Properties

键值对的方式

server.port=8080

  • yml:

YAML

server:

    port: 8080 //一定有空格

  • ymal

默认名称为application

如果三个在resources中同时存在三种文件,那么在同一级目录下优先级从高到低是:

proprerties > yml > ymal

Yaml

yml文件以数据为核心,比传统的xml方式更为简洁

扩展名可以使用.yml 或者yaml

基本语法

  • 大小写敏感
  • 缩进表示层级关系,不允许用Tab键,只允许使用空格
  • #表示注释

数据格式

  • 对象(map): 键值对的集合

  • 数组

  • 纯量:单个的、不可再分的值

参数引用

  • ${key}

读取配置内容

  • @Value

如果是注入的话

输出就是person.name所引用的abc

  • Environment

  • @ConfigurationProperties (注解,形成映射)

Prefix 表示person下面的内容和yml文件里的“person”下面的内容一一对应

@Component 注解代表它被springboot所识别

表示找到yml文件里的person数据,就是下面这个

然后在controller里创建一个Person对象,@Autowired 就是自动加载(?)

输出结果就是yml里面写的

profile

同一套程序会被安排到到不同环境:开发、测试、生产等。其中数据库地址、服务器端口等都不同

profile功能就是进行动态配置切换

profile配置方式

  • 多profile文件方式
  • application-dev.properties 开发环境
  • application-pro.properties 生产环境
  • application-test.properties 测试环境

在application.properties里确定用哪一个profiles

  • yml多文档方式(已弃用)

写在application.yml里

profile激活方式

  • 配置文件

就是上面讲的两种

  • 虚拟机参数

VM options:虚拟机参数

这种方法会覆盖spring.profiles.active 方式

  • 命令行参数

这种方法也会覆盖spring.profiles.active 方式

未来生产上线的时候没有开发工具,就是把java文件打包成jar包,然后设置对应的配置信息。然后在cmd里面打开(后面再查)

内部配置加载顺序

之前用的resources下面配置的方法,实际上resources会打包,放在classpath:/下面,就是第四种方式

Resources 和 java 包都会打包进classpath下

外部配置加载顺序

SpringBoot整合其它框架

整合Junit

利用Junit进行单元测试

如果UserServiceTest类和UserService类 分别在java和test的同一个文件夹结构下,那么就不用写classes = SpringbootTestApplication.class

整合Redis

整合Mybatis

springboot+mybatis整合配置事务详解(^_^)_jaryle的博客-CSDN博客_springboot 配置事务

SpringBoot 原理分析

自动配置

Condition

条件判断功能,通过这个功能可以选择性地创建Bean *** 作

spring bean是什么 - 歪麦博客

Java

//启动SpringBoot应用,返回Spring的IOC容器

public static void main(String[] args) {

    ConfigurableApplicationContext context = SpringApplication.run(SpringbootMybatisApplication.class, args);

}

//获取Bean,redisTemplate

Object redisTemplate = context.getBean("redisTemplate");

@param context 上下文对象。用于获取环境、IOC容器,Classloader对象

@param metadata 注解元对象。可以用于获取注解定义的属性值

切换内置web服务器

@Enable*注解

以Enable开头的注解,都是用于动态启动某些功能的,其底层原理是用@Import 注解导入一些配置类,实现Bean的动态加载

比如说,如果想获取第三方jar包里的Bean方案

  • @ComponentScan 扫描范围:当前引导类所在包及其子包
  • @Import 注解,加载类。这些类都会被Spring创建,并放进IOC容器中
  • 对@Import注解进行封装

@Import注解

@Enable*底层依赖于@Import注解导入一些类,使用@Import导入的类会被Spring加载到IOC容器中。而@Import提供四种用法:

  • 导入Bean
  • 导入配置类
  • 导入ImportSelector实现类。一般用于加载配置文件中的类
  • 导入ImportBeanDefinitionRegistrar实现类

@EnableAutoConfiguration 注解

  • @EnableAutoConfiguration 注解内部使用@Import (AutoConfigurationImportSelector.class) 来配置类
  • 配置文件位置:META-INF/spring.factories,该配置文件中定义了大量的配置类,当SpringBoot应用启动时,会自动加载这些配置类,初始化Bean。
  • 并不是所有的Bean 都会被初始化,在配置类中使用Condition来加载满足条件的Bean。

自定义starter步骤分析

自定义redis-starter,要求当导入redis坐标时,SpringBoot自动创建Jedis的Bean。

监听机制

SpringBoot的监听机制,是对Java提供的事件监听机制的封装

Java中的事件监听机制定义了以下几个角色:

  • 事件:Event,继承java.util.EventObject的对象
  • 事件源:Source,任意对象Object
  • 监听器:Listener,实现java.util.EventListener接口的对象

启动流程分析

SpringBoot 监控

SpringBoot 项目部署

  • jar包
  • war包

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/742603.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-28
下一篇 2022-04-28

发表评论

登录后才能评论

评论列表(0条)

保存