技巧
我又不乱来aaa
这个作者很懒,什么都没留下…
展开
-
分布式锁和数据库事务在并发情况下的问题
分布式锁和数据库事务在并发情况下的问题模拟业务场景:@Transactional(rollbackFor = Exception)public Integer update(Integer id) { if (!redisTemplate.opsForValue().setIfAbsent("redis_key" + id,"yes",5, TimeUnit.SECONDS)){ return 0; } Entity entity = xxxDao.select原创 2021-11-16 17:50:40 · 968 阅读 · 0 评论 -
PageHelper使用返回的total固定为10
PageHelper使用分页固定只有一页数据库数据不只10条,分页查询后却只有一页:排查后发现:total始终返回10,导致了分页错误。排查后端业务代码发现在查询数据完毕后进行了数据的处理,导致原Collection对象发生改变List<xxEntity> list= xxDao.selectListForPage(query);list = list.stream().....collect(Collectors.toList());PageInfo<Complaint原创 2021-11-04 18:01:21 · 1225 阅读 · 0 评论 -
项目jar包部署发布到maven中央仓库
发布项目到maven中央仓库1.先注册sonatype账号 网址:https://issues.sonatype.org/(如果有直接登录)2.点击新建issue3.填写信息提交审核如下:4.审核失败,原因:group id不是自己的域名,网站工作人员提供了解决办法:最后根据提示步骤123之后再次评论提交,将状态改为 open,5.审核成功:6.maven的setting.xml增加:<server> <id>ossrh</id> <u原创 2021-09-26 10:00:17 · 207 阅读 · 0 评论 -
mysql高并发下配合redis的秒杀下单功能设计(方案一)
高并发下的秒杀功能设计(方案一)表结构CREATE TABLE `order_info` ( `order_id` bigint NOT NULL COMMENT '订单id', `order_type` tinyint NOT NULL DEFAULT '1' COMMENT '订单类型(1-普通订单,2-秒杀订单)', `goods_id` int NOT NULL COMMENT '商品id', `nums` int NOT NULL COMMENT '商品数量', `pric原创 2021-08-02 19:36:41 · 287 阅读 · 0 评论 -
spring中的循环依赖问题
spring中的循环依赖问题spring应用中,默认是有循环依赖的控制,场景:ServiceA、ServiceB、ServieC 多个bean互相依赖,形成闭环。spring默认使用三级缓存控制循环依赖的问题,但是前提是:bean不是以构造方法注入,单例bean(多例bean不被spring管理,只管创建)。spring3级缓存解决循环依赖:spring构建ServiceA时,发现依赖于ServiceB,于是先去构造ServiceB的bean,先使用构造方法实例化了一个ServiceA,然后原创 2021-04-14 17:27:51 · 146 阅读 · 0 评论 -
Redis分布式锁setNx防止用户重复提交请求。
Redis分布式锁setNx防止用户重复提交请求首先定义一个注解:@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface UnRepeatSubmit { /** * 设置请求(key)的锁定时间,默认5秒钟 * @return */ int lockTime() default 5;}为了能够方便注解实现控制每个handler,提供注解,根据原创 2021-04-09 10:52:44 · 1170 阅读 · 4 评论 -
@RequestBody 传参时json转化的反序列化问题
@RequestBody 传参时json转化的反序列化问题com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `com.front.entity.FrontConfigs` (no Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or pr原创 2021-04-06 15:23:56 · 898 阅读 · 0 评论 -
java集合通过对象属性进行去重
java集合通过对象属性进行去重private static <T> Predicate<T> distinctByKey(Function<? super T, Object> keyExtractor) { Map<Object, Boolean> seen = new ConcurrentHashMap<>(); return t -> seen.putIfAbsent(keyExtractor.app原创 2021-03-23 10:13:38 · 267 阅读 · 0 评论 -
Redis通过代码删除相同前缀的key
Redis通过代码删除相同前缀的keyredisTemplate.delete(redisTemplate.keys(ConstantConfig.AUTH_USER_LIST + "*"));原创 2021-03-22 18:17:53 · 1072 阅读 · 0 评论 -
一个for循环打印九九乘法表
一个for循环打印九九乘法表public class StringDemo { public static void main(String[] args) { test1(); test2(); } /** * 打印九九乘法表 */ private static void test1(){ int max = 9; for(int i = 1;i<=max;i++){原创 2021-02-25 16:25:07 · 131 阅读 · 0 评论 -
MYSQL关闭安全模式
Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.MYSQL取消安全模式SET SQL_SAFE_UPDATES=0;...原创 2021-02-24 10:30:11 · 2737 阅读 · 0 评论 -
Spring的事务管理Transactional出现嵌套service事务情况
Spring的事务管理Transactional出现嵌套service事务情况@Service@Transactional(rollbackFor = Exception.class)public class AServiceImpl implement AService{ @Override public void a(){ ... }}@Service@Transactional(rollbackFor = Exception.class)原创 2021-02-23 15:33:09 · 1794 阅读 · 0 评论 -
springsecurity的登陆用户信息查询接口的校验或hasIpAddress()用法
springsecurity的登陆用户信息查询接口的校验或hasIpAddress()用法一般的微服务架构下,auth服务都是单独的只做token颁发和校验的模块,所以当在进行用户登录或其他操作的时候,都需要调用其他的服务进行用户信息的查询和密码比对。那么其他服务的这个接口的隐蔽性就会受到挑战。但是发现在springsecurity的权限控制当中,有一个方法很好用:hasIpAddress() @Value(value = "${auth.address}") private Str原创 2021-02-01 15:25:22 · 1788 阅读 · 0 评论 -
springcloud项目返回的数据格式为:application/xml
springcloud项目返回的数据格式为:application/xml,而非application/json使用springcloud搭建项目有可能会出现的问题。很多组件下面都有fastjson这个依赖,就会导致返回到前端的数据contant-type变成了"application/xml;charest=utf-8"。但是一般都是返回json格式的数据。所以需要排除这个依赖:jackson-dataformat-xml比如在sentinel中、还有就是spring-boot-starter-web原创 2021-02-01 11:32:40 · 909 阅读 · 0 评论 -
@PreAuthorize出现404&&because it is a JDK dynamic proxy that implements:
@PreAuthorize出现404&&because it is a JDK dynamic proxy that implements:because it is a JDK dynamic proxy that implements:一个已经被jdk动态代理后的类(如果他实现了一个接口),在进行依赖注入的时候会出现的问题。会导致这个类没法被其他类进行注入使用。@PreAuthorize出现404出现这个问题可能是因为你的controller实现了一个接口,比如接口上有@Feig原创 2021-02-01 10:33:49 · 290 阅读 · 0 评论 -
关于List集合的addAll方法报错UnsupportedOperationException
关于List集合的addAll方法报错UnsupportedOperationException public static void main(String[] args) { List<Integer> list1 = Arrays.asList(2,2,5,6,9,8,6,3); List<Integer> list2 = Arrays.asList(2,2,5,6,9,8,6,3); list1.addAll(list2原创 2021-01-27 15:17:42 · 2522 阅读 · 8 评论 -
mysql计算环比增长率
mysql计算环比增长率需求:统计所选时间之内的月度的环比增长率sql:SELECT afterData.com_code, AVG((afterData.sumPower - beforeData.sumPower) / 1) / (COUNT(1)) `avgGrowthRate`FROM (SELECT com_code, DATE_FORMAT(measure_date, '%Y%m') `month`,原创 2021-01-11 17:23:05 · 1182 阅读 · 0 评论 -
mysql按照指定的天数对日期字段进行分组
mysql按照指定的天数对日期字段进行分组解决思想其实就是算出一个日期天数除天数得到的商进行分组-- 28天月用电量均值SELECT com_code, avgPower, monthFROM (SELECT cons.com_code, AVG(acture_day_amount) avgPower, (DATEDIFF('2020-08-31', measure_date) DIV 28) AS `month`原创 2021-01-07 13:52:45 · 677 阅读 · 0 评论