- 博客(37)
- 收藏
- 关注
原创 Java开发环境配置
下载JDK:Java Downloads | Oracle配置环境变量:09、Java入门:Path、JAVA_HOME环境变量配置_哔哩哔哩_bilibili下载IDEA:Download IntelliJ IDEA – The Leading Java and Kotlin IDE (jetbrains.com)建议安装2021版本比较稳定。IDEA中的一些配置和插件:IDEA 配置与插件及快捷键总结_idea中的diagram如何配置-优快云博客 maven的安装:Day04-02. maven-概
2024-06-20 09:47:54
387
原创 微服务八股-分布式事务-注册中心-服务保护
三者不能同时存在。CP:由于网络分片的存在,如果要保证强一致性就不能写,此时不满足可用性AP:由于网络分片的存在,如果要保证可用性,能读也能写,就不能保证强一致性。
2024-05-27 21:32:38
581
1
原创 JavaRedis-主从集群-分片-数据结构-回收处理-缓存问题
主从集群读写分离,主能读能写,从只能读,读的数据是同步主的docker搭建:docker-compose这里设置网络模式为model,就直接暴露在了宿主机中,就不用映射端口了不改就是默认的桥接模式建立主从关系:进入从redis:输入命令:建立主从关系后每个主从replicationID变成一样主会先将自己的数据持久化存入RDB文件中,然后直接把文件给从,从删除自己原有数据,再加载这个文件中的数据首先建立主从关系后就会有一个repl_backlog缓存区来记录从一开始的命令,并有一个值offset来记录执行
2024-05-26 21:21:50
864
原创 SpringCloud微服务03-微服务保护-分布式事务-MQ基础-MQ高级
这就存在一个问题:如果用户一直未支付,交易服务处理失败,此时库存已经扣减,但未卖出,存在数据不一致。2.内存的空间有限,如果瞬间来了很多消息,它会满了后再向磁盘写入,这样会造成阻塞,如果是持久化消息,来一个会先进入内存然后写入磁盘一个,不会造成阻塞,效率更高。故障隔离的原理是我把消息给消息代理了就不管了,消息代理会一直发送消息给你,你出现故障了,也会一直给你发消息,直到你能处理好之后停止。此时使用延迟消息,交易服务生成订单后,会向自己发送延迟消息,查看订单状态,为未支付会修改库存等。
2024-05-21 19:00:16
966
原创 SpringCloud微服务02-微服务拆分-注册中心-OpenFeign-网关路由-网关登录校验-配置管理
在网关中定义filter类实现GlobalFilter和Ordered,后者是定义执行顺序的。NettyRoutingFilter设置的是最大的数代表最后执行。对于指定路由过滤器GatewayFilter来说,需要时才看。
2024-05-18 20:50:58
1815
原创 SpringCloud微服务01-MybatisPlus-Docker
一、微服务介绍单体架构所有功能集群在一个架构中,难以维护复杂需求微服务之间是不同的TomCat要跨服务查询,学习是如何拆分单体架构为微服务这个mapper继承BaseMapper后就可以直接使用它的方法,增删改查。继承就可以直接操作对应的数据表原因在于实体类,我们需要遵循一些约定才能自动实现如果有不想遵循这些约定的内容就需要在实体类中注解。除了实体包名和mapper地址,其余都是默认设置即可。MyBatisPlus适合单表查询,多表还是需要自己写SQLwhere的条件不一定是id可能更加负责,Wrap
2024-05-13 22:45:55
931
原创 Java苍穹外卖05-订单状态定时处理-数据统计-导出excel
WebSocket就像打电话建立连接后就会很长时间存在。单向的意思是只会是浏览器向服务器发送请求导入坐标:excel表格的结构先分为一个一个sheet页,再分为行和列写入文件读文件可以通过输入流读取文件。
2024-05-10 20:23:00
570
原创 Java苍穹外卖04-菜品缓存-购物车-地址簿-用户下单-订单支付
圈出的是重要的三个程序对于第一个调用微信下单接口:JSAPI下单对于第二个微信小程序调起微信支付的API。
2024-05-06 22:24:02
952
原创 Java苍穹外卖03-Redis-营业状态-HttpClient-微信小程序开发-微信登录以及浏览
可以通过这个工具包在Java中构造http请求并且发送http请求。
2024-04-29 18:20:23
727
原创 Java苍穹外卖02-公共字段自动填充-菜品管理
需要有一种手段能够在mapper层(持久层)知道当前操作是否是insert或者update。为mapper中需要进行拦截的方法加注解,然后去为这些赋值。
2024-04-26 21:46:05
1153
原创 Java苍穹外卖01-开发环境搭建(Git、nginx)-Swagger-员工管理
一、开发环境搭建1.项目架构2.Git版本管理在IDEA中可以一键搭建并commit,当Git远程仓库搭建后就可以push3.前后端联调Builder注解:加了注解后就可以通过这样的方式创建对象接收传入的是dto对象,传出去的对象为vo对象4.nginx反向代理对于第一条:请求nginx的时候,在nginx可以作缓存,如果请求同样接口地址,就无需再请求真正后端程序,在nginx处就将缓存数据返回给前端。对于第二条:当有大
2024-04-25 22:30:27
1129
原创 JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服
Mybatis是操作数据库的,Spring Boot来简化Spring开发的SpringMVC是Spring framework web开发的一部分,是来简化原始servlet程序的基于传统SSM开发是比较繁琐的,效率比较低你上传的pom中的<version>指定了版本,会上传到不同仓库1,3得在maven文件中的settings.xml修改上传是maven生命周期中的deploy。下载直接在另外工程中pom中引入需要的依赖。
2024-04-22 20:19:27
1922
1
原创 JavaWeb开发05-事务管理-AOP概述-AOP通知类型-通知顺序-切入点表达式-连接点-案例
就是要对特定方法执行相同的操作,进行模板程序,基于动态代理。
2024-04-19 21:42:49
1070
原创 JavaWeb开发04-综合案例-部门管理-员工管理-配置文件-登录
multipartFile常用方法:在SpringBoot中,文件上传,默认单个文件允许最大大小为1M。
2024-04-18 15:31:35
1174
原创 JavaWeb开发03-Mybatis入门-基础操作-XML映射文件-动态SQL
所有数据库连接池都要实现DataSource这个接口如果要在spring框架下使用德鲁伊连接池只需要引入德鲁伊的起步依赖。
2024-04-15 20:45:35
934
原创 JavaWeb开发02-MYSQL-DDL-DML-DQL-多表设计-多表查询-事务-索引
首先进行数据库设计查询当前数据库,就是到后面不知道是哪个数据库的时候使用一个部门有多个员工创建部门表和员工表员工表中的dept_id就代表了部门中的主键id类似目录的作用没有索引就会依次进行查询看是否满足条件,全表扫描二叉搜索树。
2024-04-14 21:45:01
1894
1
原创 JavaWeb开发01--Maven-Web入门-请求响应-分层解耦
Apache Maven是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建。根据提供的插件实现很多功能maven的作用管理和构建java项目的工具依赖管理:可以直接在pom.xml文件中修改描述信息就可以得到相应Jar包统一项目管理:让不同IDE的格式都一样可以在不同软件上打开项目构建:可以一键实现很多操作。
2024-04-10 22:08:54
808
1
原创 Java基础07--多线程-网络编程-Java高级
使用这种锁它会拿到共享资源对象的地址,然后通过地址得到此时需要修改的值的大小,拿期望修改的值在此处就是加一,与那个值进行比较如果不一样,就返回继续拿最新的值与修改的操作加一,直到此时要修改的值和期望值相同,再返回此时要修改的值是多少去加一。而服务器端再次收到客户端发出的确认信息,保证了客户端可以收到消息。CPU同一时间会执行多个线程,并行,CPU这多个线程不断切换,切换很快,导致看上去就是同时进行,并发。临时线程会在核心线程都在工作,任务队列占满的情况下创建,超过临时创建的数量就会抛异常。
2024-04-08 15:43:46
704
原创 Java基础05--算法-正则表达式-异常-Collection集合-Map集合-Stream流
用异常对象来封装问题,可以让别人知道使用时是否正确自定义运行时异常throw关键字会将抛出异常对象给调用者自定义编译时异常(用法与运行时差不多,但是会强烈要求修改)throws 用在方法上,抛出方法内部的异常使用迭代器遍历集合时,又同时在删除集合中的数据,程序就会出现并发修改异常的错误。有索引可以倒着遍历删除;或者从前往后遍历,但删除元素后做i--操作无索引的不能使用集合所带的remove方法,使用迭代器的remove增强for、Lambda表达式没办法解决并发问题。
2024-03-29 13:58:11
876
1
原创 Java基础04--Object-Objects-包装类-StringBuilder-StringJoiner-Math-BigDecimal-时间-Arrays-Lambda-方法引用
Java已经写好的一些程序,可以直接解决问题。
2024-03-27 21:47:25
1028
原创 Java基础03--static-代码块-单例设计模式-继承-多态-final-抽象类-接口-内部类-枚举-泛型
静态,修饰成员变量、成员方法。
2024-03-26 22:11:13
1004
原创 Java基础02--流程控制-数组-面向对象编程-常用API
------double和float有精度问题,所以不能来判断switch的穿透性:不写break,会执行下一个case判断执行语句。
2024-03-25 22:05:05
928
原创 Java基础01--命令行窗口--JDK的组成--IDEA--基础语法
D: 切换到某个盘dir: 查看当前路径下的文件信息cd: 进入某个目录cd..上一条目录cd\ 根目录cls 清屏。
2024-03-23 21:51:25
581
1
原创 Unity03--Input
-包装了输入功能的类,可以读取输入管理器中设置的按键,以及访问移动设备的多点触控或加速感应数据。--建议在Update中监测用户的输入。
2024-03-23 09:48:21
1118
1
原创 Unity脚本--02-动画--英雄无敌-敌人模块
一些难以通过程序实现的动作可以通过播放动画来实现①通过动画视图Animation View可以直接创建和修改动画片段②脚本调用动画播放动画的方法:animation.Play:直接播放动画animation.CrossFade:淡入东画,并淡出其他动画animation.PlayQueued:在前一个动画播放完成之后直接播放下一个动画animation["动画名"].speed:播放速度 -1就倒着播练习:鼠标点击开门,再点关门。
2024-03-17 22:03:08
611
1
原创 Unity脚本--01-脚本书写规则-脚本生命周期-脚本调试-常用API
脚本:.cs的文本文件 类文件作用:附加到游戏物体中,定义游戏对象行为指令的代码与C#类的区别:脚本只有字段和方法,没有自动属性和构造函数属性定义了在unity中不会显示不要在脚本中写构造函数,因为不能在子线程中访问主线程成员public 定义字段 编译器中会看到,private不会看到,如果想进行其他操作如下://序列化字段 作用:在编译器中显示私有变量//作用:在编译器中隐藏字段//作用:限制范围。
2024-03-16 11:30:29
753
1
原创 C#学习之旅--Day08-泛型集合(list)-字典集合-static-结构
定义了静态属性,返回了Direction,可读性很高,可以直接对Direction操作,不用对对象操作。通过引用调用实例方法时,会自动传递对象引用,以便在方法内部可以正确访问该对象成员变量。使用as进行转换,不会异常,但是如果不对会返回null,可以进行判断,在不确定的时候。静态代码块,只能访问静态成员 实例代码块,可以访问实例成员和静态成员。静态成员(定义时前有static),属于类,类被加载时初始化,且只有一份。实例成员:属于对象,在每个对象创建时初始化,每个对象一份。
2024-03-13 20:28:38
407
原创 C#学习之旅--Day07-枚举-类与对象
列举某种数据的所有取值。作用:增强代码的可读性,限定取值。语法: enum名字{值1,值2,值3,值4}。枚举元素默认为int,准许使用的枚举类型有byte、sbyte、short、ushort、int、uint、long或ulong.每个枚举元素都是有枚举值。默认情况下,第一个枚举的值为0,后面每个枚举的值一次递增1,可以修改值,后面枚举数的值依次递增。回顾2048,对移动方法统一起来使用枚举,先创建类再使用。
2024-03-12 11:16:35
1108
1
原创 C#学习之旅--Day06-交错数组-参数数组-数据类型-局部变量-拆装箱-字符串
/交错数组棋盘不规则//交错数组定义//创建具有4个元素的交错数组//创建一维数组,赋值给交错数组的第一个元素//将数据1赋值给交错数组的第一个元素的第一个元素//array02.Length 理解为获取交错数组元素数i++)j++)
2024-03-11 14:24:25
781
1
原创 C#学习之旅--Day05-循环嵌套--二维数组-2048
/二维数组 [行,列]获取二维数组所有元素array.GetLength(0) 行的长度array.GetLength(1) 列的长度i++)c++)
2024-03-10 10:47:39
598
1
原创 C#学习之旅--Day04-重载-递归-数组-
/声明数组//初始化 new 数据类型[容量]//通过索引读写每个元素i++)练习://在控制台中录入学生成绩float[]//”请输入学生总数“:”new float[5]“//”请输入第一个学生成绩:“//要求:如果成绩不在0-100之间,则提示成绩有误Console.WriteLine("请输入学生总数:");Console.WriteLine("请输入第{0}个学生成绩", i + 1);Console.WriteLine("成绩有误");else。
2024-03-08 16:19:44
402
1
原创 C#学习之旅--Day03-循环语句-跳转语句-语法
访问修饰符][可选修饰符] 返回类型 方法名称(参数列表)方法体returnConsole.WriteLine("Fun1执行了");返回类型 int double float stringvoid 空的 没有返回类型 retrun可有可无Console.WriteLine("Fun2执行了");return 250;参数设定private static void Fun3(int a,string b) //形参//方法内只应该有【一个】功能//用的人提供数据。
2024-03-07 19:58:43
440
原创 C#学习之旅--Day02-占位符-运算符-数据类型转换-选择语句
1、对字符串中占位使用string.Format,"",即可实现2、{0:c}显示货币10.003、{0:d2}不足两位用0填充4、{0:f1}根据指定精度显示5、{0:p}百分数显示 {0:p0}百分数中保留整数7、转意符。
2024-03-06 19:07:06
689
原创 C#学习之旅--Day01-代码一般格式-屏幕显示-快捷键
用户输入枪的名字,弹匣容量,当前弹匣子弹数量,剩余子弹数量,在一行内显示。由于引入了system命名空间,其中的Console方法就可以使用。结果为false,因为在二进制中1/10除不尽,跟十进制1/3一样。在程序中可以以此来获取用户输入的信息,此信息为字符串。4、调试步骤:①.加断点 ②.按F5 ③.按F11。此命令会让计算机在此等待用户输入。1、ctrl k f 自动对齐。3、ctrl k u 取消注释。将用户输入的文本读取到程序。2、ctrl k c 注释。
2024-03-06 18:30:34
330
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人