鉴于以下情况:
public class ResourceOne implements AutoCloseable {...}
在(spring)xml配置中实例化了一个
ResourceOne
实例。由于需要在try块中实例化资源,该对象(自动连线时)应如何与“try with resources语句”一起使用?
一种方法可能是使用引用(见下文),但这并不是真正的最佳方法。
public class Test {
@Autowired
ResourceOne test;
//...
public void execute()
{
//...
try (ResourceOne localTest = test)
{
localTest.init()
localTest.readLine();
//...
}
}
最佳答案
不过,我认为你所采取的方法似乎是唯一的办法。
try (ResourceOne localTest = test)
{
localTest.init()
localTest.readLine();
//...
}
我假设您已经用prototype作用域声明了您的autowired资源。
@Bean
@Scope(value="prototype", proxyMode=ScopedProxyMode.DEFAULT)
public Resource1 resource1() {
return new Resource1();
}