自动装配无法将服务加载到课堂中

时间:2018-01-14 22:42:55

标签: java spring spring-boot autowired

我在服务上运行时收到空指针异常,因为我的服务没有被自动连接到类中。我已经实现了这个类的存储库和服务与此应用程序中的其他人完全相同,我之前没有遇到过这个问题。该课确实警告过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.java中的respository上抛出多个bean警告,并在Utilities.java中抛出自动定义警告。当在mTransactionCategoryService上运行时,Utilities.java中会出现中断空指针异常错误。

1 个答案:

答案 0 :(得分:0)

除非您需要,否则请从@Service@Repository注释中取出名称。我发现它只是让事情变得尴尬。

另一件可能错误的事情是你没有扫描这些包裹。您可以通过将引导应用程序属性更改为@SpringBootApplication(scanBasePackages={"your.package.here"})

来更改主类中的更改

查看here at this question详细信息