繁体   English   中英

spring 中没有“java.lang.string”类型的合格 bean 可用错误

[英]no qualifying bean of type 'java.lang.string' available error in spring

我在 spring 中没有收到类型为“java.lang.string”的合格 bean 可用错误,在以下代码中出现 NoSuchBeanDefinitionException。 我有如下所示的 Test.java,我试图从 application.yaml 中读取值。

@Configuration
public class Test {

    @Value("${value}")
    private String val;
    
    @Bean
    public Vehicle getVehicle() {
    return new Vehicle(val);
    }
}

在 Vehicle.java 中

@AllArgConstructor
@Getter
@Setter
public class Vehicle {

private String model;

}

我有另一个类 Driver.java,我必须从其中通过构造函数注入 Vehicle 对象。

@Service
public class Driver {

private Vehicle v;

@Autowired
public Driver(Vehicle v) {
  this.v = v;
}

application.yaml 看起来像这样。

value: FORTUNE
price: 10000

你可以尝试一种不同的方式来注入它:

您不需要创建一个配置类,在其中将属性作为字段注入,然后创建 Vehicle 的 bean。 您可以在 Vehicle 中使用构造函数注入,并使 Vehicle 成为带有@Component注释的组件;

@Getter
@Setter
@Component
public class Vehicle {
    private String model;
    
    public Vehicle(@Value("${value}") String model) {
        this.model = model
    }
}

我个人更喜欢这种方式,我希望它对你有用!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM