我想使用 spring 注释注入(inject)一个 FileInputStream
作为构造函数参数。
假设我有以下类(在进行构造函数参数注入(inject)之前)
@Component
public class MyClass{
private BlaClass xy;
public MyClass(InputStream is)
{
this.xy = new BlaClass(is);
}
}
所以现在我的问题是我是否可以使用 @Value
注释或类似的注释来注入(inject)输入流?应该是这样的:
@Component
public class MyClass{
private BlaClassTakingAnInputStream xy;
//this is of course not correct
public MyClass(@Value("classpath:path/to/a/file") is)
{
this.xy = new BlaClassTakingAnInputStream(is);
}
}
p.s.:我知道它如何使用 xml 配置工作,但我想使用注释来完成它,因为它不太冗长。
最佳答案
您可以像这样使用资源
@Autowired
public MyClass(@Value("classpath:path/to/a/file") Resource resource) {
// access to resource input stream
}
请注意,需要 @Autowired
将此构造函数标记为要使用的构造函数。否则,Spring 将寻找无参数构造函数。
关于java - Spring DI : Injection of FileInputStream in Constructor using annotation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26469679/