解决异常Error creating bean with name ‘xxxxxController’: Unsatisfied dependency expressed through field

  • Post author:
  • Post category:其他




结果

已经修改了BUG,所以不能贴出完整异常内容

这一类异常修改比较简单,第一次遇见可能会头疼,如果把整个过程梳理一边就没有那么麻烦了



主要异常

Error creating bean with name ‘catalogController’: Unsatisfied dependency expressed through field ‘userDetailsService’;

nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException:

Error creating bean with name ‘userServiceImpl’: Unsatisfied dependency expressed through field ‘userRepository’;

nested exception is org.springframework.beans.factory.BeanCreationException:

Error creating bean with name ‘userRepository’: Invocation of init method failed;

nested exception is java.lang.IllegalArgumentException: Failed to create query method public abstract java.util.List com.liangle.spring.boot.blog.dao.UserRepository.findByUsernameIn(java.util.Collection)! Could not determine a type for class: java.util.Collection



思路

1查看entity下的所有体类一起其他实体类,检查时候有@Entity标注

2检查标注位置:不能对属性和getter方法混合标注(我的问题不是这个,开始我都不理解这句话的意思)

	class Modw{
		@属性标注
		int name;
		int age;
		int getName(){
			return this.name;
		}
		@getter标注
		int getAge(){
			return this.age;
		}
	}

上面这种写法会产生不能识别 实体类的异常

3@Data标注问题 (这个是我出现的问题)

@Data标注可以简化代码,IDE会自动添加类下所有属性的getter和setter方法,但是你却看不见,如下

	@Data
	class Mode{
		int name;
		int age;
	}

这样使用Mode对象也可以调用getName方法,即使类Mode并没有这个方法。因为@Data已经帮你写好了

添加@Data的前提

使用Data注解需要下载lombok的jar包,还需要给IDE添加插件。我使用的IDE

是Eclipse。使用java -jar ***/lombok.jar命令启动安装程序,选择Eclispe路径后显示安装成功

我依照教程clean了我的项目,@Data生效了,但是却不能启动了,每次都会抛出这个异常



原因

java -jar命令安装后,lombok.jar会自动备份一个到Eclipse的根目录下,我引用的jar包并不是这个jar,而是Gradle为我下载的lombok,我把Gradle中的lombok移除后,添加额外的包(Eclipse根目录),项目启动

网上提供的其他思路(没有实际操作)

lombok安装成功后可以从Eclipse根目录下的一个*.ini文件中查看到,文件的名字忘记了。在最后一行会多出一行描述。把这个路径修改成Gradle中lombok的路径就好了了。



版权声明:本文为weixin_44312349原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。