2014-10-20 86 views
1

我想使用spring注解将FileInputStream作为构造函数参数注入。 可以说我有下面的类(以前做的构造ARG注射)Spring DI:使用注释在构造函数中注入FileInputStream

@Component 
public class MyClass{ 

    private BlaClass xy; 


    public MyClass(InputStream is) 
    { 
    this.xy = new BlaClass(is); 
    } 

} 

所以现在我的问题是,如果我可以使用@Value注解或类似一个为了注入输入流?应该是这样的:

@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配置,但是我想因为它的更简洁使用注释做的事。

+3

您不应该为类路径中的某个资源获取'FileInputStream'。你想做什么? – 2014-10-20 15:46:33

+0

你是对的Sotirios。其实我想获取资源,然后执行“resource.getInputStream()”。 – Horace 2014-10-20 15:57:06

回答

2

可以使用Resource像这样

@Autowired 
public MyClass(@Value("classpath:path/to/a/file") Resource resource) { 
    // access to resource input stream 
} 

注意,@Autowired要求,以纪念此构造为一个使用。否则,Spring会查找无参数的构造函数。

+0

Thx。这是我正在寻找的。对不起,我以错误的方式提问;-) – Horace 2014-10-20 16:24:12