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包

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值