Java 在构造函数中连接bean和值

Java 在构造函数中连接bean和值,java,spring,autowired,spring-ioc,Java,Spring,Autowired,Spring Ioc,我用的是弹簧。我有这门课: @Service public class FooService { @Value("${xml.file.path}") String xmlFilePath; @Autowired ResourceLoader ctx; } 我真的很讨厌连接属性,更喜欢使用构造函数,但我想到的任何东西都会得到一个奇怪的“类FooService中的构造函数FooService不能应用于给定的类型”。在这种情况下是否可以使用结构布线?这应该可以:

我用的是弹簧。我有这门课:

@Service
public class FooService {

    @Value("${xml.file.path}")
    String xmlFilePath;

    @Autowired
    ResourceLoader ctx;
}
我真的很讨厌连接属性,更喜欢使用构造函数,但我想到的任何东西都会得到一个奇怪的“类FooService中的构造函数FooService不能应用于给定的类型”。在这种情况下是否可以使用结构布线?

这应该可以:

@Service
public class FooService {
    private String xmlFilePath;
    private ResourceLoader ctx;

    @Autowired
    public FooService(@Value("${xml.file.path}") String xmlFilePath, ResourceLoader ctx) {
        super();
        this.xmlFilePath = xmlFilePath;
        this.ctx = ctx;
    }
}

就我而言,这太愚蠢了,现在我意识到问题在于测试被破坏了,因为它使用了默认构造函数。奇怪的是,那个信息是误导!