Spring:为类路径资源注入URL

我想以一种不会在Bean中创建对Spring的依赖的方式注入类路径资源的URL。 意思是,bean不应该使用Spring的接口/类。 我怎样才能做到这一点?

Spring能够隐式地将classpath:...值转换为java.net.URL

 public class Foo { private URL url; ... } 

    

从axtavt的回答开始,如果你允许自己在bean中使用Spring注释,你可以这样做:

 @Value("classpath:myClasspathLocation") private URL url; 

通过扩展org.springframework.core.io.ClassPathResource来创建自己的spring资源实现,如MyClasspathResource扩展ClassPathResource并将此类型注入到bean中。 像这样,你没有任何依赖spring,以后可以用其他东西重新实现你的资源。

        

几乎没有任何非弹簧相当于Spring的资源概念 。

例如,您可以使用Guava的InputSupplier作为替代方案,但如果您这样做,则缺少强大的标准弹簧function。