结果
已经修改了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的路径就好了了。