为什么我在尝试使用java-cp使用@repository jparepository时得到“nosuchbeandefinitionexception:no qualification bean of type”?

0md85ypi  于 2021-07-13  发布在  Java
关注(0)|答案(0)|浏览(247)

首先,我看了其他答案,并尝试了一切我能找到的似乎没有工作。
我有以下简单的假设

@Repository
public interface ResultsRepository extends JpaRepository<User, String> {}

我有一个像。。。

@Service
public class Service {
    @Autowired
    ResultsRepository repo;
    ....
}

这是从一个 CommandLineRunner ...

@Component
public class OTMRunner implements CommandLineRunner {
    private static final Logger logger = LogManager.getLogger(OTMRunner.class);

    @Autowired
    private Service service;

    @Override
    public void run(String... args) throws Exception {
       ...
    }
}

还有一个应用程序,我正在手动设置扫描包以确保。。。

// Also tried without scan base package.
@SpringBootApplication(
        scanBasePackages = {"my.package.*"}
)
public class Application {
    public static void main(String[] args) {
        new SpringApplicationBuilder(Application.class)
                .web(WebApplicationType.NONE)
                .run(args);
    }
}

我的pom中有以下内容。。。

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

当我使用junit-it时,一切似乎都运行得很好,但是我需要从cmd行运行它,以便向类路径添加ar和属性。。。。

java -cp "JAR_LOCATION;PROPERTIES_LOCATION" my.package.Application PARAM

有几个要点。。。
我不能使用mvn spring-boot:run or java-jar
这不起作用,因为我无法动态添加到类路径。而且我好像也不能通过param。
我也试过了

@EnableJpaRepositories("my.package.repository")
@EntityScan(
        basePackages = {"my.package"}
)

但这也没用。有人能看到我遗漏了什么吗?
更新
我可以确认让它“工作”所需的唯一更改是注解掉@repository,这意味着它与spring连接接口的方式有关。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题