gpt4 book ai didi

java - 抛出 NoSuchBeanDefinitionException

转载 作者:行者123 更新时间:2023-11-30 01:45:25 29 4
gpt4 key购买 nike

所以我尝试使用在另一个类中生成的 bean 以在主应用程序中使用

    package com.simon.spring.basics.properties;

import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;

import org.springframework.stereotype.Component;

@Component
public class SomeExternalService {

@Value("${external.service.url}")

private String url;

public String returnServiceURL(){
return url;
}
}

主要应用程序在这里:

    package com.simon.spring.basics.springin5steps;

import com.simon.spring.basics.properties.SomeExternalService;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

@Configuration
@SpringBootApplication
//@PropertySource("classpath:application.properties")
@ComponentScan()
public class SpringIn5StepsPropertiesApplication {

public static void main(String[] args) {

ApplicationContext applicationContext =
SpringApplication.run(SpringIn5StepsPropertiesApplication.class, args);
SomeExternalService service = applicationContext.getBean(SomeExternalService.class);
System.out.println(service);

}


}

所以基本上线程“main”中的异常org.springframework.beans.factory.NoSuchBeanDefinitionException:没有抛出类型为“com.simon.spring.basics.properties.SomeExternalService”的合格bean。我可以做什么来修复此错误并避免以后出现同样的问题

最佳答案

SpringIn5StepsPropertiesApplication 放入包根目录中;

package com.simon.spring.basics

同时删除不必要的@ComponentScan()

<小时/>

@SpringBootApplication 会自动触发从主类位置(即 com.simon.spring.basics)开始的所有包下的组件扫描,所以你的组件在 com.simon.spring.basics.properties 可以获取。

否则它将尝试在com.simon.spring.basics.springin5steps下查找bean,但无法找到SomeExternalService

<小时/>

如果移动主类不是一个选项,那么您可以添加其他包,例如;

@SpringBootApplication(scanBasePackageClasses = {com.simon.spring.basics.properties.SomeExternalService.class})

关于java - 抛出 NoSuchBeanDefinitionException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58215091/

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