有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java自动连线无法将服务加载到类中

在我的服务上操作时,我收到一个空指针异常,因为我的服务没有自动连接到类中。我已经实现了这个类的存储库和服务,与这个应用程序中的其他存储库和服务完全相同,我以前没有遇到过这个问题。事实上,该类确实警告了Autowire的问题,但我不确定如何修复这些问题:

Autowired members must be defined in valid spring bean

同样,这是设置与其他类相同,我没有这个问题。在服务类中,它抱怨存储库不能自动连接到构造函数中,因为存在多个相同类型的bean。我的另一个服务类也显示了此警告,但在自动连接到类并对其进行操作时没有问题。定义如下,请询问任何其他有帮助的上下文

//TransactionCategoryRepository.java
@Repository("transactionCategoryRepository")
public interface TransactionCategoryRepository extends 
CrudRepository<TransactionCategory, Integer> {
}

--

//TransactionCategoryService.java
@Service("transactionCategoryService")
public class TransactionCategoryService {

private TransactionCategoryRepository transactionCategoryRepository;

@Autowired
public TransactionCategoryService(TransactionCategoryRepository repository) {
    this.transactionCategoryRepository = repository;
}

public void saveTransactionCategory(TransactionCategory transactionCategory) {
    transactionCategoryRepository.save(transactionCategory);
}
}

--

//Utilities.java
public class PlaidUtilities {

private Logger logger = 
LoggerFactory.getLogger(PlaidUtilities.class.getSimpleName());

private PlaidClient mPlaidClient;

@Autowired
TransactionCategoryService mTransactionCategoryService;
...

TransactionCategoryService中的respository会引发多个bean警告。java和Autowired定义警告在实用程序中抛出。JAVA中断空指针异常错误稍后在实用程序中发生。在mTransactionCategoryService上操作时使用java


共 (1) 个答案

  1. # 1 楼答案

    除非您需要它们,否则从@Service@Repository注释中去掉名称。我发现这只会让事情变得尴尬

    另一个可能是错误的,你没有扫描那些包。您可以通过将引导应用程序属性更改为@SpringBootApplication(scanBasePackages={"your.package.here"})来在主类中更改该属性

    看一看here at this question他们在哪里详述了它