笔记
这儿有个昵称
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
mysql 中的unsigned
mysql 中的unsigned原创 2022-06-06 11:23:19 · 629 阅读 · 0 评论 -
Optional flatMap 和map 的区别
Optional flatMap 和map 的区别原创 2022-06-02 17:56:09 · 1530 阅读 · 2 评论 -
桥接模式笔记
主要作用是通过将抽象部分与实现部分分离,把多种可匹配的使用进行组合。说白了核心实现也就是在A类中含有B类接口,通过构造函数传递B类的实现可以将抽象化部分与实现化部分分开,取消二者的继承关系,改用组合关系。抽象化(Abstraction)角色:定义抽象类,并包含一个对实现化对象的引用。扩展抽象化(Refined Abstraction)角色:是抽象化角色的子类,实现父类中的业务方法,并通过组合关系调用实现化角色中的业务方法。实现化(Implementor)角色:定义实现化角色的接口,供扩展抽象化角色调原创 2022-04-08 17:39:41 · 152 阅读 · 0 评论 -
fastJson JSON.toJSON 序列化为null
原因:用到了lombok 的以下写法@Accessors(chain = true,fluent = true)chain = true 可以把setter方法的返回值变成自己,以便于链式的写法fluent = true 给set和get的方法,去除get或set前缀,命名为fieldName(),而不是例如setFieldName这就导致了类中的属性是没有get和set前缀的方法,下面这fieldInfoList 就是空的最终结果JSON.toJSON(实体类)返回值..原创 2022-04-06 20:33:06 · 773 阅读 · 0 评论 -
Spring this调用当前类方法无法拦截
先给出代码示例package com.example.demo.service;import org.springframework.stereotype.Service;@Servicepublic class ProxyService { public void testA(){ System.out.println("进入A"); this.testB(); } public void testB() { System.原创 2022-03-18 17:14:31 · 657 阅读 · 0 评论 -
java中复习部分继承关系
前提:1、当一个类中没有声明构造函数的时候,系统会给这个类声明一个默认无参的构造函数2、子类的初始化过程中都会先去初始化父类 ,即会调用super方法3、super方法必须只能构造函数中的第一条语句在继承关系中1、子类和父类都没有声明构造函数的时候,系统会给这2个类指定一个无参的构造函数且子类中无参构造函数是默认调用super()父类的无参构造函数的。2、父类中有声明多个构造函数的,子类可以在构造函数中用super方法使用父类任意一个构造函数3、父类中声明的构造函数,子类中的构造函数可以完原创 2022-02-17 11:14:07 · 320 阅读 · 0 评论 -
spring 总结错误2
在spring中允许存在一个bean类型下的多个bean,每个bean的name要求不一样。1、当我们在使用这个类型bean时,需要具体指定是什么名称的bean,不然就会出错。默认情况下 bean的名称是首字母的小写,但是也有例外。可以通过查看下面的代码得到java.beans.Introspector#decapitalize如果这个bean的name 首字母和第二个字母都是大写就直接返回它本身的类名作为bean名,如果长度大于0不为null那么bean名就是类名首字母小写。我们也可以原创 2022-02-12 17:17:14 · 484 阅读 · 0 评论 -
spring 总结错误1
1、在application的启动类中默认的扫描路径是启动类的路径,要想自己的类能编译出来,需要放到同一路径或这个路径下,又或者用ComponentScan指定需要编译类的路径。可以通debug 类org.springframework.context.annotation.ComponentScanAnnotationParser#parse 下的 basePackages查看真实路径2、在spring中用注解@Service修饰类时,spring容器会自动帮我生成这个bean并放入到容器中,如果原创 2022-02-10 16:38:07 · 436 阅读 · 0 评论 -
javax 和hibernate 的NotBlank
问题:hibernate版本在5 的时候,如果你用了 import javax.validation.constraints.NotBlank;在校验的时会报错HV000030: No validator could be found for constraint 'javax.validation.constraints.NotBlank' validating type 'java.lang.String'. Check configuration for 'updateInfo.paramD原创 2022-02-09 17:07:40 · 2402 阅读 · 1 评论 -
idea sevices 显示
可以添加选择你想要的服务类型选第一个一般默认都是springboot原创 2022-01-07 11:57:02 · 232 阅读 · 0 评论 -
idea启动时候报错,无法加载到Could not resolve placeholder ‘my.userName‘ in value “${my.userName}“
思路:明明在nacos有配置这个参数,不应该会拿不到。代码也没有错,放在其他模块下可以运行,那为什么还会提交说找不到呢。除非是在resources下的bootstrap.properties配置文件中的配置信息没有被读取。 思路:我们知道idea编译的时候会把类和配置文件加载到target包下,打开发现确实没有bootstrap.properties这个配置文件。解决:于是乎就去网上找问题为何会不生成配置文件呢?大致的解决方法有1、看看是不是路径有没有放错,在不在resources下面,看看resou原创 2022-01-07 11:16:19 · 2445 阅读 · 0 评论 -
Transactional 默认回滚策略和自定义回滚异常类型
首先:当我们使用声明式注解事务的时候,如果你只写Transactional 的话,方法返回中有写throws Exception 的话,idea会提示你要指定对应可能出现的异常类型。这个时候我就在想,这个事务的默认回滚异常类型是什么?如果我在注解中指定一个对应的回滚异常会发生什么?想是想不出的,只能看源码!!!随即写了个简单的测试类:1:不在事务注解上指定回滚异常类通过debug定位,定位到这个类点击进去找到后你会找到RuleBasedTransactionAttribute这个类中rol原创 2021-11-04 16:41:14 · 6605 阅读 · 1 评论 -
Mybatis-Plus查询时排除某列和更新字段的时候设置为null,忽略实体null判断
1、LambdaQueryWrapper<PlmCommonNoticeEntity> wrapper = Wrappers.lambdaQuery(plmNoticeEntity).select(PlmCommonNoticeEntity.class,info -> !"content".equals(info.getColumn()))2、@TableField(value = "`length`", updateStrategy = FieldStrategy.IGNORE.原创 2021-10-14 20:56:02 · 1553 阅读 · 0 评论 -
jdk 8 ConcurrentHashMap computeIfAbsent 里面也有死循环
建议使用的时候要避免key的hashcode重复,如果一样是会发生死循环的。例子:Map<String, Integer> map = new ConcurrentHashMap<>(16);map.computeIfAbsent(“AaAa”,key -> {return map.computeIfAbsent(“BBBB”,key2 -> 42);});先调用了 get 方法,如果返回为 null,则调用 putIfAbsent 方法,这样就能不原创 2021-10-08 13:54:49 · 358 阅读 · 0 评论 -
注解+分组校验在service方法中使用
场景描述之前在controller层中使用注解校验实体属性,现在因为是操作同一个实体类,但是需要在service中同样校验属性,同时还要区别某个属性,因为在这个service方法中并不是所有的属性都想着校验,部分属性是不需要校验的。解决方法1、现在实体类中把想要校验的属性分组,这个分组类可以是内部类这个类之所以要继承Default是因为需要使用它自带的@NotNull或其他的常见注解接着只要在实体类是使用就行@NotNull(message = “是否含运费不能为空”,groups = Che原创 2021-09-30 18:38:40 · 751 阅读 · 0 评论 -
final的使用
这里写自定义目录标题final的使用修饰基本类型修饰对象final修饰方法和类final的使用修饰基本类型1、在方法外声明一个全局的基本类型可以一直开始就直接赋值,如果不赋值需要在构造函数中给变量赋值。如:number2如果搭配static 和final一起使用的话,就需要你再static代码块中为该变量赋值(static修饰的常量只能在static代码中初始化)2、如果是在方法内部中定义一个final变量,可以先不赋值,但是必须要在使用的时候给这个变量赋值修饰对象修饰变量为对象的时候,必原创 2021-09-30 14:22:41 · 130 阅读 · 0 评论
分享