【问题标题】:Final variable not injected with @RequiredArgsConstuctor annotation未使用 @RequiredArgsConstuctor 注释注入的最终变量
【发布时间】:2020-09-21 06:14:11
【问题描述】:

我收到一条错误消息,提示“空白字段 'personRepo' 未初始化”

当我使用 @RequiredArgsConstructor 注释 @Service 类时,我不明白为什么 lombok 没有注入我的最终变量“personRepo”。

@RequiredArgsConstructor 说它注入了带有 @NonNull 注释的 final 字段和变量,所以我不明白为什么。

package nr.learning.service;

import java.util.List;


import org.springframework.stereotype.Service;

import lombok.RequiredArgsConstructor;
import nr.learning.domain.Person;
import nr.learning.repository.PersonRepo;

@Service
@RequiredArgsConstructor
public class PersonServiceImpl implements PersonService {
    
    private final PersonRepo personRepo;

    @Override
    public List<Person> getPersonsByFirstName(String firstname) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public List<Person> getPersonsByLastName(String lastname) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public List<Person> getPersonsByFavoriteSoccerTeam(String team) {
        // TODO Auto-generated method stub
        return null;
    }


    
    
}

感谢所有答案和提示!

【问题讨论】:

  • 这很奇怪,它应该可以工作,我也有我刚刚测试过的服务,它与 RequiredArgsConstructor 注释配合得很好。 IDE 是否抛出编译错误?如果您使用的是 IntellijIdea,请尝试使缓存无效并重新启动
  • 我完全同意。这是Eclipse中抛出的编译错误,这是我使用的IDE。我昨天和今天都有问题,我真的不知道为什么.....

标签: java spring-boot dependency-injection lombok


【解决方案1】:

我通过从他们的站点手动下载 Lombok、运行 JAR 文件并重新启动 Eclipse IDE 来解决此问题。

【讨论】:

    猜你喜欢
    • 2020-02-25
    • 2015-03-13
    • 2018-06-26
    • 1970-01-01
    • 2021-01-05
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    相关资源
    最近更新 更多