一次由Lombok的@AllArgsConstructor注解引发的错误及解决
目录
- 由Lombok的@AllArgsConstructor注解引发的错误
- 查了资料这里简单解释一下
- 按照上面注解的解释
- @AllArgsConstructor lombok注解踩坑记录
- 这里记录一下使用注意点
由Lombok的@AllArgsConstructor注解引发的错误
需求:在Service实现中写了一个方法调用第三方接口同步数据。 功能代码不做展示,比较普通的调用接口返回JSON数据。
直接看SpringBoot启动的报错信息:
Parameter 3 of constructor in org.springblade.modules.system.service.impl.UserServiceImpl required a bean of type 'java.lang.String' that could not be found.
在附一张图:
看了许多文章都是在说调用了多余的@Autowired
也可以说就是这个原因,但是我在Controller类中去掉没有任何的效果。发现在Controller层确实也都没有用@Autowired注解。
这时候在Service实现类顶部发现了:@AllArgsConstructor
查了资料这里简单解释一下
全部参数的构造函数的自动生成,该注解的作用域也是只有在实体类上,参数的顺序与属性定义的顺序一致。
发现其他的类也是这么写的没啥问题。是因为我在这个类中加了@Value注解。将配置文件的属性读取出来。
按照上面注解的解释
创造了一个全参的构造器,将@Value修饰的变量作为构造器入参,导致报错
所以将@AllArgsConstructor删除就好了。
简单记录一下,希望能帮助到大家。如果有不对的地方还望各位大佬指正。在此感谢各位花时间观看。
@AllArgsConstructor lombok注解踩坑记录
这里记录一下使用注意点
- @AllArgsConstructor 放在类上面,作用等同于一个全量的有参构造;
- 但如果这个类有继承其他类,其他类中的字段并不会出现在全量有参构造中;
- 可能是我的版本太低或者其他问题,暂时没找到为什么继承类的参数没有出现在构造中。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
解决Lombok注解不起作用的问题
Lombok注解不起作用 场景: 减少实体类中如Getter,Setter方法的书写 原因: lombok是一个第三方插件,我们使用时需要进行两个步骤(两个步骤缺一不可): 1:引入lombok依赖 2: 安装lombok插件 作用: Lombok是一个第三方插件,通过它我们可以直接书写注解来代替原来的getter,setter,toString等方法. 深入理解Lombok 说道Lombok,可能会鲜为人知.但是在实际的开发中,它起到了很大的作用,话不多说,直入正题: 一.Lombok是什么
-
java中lombok的@Data引发问题详解
前言 我们问题lombok是可以精简我们的代码的,让开发人员把精力放在业务上,而它封装的注解我们在使用时,需要多注意一下:@Data注解它是一个混合注释,它包含了@Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode的功能,而我们问题@EqualsAndHashCode是重写equals和hash的注释,如果你是一个类,那可以不关心它:而如果你的类中有继承(父类子类),那么就要注意一下了. 危险的@Data 子类
-
Java中Lombok @Value注解导致的variable not been initialized问题
目录 背景 解决 背景 想要修改一个POJO类,在其中增加一个字段,但是增加以后就开始报错: 该类已经存在一个构造函数,为了不破坏该类原来的使用方式,于是重新写了一个构造方法,之前的构造函数未改动. 该类被Lombok的@Value注解修饰 解决 报错信息显示,变量未被初始化.于是主要排查是否有被初始化. 在重写的构造方法中,我已经对该变量进行了初始化. 不明所以,开始找不同,这个类中,唯一不熟悉的就是@Value注解,于是查看注解中的注释: /** * Generates a lot of c
-
详解Idea 2019.2 安装lombok插件失效问题解决
一.lombok简介 lombok 提供了使用注解的形式帮助简化消除java代码.在编写Java代码时,通过使用对应的注解,可以简化开发,同时,在编译源码的时候,lombok又自动生成对应的代码.所以,使用lombok插件不会影响程序的运行效率. 二.lombok常用注解 @Data :注解在类上:包含了@ToString,@EqualsAndHashCode,@Getter / @Setter和@RequiredArgsConstructor的功能,提供类所有属性的 getter 和 sett
-
一次由Lombok的@AllArgsConstructor注解引发的错误及解决
目录 由Lombok的@AllArgsConstructor注解引发的错误 查了资料这里简单解释一下 按照上面注解的解释 @AllArgsConstructor lombok注解踩坑记录 这里记录一下使用注意点 由Lombok的@AllArgsConstructor注解引发的错误 需求:在Service实现中写了一个方法调用第三方接口同步数据. 功能代码不做展示,比较普通的调用接口返回JSON数据. 直接看SpringBoot启动的报错信息: Parameter 3 of constructor
-
Java中lombok的@Builder注解的解析与简单使用详解
Lombok中@Builder用法 1.建造者模式简介:Builder 使用创建者模式又叫建造者模式.简单来说,就是一步步创建一个对象,它对用户屏蔽了里面构建的细节,但却可以精细地控制对象的构造过程. 2.注解类Builder.java注释: * The builder annotation creates a so-called 'builder' aspect to the class that is annotated or the class * that contains a mem
-
Springboot中使用lombok的@Data注解方式
目录 Springboot 使用lombok的@Data注解 idea安装lombok插件 创建项目,编写实体类 编写测试类 测试结果 springBoot 注解@Data注入失败 一.Files--Seetings--Plugins 二.如果重启后仍注入失败 Springboot 使用lombok的@Data注解 idea安装lombok插件 点击setting,选择plugins,搜索lombok安装即可. 创建项目,编写实体类 安装好插件后需要重启idea,然后创建一个springboot
-
一个@Component注解引发的大坑
目录 一个@Component注解引发的大坑 问题是这样的 思考 对spring @component注解的理解 @Component注解的使用 注解的类 测试的类 一个@Component注解引发的大坑 首先,我们这个是用springboot架构来实现的业务 这是项目包结构和配置文件结构 这是定时需要执行的任务 这是我执行PromoCodeCMCJob这个定时器的报错信息 问题是这样的 加了两个MQ之后才报错的这个信息,当我执行启动PromoCodeCMCJob定时任务的时候就报错,报错信息如
-
解决修改mysql的data_dir所引发的错误问题
今天,搭建新购的阿里云ECS环境(ubuntu 16.04 LTS),需要将mysql的数据保存在新挂载的磁盘上(已挂载到/mnt下),先停掉mysql服务,然后查看mysql并数据保存的位置: vi /etc/mysql/mysql.conf.d/mysqld.cnf 发现datadir=/var/lib/mysql, 这也就是数据所在目录,于是将它修改为datadir=/mnt/mysql, 然后保存, 最后将mysql保存的数据的拷贝到/mnt下: cp -r /var/lib/mysql
-
解决python多行注释引发缩进错误的问题
如下所示: m_start =date +' 09:00' m_end =date +' 13:00' rsv_1 ={ 'act':'set_resv', 'dev_id':dev_id, 'start':m_start, 'end':m_end, } ''' rsv_2 ={ '_':'', 'act':'set_resv', 'dev_id':dev_id, 'start':'2018-05-21 13:00', 'end_time':'', 'kind_id':'', 'lab_id':
-
Django 解决由save方法引发的错误
最近项目中的资产的任务状态频频出现问题,查看日志文件,看代码逻辑,也没发现什么具体的错误,总是过段时间就会出现一个表的字段没有更新的问题,很头疼. 开始时,觉得是没有添加事务,所以同时更新两个不同的表,其中一个表的内容没有写进去:加了事务后,又出现这种问题. 后来看代码,发现有两个线程在同一时间先后修改同一个表,问题来了,django的save()会更新所有的字段. 举个例子,我有两个线程分别修改User表,thread1修改User表的name字段,thread2修改User表的email字段
-
解决SpringMVC使用@RequestBody注解报400错误的问题
一般使用@RequestBody接收的时候报400都是传入的json字符串和对应封装的对象不对应造成的 首先要注意 封装的对象中的字段类型有没有Date类型或者int等类型的,如果有的话,在set方法中统一将传入的参数要调整为String类型 在set方法中进行参数的转换 比如有一个Date类型的字段 private Date startTime; public Date getStartTime() { return startTime; } public void setStartTime(
-
SpringBoot Shiro 权限注解不起作用的解决方法
最近在学习springboot结合shiro做权限管理时碰到一个问题. 问题如下: 我在userRealm中的doGetAuthorizationInfo方法中给用户添加了权限,然后在Controller中写了下面的代码.其中URL为/listArticle的方法必须要有article:over权限才能通过.我在doGetAuthorizationInfo方法中给该用户添加的权限并没有article:over,但是当前端向该URL发送请求时,@RequiresPermissions注解不起作用,
-
SpringBoot使用Async注解失效原因分析及解决(spring异步回调)
目录 Async注解失效原因分析及解决(spring异步回调) Spring中@Async 有时候在使用的过程中@Async注解会失效 解决方式一 解决方式二 springboot @Async 失效可能原因 Async注解失效原因分析及解决(spring异步回调) Spring中@Async 在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的:但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在spring 3.x之后,就已
随机推荐
- 写了个批量替换字符串的bat批处理(replaceChar.bat)
- 可多次使用的仿126邮箱选项卡的源码
- .net中string无重复数字的实现方法
- 基于Ajaxupload的多文件上传操作
- Vue监听数据对象变化源码
- vue2 如何实现div contenteditable=“true”(类似于v-model)的效果
- JS基础系列之正则表达式
- 让Asp.NET的DataGrid可排序、可选择、可分页
- Bin 和 App_Code 文件夹介绍
- 计算机二级考试java软件操作教程 教大家如何学习java
- php的chr和ord函数实现字符加减乘除运算实现代码
- Ajax商品分类三级联动的简单实现(案例)
- sqlserver中获取date类的年月日语句
- SQL 新增/修改 表字段列的类型等
- jQuery的缓存机制浅析
- jquery实现input框获取焦点的简单实例
- IIS 7.5 解析错误 命令执行漏洞解决方案
- Android开发之APP安装后在桌面上不显示应用图标的解决方法
- 在C#中调用VBScript、javascript等脚本的实现代码
- 浅谈ASP.NET Core 2.0 部分视图(译)