gpt4 book ai didi

java - 将子包移动到新包后@Autowire 不起作用

转载 作者:行者123 更新时间:2023-12-02 13:00:36 25 4
gpt4 key购买 nike

我的 Spring 应用程序中有两个基本包 - com.company.myappmonitorcom.company.myappcommon

com.company.myappmonitor内部,我有子包com.company.myappmonitor.daocom.company.myappmonitor.repository

我使用 Intellij Refactor > Move 将 com.company.myappmonitor.daocom.company.myappmonitor.repository 移动到 com.company.myappcommon - 所以它们现在位于 com.company.myappcommon.daocom.company.myappcommon.repository 。我能够成功构建 Spring 应用程序。

一旦我将这些子包移动到 com.company.myappcommon - 我收到错误消息,表明我的一个 @Autowired 注释不再起作用。错误是

***************************
APPLICATION FAILED TO START
***************************

Description:

Field myVersionsRepository in com.company.myappmonitor.service.myVersionsServiceImpl required a bean of type 'com.company.myappcommon.repository.myVersionsRepository' that could not be found.


Action:

Consider defining a bean of type 'com.company.myappcommon.repository.myVersionsRepository' in your configuration.

@Autowired 在我移动 dao 和存储库子包之前正在工作。

我正在使用 Spring java 配置和注释在 Spring 上下文中设置我的服务。我的 myVersionsRepository 看起来像

package com.company.myappcommon.repository;

import ...

@Transactional
@Repository
public interface myVersionsRepository extends CrudRepository<myVersions, String>, myVersionsRepositoryCustom {

我的 myVersionsServiceImpl 看起来像

package com.company.myappmonitor.service;

import ...

@Service(value = "myVersionsServiceImpl")
public class myVersionsServiceImpl implements myVersionsService {

@Autowired
myVersionsRepository myVersionsRepository;

我的配置类看起来像

package com.company.myappmonitor.config;

import ...

@Configuration
@PropertySource("classpath:application.properties")
@ComponentScan("com.company")
public class AppConfig {

我认为这是我的 @ComponentScan basePackages 的问题。我试过了

@ComponentScan("com.company")
@ComponentScan("com.company.myappmonitor", "com.company.myappcommon")
and
@ComponentScan(basePackages = {"com.company.myappmonitor", "com.company.myappcommon"})

这些都不起作用。有什么想法为什么我会收到此错误吗?谢谢!

最佳答案

尝试将“com.company.myappcommon.*”添加到您的 compontScan 基本包中。如:

@ComponentScan(basePackages={"com.company.myappcommon.*","com.company"})
public class AppConfig{
...
}

关于java - 将子包移动到新包后@Autowire 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44316364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com