- 博客(22)
- 收藏
- 关注
原创 Double-check
double-check这样子是只能在单线程中运行:全部加个锁是可以的部分加个锁加两个锁加个volatile参考这样子是只能在单线程中运行:// Single-threaded versionclass Foo { private static Helper helper; public Helper getHelper() { if (helper == null) { helper = new Helper(); }
2021-06-03 19:04:03
250
原创 分布式事务
分布式事务分布式事务的解决方案2PC缺点3PCTCC本地消息表条件:容错机制幂等可靠消息最终一致性尽最大努力通知实战两阶段提交/XATCC本地消息表可靠消息最终一致性尽最大努力通知参考分布式事务的解决方案XA协议是基于数据库的分布式事务协议。他有两个部分:事务管理器和本地资源管理器。事务管理器是全局调度者,命令各个资源管理器进行提交或回滚。衍生的有二阶提交协议2PC和三阶提交协议3PC。2PC协调者通知所有的参与者要开始提交,各个参与者进行业务操作,操作完毕后返回给协调者是否成功,协调者如果接收
2021-05-13 12:25:41
483
原创 分布式锁
分布式锁Java自带锁的问题分布式锁使用场景实现方式数据库实现悲观锁乐观锁使用场景唯一索引缺点解决Redis实现相关命令实现思想zookeeper实现服务器故障检测数据一致性比较数据库RediszookeeperCAP原则解释通常实现BASE基本可用(Basically Available)软状态(Soft state)最终一致性(Eventually consistent)参考文献Java自带锁的问题Java可以使用Synchronized或ReentrantLock实现锁,但是这只有局限于一个程序,
2021-05-09 10:18:39
591
原创 谷粒商城笔记
谷粒商城笔记项目概览创建项目数据库模块第三方模块renren-fast代码生成分布式注册中心nacos通信openfeign网关Gateway修改路由,对应前端项目跨域请求方案通过NGINX可以将前后端变成同一个域添加一个bean功能逻辑删除添加/修改拖拽我的想法哦哦 ,老师的想法项目概览创建项目数据库模块第三方模块renren-fast代码生成分布式注册中心nacosnamespacegroupdata-id通信openfeign网关Gateway修改路由,对应前端项目跨
2021-05-01 22:00:28
1379
原创 springboot error
springboot errorFailed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.3.5.RELEASE:repackage (repackage) on project cloud-api-common: Execution repackage of goal org.springframework.boot:spring-boot-maven-plugin:2.3.5.RELEASE:repackage
2020-11-25 14:24:04
167
原创 springboot笔记
springboot原理普通实现集成mybatis添加依赖自动生成数据库匹配文件Redisdubbodubbo-ssmspringboot-java模块使用interceptor使用servlet方法一方法二filter方法一方法二打包部署warjarlogginglogback原理普通实现集成mybatis添加依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId&g
2020-11-22 21:00:11
607
原创 brew一些坑
brew坑update失败,不知道为毛在xxxxx/xxx.config.rb文件里面有git的一些版本出错问题。手动把那些>>>> Head ====之类的东西删了就可以update了
2020-11-16 21:53:12
137
原创 Redis笔记
Redis笔记数据库的发展Redis安装,启动Redis基础redis-benchmark数据库实例各种基本操作数据结构操作命令keyStringlistsethashzsetRedis的配置配置文件的各个属性Redis持久化RDBAOFRedis事务基本实现其他基本操作主从复制基本实现哨兵模式数据库的发展单机数据库缓存,水平切分读写分离分库分表NoSQL数据库Redis就是一种NoSQL数据库RedisRedis是一种基于内存的,可持久化的数据库主要是存在内存中,所以适合数据量小,
2020-11-16 15:28:05
508
原创 maven的继承
maven的继承作用文件目录形式一形式二实现直接继承显式继承properties作用统一多个maven module的依赖的版本号文件目录形式一将多个maven module分开放:total projectparent modulesecond level onesecond level twothird level就是说多个maven 的项目我们就随便放,在pom.xml里面我们需要做以下修改: <parent> <artifac
2020-11-06 18:42:53
390
原创 SSM整合
SSM整合基本步骤具体实现添加依赖创建容器配置文件springmvc的容器配置文件spring的容器配置文件配置mybatis写各种类了重定向和转发(redirect, forward)异常处理作用拦截器Interceptor用法:过滤器和拦截器的区别springmvc的执行流程为什么这么麻烦呢有两个容器:1、spring容器,负责写service,dao,工具类对象的2、springmvc容器,负责写controllerspring和springmvc两个容器是有关系的,已经确定好的关系spri
2020-11-01 10:15:56
217
原创 xml.XmlBeanDefinitionStoreException,Content is not allowed in prolog
报错的第一行: org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 1 in XML document from class path resource [] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prol
2020-10-27 18:55:40
463
原创 SpringMVC笔记
SpringMVC笔记实现步骤实现步骤springmvc就是一个spring,直接像spring一样用就好了spring通过IOC管理对象,可以通过bean标签,annotationspringmvc强化了注解annotation的使用我们要做的是使用@controller创建控制器对象,吧对象放入到springmvc容器中,把创建的对象作为控制器使用,这个控制器可以处理用户请求,就像servlet一样,但他并不是servlet, 通过@controller创建的类是个普通类一般一个请求的流程是
2020-10-26 20:48:31
308
原创 Spring笔记
Spring笔记总览结构核心功能创建一个Spring程序总览他有多个家族成员:springspringMVC: 负责web方面springBootspringCloud结构数据访问层web层AOP面向切面编程集成核心容器,保存Java对象测试层核心功能IoC(inversion of control):控制反转控制(control):就是创建对象,对象的赋值,对象之间的关系管理反转(inversion):就是这些东西不由我们程序员来写,而是交给容器目的是解耦合
2020-10-14 08:51:57
120
原创 maven报错
这个项目是在Spring框架下,配合mybatis使用,其中mapper.xml文件没有找到的时候报错这个这是因为在maven的情况下,我们把mapper.xml没有放在resources文件夹下,所以没有被build到target文件中,这时候我们需要把mapper.xml放到resources里:在pom下的build标签中添加:<resources> <resource> <directory>${basedir}/src/main/java/org/e
2020-10-06 19:14:05
311
翻译 Mybatis:Logging
Mybatis:Logging具体使用例子添加log4j jar文件配置mybatis会根据这样子的顺序去寻找,找到的第一个log factory就会被使用:SLF4JApache Commons LoggingLog4j 2Log4jJDK logging如果没找到,那么就不会打印日志许多environment会把commons logging作为application server classpath一样传递。这时,mybatis就会使用commons logging。也就是说,在这
2020-09-17 20:52:02
836
原创 Mybatis:SQL Builder
Mybatis:SQL Builder用SQL类用SQL类为什么参数是final,因为需要用匿名内部类访问这些参数。
2020-09-17 20:03:56
345
翻译 Mybatis:Java API
Mybatis:Java API目录结构SqlSessionsSqlSessionFactoryBuilderSqlSessionFactorySqlSession数据库语句1/使用Java来调用这些东西2/Java mapper annotations目录结构推荐这样子/my_application /bin /devlib /lib <-- MyBatis *.jar files go here. /src /org/myapp/
2020-09-17 15:28:17
228
翻译 Mybatis:Dynamic SQL
Mybatis:Dynamic SQLloggingifchoose,when,otherwisetrim,where,setforeachscriptbindmulti-db vendor supportpluggable scripting languages for dynamic sql其他的动态sql比较麻烦,比如要确保不要漏掉空格,要取消掉一组字段中最后的,很麻烦。那mybatis就比较简单。类似于JSTL或其他的xml文本处理器。logging为了更加清楚的看到sql语句的具体内容,我
2020-09-13 14:49:28
2150
翻译 Mybatis-mappers
Mybatis-mappersselectinsert, update, deleteinsert复杂一些,要看已存在的数据sqlparameters形参也可以额外添加属性String SubstitutionResult MapsresultMap的各个标签resultMap的属性id&result属性constructorassociationnested select for associationnested results for associationmultiple resultset
2020-09-12 16:52:03
506
翻译 Mybatis-Configuration.xml
Mybatis-Configurationproperties也可以在创建SqlSessionFactory的时候作为参数传入优先级比较:默认值设置默认值符号typeAliasestypeHandlerobjectFactorypluginsenvironments创建sqlSessionFactory的不同方法environments的结构transactionMangerdataSourcedatabaseIdProvidermappersproperties可以扩展和修改<properti
2020-09-05 10:06:22
772
原创 Mybatis使用步骤
Mybatis使用步骤先创建configuration文件,xml格式写一个mapper准备工作结束创建一个SqlSessionFactory增删改查先创建configuration文件,xml格式<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-
2020-09-03 19:07:13
319
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人