前几天项目中的事务在抛出异常时不生效,启动类上增加了@EnableTransactionManagement依旧没有效果 @Transactional(rollbackFor=Exception.class,value="dataeaseTransactionManager") 增加了value="dataeaseTransactionManager"为事务配置方法名即可
IDEA热部署插件JRebel安装教程(超级详细图文教程) 1、下载安装 2、激活插件 3、其他配置 1、下载安装 注:激活版本<jrebel版本2022.4.2 我一般习惯到IDEA官网下载插件,官网地址:https://plugins.jetbrains.com/ 选择版本2022.4.1进行下载 在IDEA中File->Settings->Plugins中安装插件, 下载完成后重启IDEA,来到引导页面 3、其他配置 File->Settings->Jrebel&Xrebel设置Jrebel离线工作,并且部署时间设置为1s
今天在docker上部署nacos,使用mysql上面的配置,启动的时候一直显示状态为restarting,许久没有找到原因,特此记录。 docker部署docker过程 拉取nacos镜像 dockerpullnacos/nacos-server:v2.2.0 创建挂载目录 mkdir-p/mydata/nacos/conf mkdir-p/mydata/nacos/logs 启动nacos dockerrun-d\ --namec_nacos\ -p8848:8848-p9848:9848-p9849:9849\ --privileged=true\ -eJVM...
Lombok无法适配IDEA2022.3 前言 解决方案 前言 我的版本2022.3.1 想安装Lombok时发现没有匹配版本 解决方案 我们可以直接到lombok下载官网下载最新版lombok 得到lombok压缩包 使用解压工具打开,切记不要解压 我使用的压缩工具是bandzip,感觉很好用,安利一波 打开lombok-plugin-0.34-2020.2.jar–>META-INF–>plugin.xml 修改成idea对应的版本即可 打开IDEA–>settings–>plugins–>installpluginfr...
一、递归 定义: 一个问题的解可以分解为几个子问题的解。 这个问题与分解之后的子问题,除了数据规模不同,求解思路完全一样。 存在基线/终止条件。 1.1爬楼梯 题目描述: 1.1.1递归解法 解决思路:具体代码: publicintclimbStairsWithRecursive(intn){ if(n1){ return1; } if(n2){ return2; } returnclimbStairsWithRecursive(n1)+climbStairsWithRecursive(n2); } 缺点:复杂度较高O(n2) 优化: 使用HashMap存储已...
工厂模式 (工厂模式)工厂将创建对象的细节抽离出来,实现对修改关闭。 定义 工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。工厂模式有3种不同的实现方式,分别是简单工厂模式、工厂方法模式和抽象工厂模式。 工厂方法模式中的重要原则:依赖倒置原则 如何避免违反依赖倒置原则 变量不可以持有具体类的引用 不要让类派生自具体类 不要覆盖基类中已实现的方法 简单工厂模式 简单工厂模式将创建对象的细节进行封装,但是每增加一个产品就要增加一个具体产品类和一个对应的具体工厂类,这增加了系统的复杂度,违背了“开闭原则”。 简单工厂模式结构如下: ...
装饰者模式 (装饰者模式) 定义 装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 主要角色 抽象组件(Component):定义一个对象的接口,可以给这些对象动态地添加职责。 具体组件(ConcreteComponent):实现抽象组件的接口,代表被装饰的原始对象。 抽象装饰者(Decorator):继承或实现抽象组件,持有一个抽象组件的引用,可以调用被装饰对象的方法,并且可以在其前后增加新的功能。 具体装饰者(ConcreteDecorator):实现抽象装饰者的方法,给被装饰对象增加具体的职责。 要点 继承属于扩展形式之一,但不见得是达到弹性...
策略模式 (策略模式) 定义 策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 策略模式和共享词汇 设计模式让你和其他开发人员之间有共享的词汇,一旦懂得这些词汇,和其他开发人员之间沟通就很容易,也会促使那些不懂的程序员想开始学习设计模式。设计模式也可以把你的思想架构的层次提高到模式层面,而不是仅停留在琐碎的对象上。 共享模式词汇的威力 共享的模式词汇“威力巨大” 模式能够让你用更少的词汇做更充分的沟通 将说话的方式保持在模式层次,可让你待在“设计圈子”久一点 共享词汇可帮你的开发团队快速充电 共享词汇能帮助初级开发人员迅速成长 代码实现 ...
Stringcheck="^([a-z0-9A-Z]+[-|_|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$"; String[]email=addressee.split("[,,]"); for(i=0;i<email.length;i){ booleanflag=email[i].matches(check); if(!flag){ thrownewBadRequestException(ErrorCodeUtil.getApiError(ErrorCode.Resource.RES_40...
JAVA基础语法 1.注释 1.1注释概述 1.2注释分类 2.关键字 2.1关键字概述 2.2关键字特点 3.常量 3.1常量描述 3.2常量分类 4.数据类型 4.1计算机存储单元 4.2数据类型 4.3数据类型内存占用和取值范围 5.变量 5.1变量概述 5.2变量定义 5.3变量的使用 5.4变量使用的注意事项 6.标识符 6.1标识符概述 6.2标识符定义规则 6.3常见命名约定 7.类型转换 7.1类型转换分类 7.2自动类型转换 7.3强制类型转换 1.注释 1.1注释概述 如上图所示的洗涤方法,可以告诉我们在洗衣...
//从json对象中取出message Stringmessage=jsonObject2.getString("message"); Patternregex=Pattern.compile("\\$\\{([^}])\\}"); Matchermatcher=regex.matcher(message); StringBuildersb=newStringBuilder(); if(StringUtils.isNotEmpty(message)){ while(matcher.find()){ sb.append(matcher.group(1)+","); }...
JPA多条件动态查询 如果每个参数都是必填项,则 @Query(value="selectfromedge_alarm_notify_recordaleftjoinedge_alarm_notify_configbona.notify_config_id=b.notify_config_idwhere1=1"+ "b.notify_nameLIKECONCAT('%',?1,'%')and"+ "a.addressee=?2and"+ "b.notify_type=?3and"+ "a.state=?4and"+ "a.send_dateBETWEEN?5AND?6and"+ "a...
json字符串转json对象 / "notifyMessage":{ "message":"", "title":"", "fileIdList":[] } / JSONObjectjsonObject=JSONObject.parseObject(notifyMessage); json对象转json字符串 Stringmessage=jsonObject.getString("message"); json对象转java对象 NotifyMessagenotifyMessage=JSON.toJavaObject(jsonObject,NotifyMessage.class);...
/AES/CBC/PKCS5Padding密码解密/ privatestaticbyte[]ivValue=null; privatestaticfinalStringALGORITHM="AES/CBC/PKCS5Padding"; static{ try{ ivValue=PUBLIC_SEC_IV.getBytes("UTF-8"); }catch(UnsupportedEncodingExceptione){ e.printStackTrace(); } } privatestaticfinalIvParameterSpecIV_SPEC=newIvParameterSpec(i...
Mybatis动态批量更新 <updateid="update"parameterType="java.util.List"> <foreachcollection="points"item="item"index="index"separator=";"> updatedata_trend_point <set> <iftest="item.dataTrendId!=null"> data_trend_id={item.dataTrendId,jdbcType=BIGINT}, </if> <iftest="item....
今天工作中遇到get请求中参数含有特殊字符导致报错的问题,报错情况如title部分: 只要将传入的值转化为浏览器认识的即可,具体如下: 使用encodeURIComponent()方法
今天在使用linux的时候发现linux无法连接网络 到网上搜了好多解决方案都没有解决,最后发现问题所在首先打开编辑->虚拟网络编辑器,勾选“使用本地DHCP服务将IP地址分配给虚拟机”,重启linux即可。 现在发现已经可以连接上网络了
运算符 1.算数运算符 1.1运算符和表达式 1.2算数运算符 1.3字符的“+”操作 1.4字符串的“+”操作 2.赋值运算符 2.1赋值运算符 3.自增自减运算符 3.1自增自减运算符 4.关系运算符 4.1关系运算符 5.逻辑运算符 5.1逻辑运算符概述 5.2逻辑运算符 5.3短路逻辑运算符 1.算数运算符 1.1运算符和表达式 运算符:对常量或者变量进行操作的符号。 表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。不同运算符连接的表达式体现的是不同类型的表达式。 举例说明:inta=10;intb=20;i...
springboot集成mqtt实现发布、订阅消息的功能 首先在pom.xml文件中加入依赖 <dependency> <groupId>org.springframework.integration</groupId> <artifactId>spring-integration-mqtt</artifactId> </dependency> application.yml配置 mqtt: host:tcp://xx.xx.xx.xx:1883 topics:scrm_user/ clientId...