SpringBoot学习

SpringBoot

pivotal公司
2014年发布SpringBoot j2EE一站式解决方案
从写到完成SpringBoot帮你完成
2015发布SpringCloud 分布式整体解决方案

项目结构

1单体架构
2垂直架构 一个项目分成模块然后进行组合
3SOA理论阶段没有落地
4微服务架构
微服务之间采用RESTful等轻量协议传输
其特点是拆分粒度更细,利于重复利用各个资源,迭代周期短

配置文件

.properties
.yml
.yaml

spring中的yml文件的配置

spring中的yml文件读取

spring整合mabatis

乐观锁

读问题

小王要加薪,5000变8000这个事务没有提交,第二个事务能够读到8000,这个时候,提交撤销,读到的8000为脏数据
1、脏读:脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。
例如:
张三的工资为5000,事务A中把他的工资改为8000,但事务A尚未提交。
与此同时,
事务B正在读取张三的工资,读取到张三的工资为8000。
随后,
事务A发生异常,而回滚了事务。张三的工资又回滚为5000。
最后,
事务B读取到的张三工资为8000的数据即为脏数据,事务B做了一次脏读。

两个人同时修改数据,刚开始A读到数据为10,这个时候有人添加删除,再读发现数据变化了,出现了幻觉。
3、幻读:是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样。
例如:
目前工资为5000的员工有10人,事务A读取所有工资为5000的人数为10人。
此时,
事务B插入一条工资也为5000的记录。
这是,事务A再次读取工资为5000的员工,记录为11人。此时产生了幻读。
不可重复读

你读到一个数据小王的工资为5000,你还需要操作,这个时候有人改了数据变为8000,这个时候在读
2、不可重复读:是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读。
例如:
在事务A中,读取到张三的工资为5000,操作没有完成,事务还没提交。
与此同时,
事务B把张三的工资改为8000,并提交了事务。
随后,
在事务A中,再次读取张三的工资,此时工资变为8000。在一个事务中前后两次读取的结果并不致,导致了不可重复读。

写问题

丢失更新

乐观锁和悲观锁是解决写问题而存在

乐观锁
最好的情况下,认为读到的数据不会被修改,当进行更新操作时候,进行可以加个条件version判断是否修改,没有被修改,则更新操作,如果有修改,则更新失败,然后重试

悲观锁
每次读数据认为会被修改,加锁,在进行更新操作时候,直接更新操作,结束之后释放锁

乐观锁用于读比较多的操作,尽量减少加锁开销
悲观锁用于写比较多的操作,尽量减少乐观锁重试更新引起的性能开销

乐观锁的两种实现方式
一版本号机制
在数据库表中加入version字段
二通过CSA算法实现

mybatais-plus配置乐观锁

springboot部署问题

windows端口号被占用
查询端口
netstat -ano
查询指定端口
netstat -ano |findstr “端口号”
根据进程PID查询进程名称
tasklist |findstr ”进程PID“
进程PID杀死任务
taskkill /F /PID “进程PID号”
根据进程名称杀死任务
taskkill -f -t -im “进程名称”

		在pom.xml文件中的build  
        <!--指定jar包名称-->
        <!--放在window或者Linux上都可以运行
        比如在window上cmd  java -jar 项目  结束ctrl+c-->
        <finalName>aaa</finalName>
        ```

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值