简介 这次遇到一个需要在前端播放视频的需求,视频一共五分钟,大小接近一个G,由于视频过大,不能直接放在网页上显示,因此将这个视频转换为视频流,前端再用video组件播放视频。 MOV视频转换MP4 ** 引入maven依赖** <dependency> <groupId>ws.schild</groupId> <artifactId>jave-all-deps</artifactId> <version>3.0.1</version> </dependency> 转换代码 @Test public void testMovToMp4(){ File source = new File("D:\\source.mov"); File target = new File("D:\\target.mp4"); try { &nb.... 有更新! HTML播放基于HLS协议的流媒体视频 程序人生
1、问题 这次调试代码遇到一个奇怪的问题,我使用dynamic datasource进行多数据源配置,在service中建立了两个方法大致内容如下,即需要在getDatabase0中调用getDatabase1方法,然后查询mySql1的数据,但是查询后返回的值一直是mySql0这个库的数据。 @DS("mySql0") public B_FertilizerSite getDatabase0(){ return getDatabase1(); } @DS("mySql1") public B_FertilizerSite getDatabase1(){ return b_fertilizerSiteMapper.selectByPrimaryKey(1); } 2、处理 针对这个问题,可以通过代码改动来解决,如下: @DS("mySql0") public B_FertilizerSite getDatabase0(){ return ((TestFertilizerSiteService)AopContext.currentProxy()).getDatabase1(); }.... 注解方法嵌套调用失效的问题 程序人生
今天使用JSONObject.toJavaObject()方法试图将一个JSONObject对象装换为指定class对象,该对象属性如下所示 private Integer ID; private String fertilizerSiteName; private String userName; private Boolean sendOk; 转换后发现ID字段一直为null,然后我们跟踪代码发现,fastjson通过获取set开头的方法,然后通过字符串截取来获取属性(见com.alibaba.fastjson.util.DeserializeBeanInfo的DeserializeBeanInfo computeSetters(Class<?> clazz, Type type)方法),因为正常的命名习惯都是set然后属性首字母大写,正常这么写是没有问题的,不过这里我们的ID都是大写,他这里默认截取后首字母小写ID,就变成了iD再来做映射的时候就找不到字段了,代码如下 if (methodName.startsWith("set")) { char c3 = met.... 有更新! JSONObject.toJavaObject对首字母大写的属性设置失败 程序人生
1、简介 AT 模式(参考链接 TBD)基于 支持本地 ACID 事务 的 关系型数据库 : TCC 模式,不依赖于底层数据资源的事务支持。 2、建立项目 TCC模式的maven依赖引入,项目配置和AT模式相同,可以参考seata+nacos实现AT模式分布式事务的第2节,完成代码到git上下载,TCC模式在tcc分支下,脚本在script目录下(和AT模式的数据库脚本一致,选择一个执行即可) https://gitee.com/WylLoveX/seata.git 3、使用 TM端依然使用@GlobalTransactional注解标识 RM端需要单独标识出来 @LocalTCC将资源注册到TC @TwoPhaseBusinessAction 将资源标时为二阶段提交的try阶段,这里需要在指定二阶段对应的Confirm和Cancel @BusinessActionContextParameter标时这个一个二阶段参数,后续可以在BusinessActionContext中获取 /** * @author Mr.Wen * @version 1.0 * @date 2021-10-2.... 有更新! seata+nacos实现TCC模式分布式事务 程序人生
1、AT模式简介 AT模式官网已经给出了很详细的介绍,可以直接看官网 http://seata.io/zh-cn/docs/dev/mode/at-mode.html 2、建立项目 涉及的代码过多,这里只对几个关键的步骤进行说明,完整代码可以到git上下载,AT模式在master分支上,数据库脚本在script目录下 https://gitee.com/WylLoveX/seata.git 2.1、maven依赖 这里我们建立一个spring boot项目,基于2.2.5.RELEASE版本,引入seata和nacos需要的依赖。 spring-cloud-starter-alibaba-seata内部封装了seata分布式事务的XID的传递,引入直接使用,如果不用这个组件,就只能自己解决XID传递的问题; seata-spring-boot-starter的版本号和seata版本保持一致; <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-b.... 有更新! seata+nacos实现AT模式分布式事务 程序人生
1、seata 1.1、seata简介 seata官网:http://seata.io/zh-cn/docs/overview/what-is-seata.html 1.2、seata下载安装 seata下载地址 http://seata.io/zh-cn/blog/download.html 我下载的版本是1.3.0版本,下载完直接解压即可 1.3、服务端配置 进入conf文件里面有两个关键的配置文件,第一个是file.conf,第二个是registry.conf 1.3.1、file.conf file.conf配置了seata运行时数据的存储位置,可选项有file,db,redis,将mode改为自己要配置的模式,然后更改下面对应的配置即可,我使用了db,就更改db对应的配置 ## transaction log store, only used in seata-server store { ## store mode: file、db、redis mode = "db" ## file store property file { ## store location dir d.... 有更新! seata配合nacos使用 程序人生