- 博客(580)
- 资源 (1)
- 问答 (3)
- 收藏
- 关注
原创 JDBC基础Demo
-指定启动类-->maven-shade-plugin增删改 以配置文件方式 配置文件放在resources下。resources下创建jdbc.properties。
2024-08-21 14:59:30
525
原创 模拟JDBC本质
编译之后 以后无需再次编译源码 只需要改配置文件。利用反射,但是这种方式,还是需要重新编译。编译所有文件,并运行。如果换成Oracle。以读取配置文件的方式。
2024-08-21 04:50:10
182
原创 maven项目构建包含依赖的jar包插件
但是 如果这样直接打包的话,是不会将所需要的依赖打包进去的。我的项目就一个包含main方法的java类。并且 如果你直接启动jar包。项目中引入了mysql依赖。
2024-08-20 09:32:46
214
原创 JDBC标准
各个数据库厂商会提供自己的JDBC驱动程序,简单说就是我已经按你标准实现好了,你无需关注底层逻辑,只要照着标准,比如说我现在要个连接,那么你就去getConnection就可以了.不需要管这个连接如何来的.各个厂商都有专业的人在负责维护他们的驱动,没有人比他们更加了解.这样做,对于程序员而言我们只需熟悉JDBC接口和里面的方法即可.大大降低了学习成本.两阶段提交是一种用于分布式系统中保证事务一致性的协议.它的目的是确保再分布式环境中,所有参与事务的数据库要么都成功提交事务,要么都回滚,以保证系统的一致性.
2024-08-20 06:24:42
940
原创 final
final修饰类,该类不能被子类继承,也就无法创建该类的子类。如果是static final必须声明同时初始化。final做为成员变量之后,可以在3个地方赋值。final修饰方法时,该方法不能被子类重写。final修饰成员变量之后,值不能被修改。3.实例块中赋值 {xxx=xxx}
2024-08-14 21:00:56
563
原创 后端处理跨域
/ 返回新的CorsFilter。// 添加映射路径,拦截一切请求。// 设置访问源请求方法。// 有效期 1800秒。// 设置访问源请求头。// 设置访问源地址。
2024-08-12 03:00:55
424
原创 前端处理跨域
/ 例如,访问 /api/user 将会被代理到 http://localhost:8088/user。// 如果为 true,代理服务器会将目标地址作为请求的 host。// 如果请求路径中包含 /api 字符串,则将其替换为空。// 是否支持 websocket,默认为 true。// 用于控制请求头中的 host 值。// 配置要代理的服务器地址。
2024-08-12 02:54:44
654
原创 xxl-job
创建数据库,导入表 注意 如果没有xxl_job库 会自动创建。启动自己的业务应用 下面有与SpringBoot整合的例子。appname 再执行器配置时候要用 启动应用。默认账密 admin 123456。修改xxl-job数据库连接 启动。配置代码 (自己下载看下) 和示例。新增执行器 已经有默认例子。配置报警给对方发邮件的邮箱。
2024-08-11 05:59:55
436
原创 自定义starter
在META-INF下新建spring.factories。install打包到本地仓库 其他项目可以引入了。如果是SpringBoot2.7之前。
2024-08-09 22:36:24
362
原创 SpringBoot Actuator
对应用进行观测,监控,预警健康状况[组件状态,存活状态] health 健康端点:返回存活,死亡. Health对象运行指标[CPU,内存,垃圾回收,吞吐量,响应成功率] Metrics 指标监控端点:访问次数/率等等链路追踪等等引入web和actuator依赖 在不做任何配置情况下--可观测场景启动器 线上指标监控,运行状态监控-->访问:IP:端口/actuator暴露指标#暴露所有监控断点信息。
2024-08-08 19:02:36
700
原创 Linux设置临时环境变量
例如 服务器安装了好几个java JDK版本 环境变量配置的是JDK8 可有时启动某些应用时候需要临时改变环境变量。当然 你也可以通过 指定java命令目录。这样 该临时环境变量只在当前窗口会话生效。
2024-08-08 18:23:08
265
原创 关于WebMvcConfigurer
用WebMvcProperties------->application.properties中 spring.mvc前缀来配置。WebProperties-------->application.properties中 spring.web前缀来配置。默认用的WebMvcAutoConfiguration实现WebMvcConfigurer。提供了配置SpringMVC底层的所有组件入口。
2024-08-08 15:23:51
355
原创 SpringBoot排除默认日志框架
application.properties中的配置无需改变,自动装配会根据条件(哪个日志的.class是否存在) 进行切换。只要切换日志配置文件就好 比如原来使用的logback-spring.xml换成log4j2-spring.xml。默认用的logback。
2024-08-08 06:12:04
239
原创 SpringBoot-application.properties为对象赋值
例如现在有 以下几个类 我希望应用启动好之后这个Person内的数据通过application.properties配置。首先让该Bean交由Spring管理,然后加上@ConfigurationProperties(prefix="前缀")还可以通过@PropertiesSource("classpath:指定配置文件")使用@EnableConfigurationProperties。忘记写set get方法了 或者加@Data注解。上面四个类都加上@Data注解。启动可以看到该实例已经有值了。
2024-08-08 02:19:58
220
原创 为什么要用分布式锁
数据库有条数据 id为1 count为500 现在A应用需要给这条数据的count加20 B应用需要给这条数据的count加30。试想,在分布式下,有没有可能出现多个应用中的线程同时去修改同一个数据资源的并大问题。那么这种情况下 去update的时候就会出现 数据与真实不一致的情况。A应用线程查出来 id为1的这条数据 现在的count是500。B应用线程查出来 id为1的这条数据 现在的count也是500。A应用的线程和B应用的线程同时去修改数据库中的某条数据。
2024-08-07 01:17:38
154
原创 SpringBoot+Mybatis 分页
合理化分页参数,避免异常页码导致的错误 启用后,当 pageNum 小于等于 0 时,会自动查询第一页的数据;持久层 PageHelper会拦截sql 拼接 select * from xxx limit (pageNum-1)*pageSize,pageSize。无论多数据源,还是单数据源,分页都一样,刚开始出了点错,是因为PageHelper的版本问题。#支持通过方法参数传递分页参数 PageHelper.startPage(1,2)#PageHelper 配置。PageHelper配置。
2024-08-06 22:18:33
450
原创 dynamic-datasource+Mybatis多数据源使用
严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源。#设置默认的数据源或者数据源组,默认值即为master。#去掉默认使用HikariCP。
2024-08-06 18:34:57
984
原创 Mybatis-plus乐观锁
而此时第二个线程去update的时候 由于原先查出来版本号还是原来的 会导致更新不成功 那么在事务的驱动下,全部回滚。并发安全问题不是次次发生,是偶尔很小几率发生的事,但是这个几率是确实存在的。有两个线程都在查询数据库 查出来都是 1 500。现在两个线程都要修改这条数据 在原来基础上+20 和+30。第一个线程去update的时候 顺手将版本号加了1。当两个线程都在查 查出来 1 500。可是第二个线程查出来也是500 加了30。可是实际有可能是530。
2024-08-06 04:13:14
1008
原创 SpringBoot整合Redis
application.properties中关于Redis的配置。Redis默认用的是JDK序列化。再使用redisTemplate。引入了web和redis依赖。
2024-08-05 17:54:09
376
原创 java接口
曾经老师说,接口里都是常量和抽象方法 现在是接口里都是常量 可以有默认实现 可以有私有方法 和静态方法(public和静态私有)接口扩展可以将默认实现方法重新定义为抽象方法。
2024-08-05 16:22:02
378
原创 SpringBoot多数据源事务处理
本来可以自己注入自己去调用 (为什么要自己注入自己调用,AOP代理,类不是自己写的类)SpringBoot 2.6.0之后禁止自己注入自己。不可能去同一个方法上写两个事务注解 不允许。多数据源时,一般会配置多个事务管理器。
2024-08-04 19:24:55
326
原创 RocketMQ整合SpringBoot事务消息
根据本地事务的执行结果,生产者向 Broker 提交事务状态(COMMIT、ROLLBACK 或 UNKNOWN)。如果提交成功,半消息会被转换为正式消息,并且可以被消费者消费;如果回滚,半消息会被删除。半消息的作用是先占据一个位置,但不会被消费者消费,直到事务提交成功。:如果 Broker 未能及时收到生产者的提交状态,或者收到的是 UNKNOWN 状态,Broker 会定期回调生产者的。:当事务消息被提交后,消费者可以正常消费这条消息。消费者接收并处理消息的逻辑与普通消息相同。
2024-08-04 04:06:56
259
原创 本地项目提交到Gitee
git remote add origin https://gitee.com/xxxx/xxxx.git 添加远程仓库。git push -u origin master 提交 -u是为了以后直接使用 gitpush。git commit -m "Initial commit" 提交到本地。可以在黑屏输入命令 也可以在项目里面 命令都是一样的。git add . 添加所有文件。在项目目录 右键 git bash here。测试demo 没有内容。
2024-08-04 01:24:02
334
原创 RocketMQ消息汇总
当物理文件删除了 队列中的下标的消息也被删除了 但是即使物理删除了 队列中的偏移量还是会持续上升每天凌晨4点 定时清理在 RocketMQ 中,消息的物理删除是通过定期清理 CommitLog 文件来实现的。CommitLog 文件中存储的是所有主题和队列的消息,一旦这些文件中的数据超过了文件保留时间()或者文件大小限制,老旧的文件将会被删除。对于 ConsumeQueue 文件,它们的清理依赖于 CommitLog。
2024-08-04 00:36:35
723
原创 对象序列化与反序列化方法
public static byte[] serialize(Object object) throws IOException { try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream)) {
2024-08-02 19:03:41
291
原创 Linux安装Nodejs
设置 NameServer 地址,可以配置多个地址,用分号分隔。# 设置 NameServer 地址,可以配置多个地址,用分号分隔。# 将各个工具的 bin 目录添加到 PATH 环境变量中。# 将各个工具的 bin 目录添加到 PATH 环境变量中。# 设置 RocketMQ 环境。# 设置 RocketMQ 环境。# 设置 Node.js 环境。# 设置 Node.js 环境。# 设置 Maven 环境。# 设置 Maven 环境。# 设置 Java 环境。# 设置 Java 环境。
2024-08-01 17:20:14
892
原创 RocketMQ事务消息
RocketMQ消息发送基本示例(推送消费者)-CSDN博客RocketMQ消费者主动拉取消息示例-CSDN博客RocketMQ顺序消息-CSDN博客RocketMQ广播消息-CSDN博客RocketMQ延时消息-CSDN博客RocketMQ批量消息-CSDN博客https://blog.csdn.net/tiantiantbtb/article/details/140844693?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22a
2024-08-01 15:20:31
156
原创 RocketMQ过滤消息
为 "NEW",这样他们只会接收订单 1 的状态更新消息,而不会接收其他状态更新的消息。消费者可以选择订阅 "order_updates" 主题,并指定。在broker.conf配置 开启sql92过滤。就是说选定主题topic和tag来获取需要的数据。生产者把消息放到同一个topic的不同tag中。注意::::: 说明没有开启sql92过滤。另外消费者订阅时候可以同时订阅多个tag。例如在生产者发消息前设置个属性。2.复杂的用SQL表达式。使用SQL方式实现过滤。
2024-08-01 15:17:23
352
MQ与Dubbo联系区别
2024-02-21
阿里云ECS服务器上安装Mysql
2024-02-07
JenKinsPOM文件问题
2024-02-05
idea如何配置对象可以点出静态方法
2023-11-15
java并发安全问题回答下
2023-02-16
关于#Socket#的问题,如何解决?
2022-09-30
前后端分离项目部署Nginx配置
2022-06-04
SpringBoot项目线程池问题
2022-05-12
Mysql数据库转存sql文件
2022-04-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人