springboot记录

一,基础

1. 创建工程  mvc -> web-> springweb

忽略文件:setting - file Types 

2. pom文件:  父 parent, <properties> 里面放多个版本; 子pom,直接用 <version>${mysql.version}; 其他pom想用父 parent的这一套搭配 可以直接导入


3. controller:一个controller是一个bean,springbootApplication 启动注解就是加载类,初始化容器,扫描引导类所在包加载bean

4.配置文件优先级: properties最高, yml中间, yaml最低; 各个文件中不同的都留下来, 相同的按优先级

5.restful 入门案例:

6.ssmp:

1) mp: 自动加表前缀, 和 配置mp日志输出控制台

2)分页:  mp的分页需要自己控制,  自己添加拦截器 并进行配置

3)查询条件: 

4) 快速开发:

mapper:  extends BaseMapper<User>

service:   extends IService<User>

serviceimpl:  extends ServiceImpl<UserMapper, User>

5)消息一致性处理:

6)一些前端相关:   例如添加图书功能, 添加成功 执行什么操作,还有不管成功与否都执行什么

删除

修改

7)异常

二,进阶

1. 打包插件: 带插件和不带插件,打出来的jar包里面的东西不一样

使用插件会将依赖的jar包也打进来, 不用插件不会打依赖的jar包

2.配置

1)命令行: 通过一些启动 临时属性 修改端口, 命令行覆盖了配置

2)idea中: 在启动配置中,添加一些临时属性

3)配置优先级:  1>2>3>4

(1)config下的 同样的 会被覆盖掉: 外部的app配置了server.port:8080, 在config下的app同样也配置了port:8083,当程序启动时会使用8083端口, config下的app会把原始的覆盖掉

​​​​

(2)在jar包目录下的app会覆盖掉jar里面的, 在这个jar同级目录下的config目录下的app会覆盖掉外边的  

(3)自定义配置文件: 指定文件名

​​​​

也可以指定文件路径

​​​​

指定多个文件,最后一个生效: 例如下面ebank-server生效

3.多环境开发:

 application.yml ==>指定dev

application.properties

有时,我们会按不同的功能进行分组,例如缓存的配置都放到一个文件中,db的放另外一个文件中; 加载顺序:dev,devDB,devMVC  和上面一样,配置里面相同的项, 后面的会把前面的覆盖

多环境开发控制: maven的配置 > springboot的配置

4.日志:

1)级别 trace(堆栈级别) < debug < info < warn < error <fatal; 在boot中默认最低Info,把最高的fatal和error合并了; 

要看debug可以设置:可以在启动类设置,或者 在配置文件设置

常用: 分组

2) 日志格式控制: 

3) 日志文件: 日志记录到文件里,设置roll循环,设置了文件的最大值为3kb,假如文件大于了3kb,就会再创建一个新文件记录,最大也是3kb; i表循环的几,例如 server.2024-07-08.0.log  server.2024-07-08.1.log 

三,开发实用
1.热部署

1) 添加热部署工具依赖: 修改代码后需要点击这个build

我们也可以设置让他自动热部署,settings - Compiler - Build

然后在代码区 Ctrl + Shift + Alt + /  勾选自动编译

就不用一直点build了

当我们idea工具失去焦点5秒之后, 进行自动构建; 但有些文件不参与热部署

   也可以在配置文件配置

2.配置高级

1)@ConfigurationProperties

2)单位转换

配置里面默认的单位, 可以通过前面的属性进行转换

也可以直接写mb,但是需要将前面属性上的注解去掉

3)bean校验

校验类

校验实现类

4) 进制转换: 如果在配置文件里面书写纯数字有可能进制转换, 例如mysql密码是1234被转成16进制的88,就会导致出现密码错误,可以使用双引号包裹解决

3.测试

1)测试属性:

属性仅在当前测试生效

2)测试配置:

使用@Import可以导入我们要使用的配置类,这样这个测试类即可以用源码的配置,也可以用我们在test中写的配置

3)测试web:

状态

请求体

json

响应头

测试事务回滚

测试用例设置随机值

4.数据层解决方案

1.sql

2.jdbc

内置数据库

1)redis

jedis

2)mongodb

3)es

5.整合第三方
1)缓存

HashMap  cache  查出来把数据放到里面, 下次查就从这里面拿

启动缓存:

  

这个注解, 包含往缓存里面存, 和在缓存中取

@CachePut 这个注解单纯的只往缓存中存

Ehcache

simple 是boot默认的,没有导上面的坐标,也不会报错

ehcache是boot之外的, 需要写个xml配置文件,里面可以配置多个缓存, 根据name值区分

过期时间

数据淘汰策略

使用redis缓存

memcached

jetcache 远程访问

远程方案 remote

缓存供应商变更: jetcache

j2cache

2)任务

简化操作

3)邮件

 配置 邮箱的用户名(邮箱账号),密码

4)消息

6.监控

被监控的用client

actuator

读到pom

原理

自动配置
1. bean加载方式
bean加载方式 1) 定义bean  使用bean文件

获取bean

获取dog, 没有id直接是类

获取bean的名字

引入第三方的bean

导入第三方的依赖,就可以在xml里面定义获取

bean加载方式 2) 使用注解配置bean

包扫码, 扫描整个bean包下的

bean加载方式  bean加载方式3) FactoryBean  使用工厂

只要实现了这个工厂, 造出来的对象是他指定的泛型对象

使用上述代理和原始对象的区别

将这里置为true, 创建的对象将是同一个对象, 就是说我们每次调用beab方法, 里面其实没有每次去new, 而是用的在之前在容器中创建好的对象, 他们是同一个对象

bean加载方式  4)  @Import导入的方式

之前扫描进来的时候配置类是按 dbConfig, 传进来的; 使用@Import导入进来的时候是以全路径进来的

bean加载方式5 

bean加载方式6

7

8
2.beab加载控制

自己操作

bean加载控制

3.bean依赖属性配置

4.自动配置原理

5.变更自动配置

自定义starter

核心原理

关于原理代码. 自己手动敲一遍 不写在这里

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值