【问题标题】:Instantiate Spring bean with InputStream constructor argument使用 InputStream 构造函数参数实例化 Spring bean
【发布时间】:2016-08-31 15:07:55
【问题描述】:

我正在尝试通过以下方式实例化一个 Spring bean:

<bean id="myParser class="com.parser.MyParser">
    <constructor-arg type="java.io.InputStream"
        value="classpath:regex.yaml" />
</bean>

MyParser 定义了以下构造函数:

 public MyParser() throws IOException {
    this(MyParser.class.getResourceAsStream(DEFAULT_YAML_PATH));
  }

  public MyParser(InputStream regexYaml) {
    initialize(regexYaml);
  }

但在运行时我收到一个错误,即无法创建 bean,因为找不到匹配的构造函数:

Could not resolve matching constructor (hint: specify index/type/name arguments for simple parameters to avoid type ambiguities)

【问题讨论】:

  • 你对MyParser有控制权吗?
  • 不,这是一个外部jar文件。

标签: java spring inputstream


【解决方案1】:

发现错误,显然如果文件不在类路径中,则无法实例化InputStream,会导致上述错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 1970-01-01
    • 2015-03-19
    • 2017-10-27
    • 1970-01-01
    • 2021-08-17
    相关资源
    最近更新 更多