💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
`ResourceLoaderAware`是一个特殊标记接口,实现它,就可以获得`ResourceLoader`的引用. ~~~java public interface ResourceLoaderAware { void setResourceLoader(ResourceLoader resourceLoader); } ~~~ 当一个类实现了`ResourceLoaderAware`并且被部署到一个应用上下文中时(作为一个Spring管理的bean),它被应用上下文当做`ResourceLoaderAware`。 然后,应用程序上下文将调用`setResourceLoader(ResourceLoader)`,将自身作为参数(请记住,Spring中的所有应用程序上下文都实现了`ResourceLoader`接口)。 当然,由于`ApplicationContext`也是一个`ResourceLoader`,bean也可以实现`ApplicationContextAware`接口并直接使用提供的应用程序上下文来加载资源,但通常情况下,最好使用专用的`ResourceLoader`接口如果需要的话。 该代码只会被耦合到资源加载接口,该接口可以被认为是一个工具类接口,而不是整个`Spring ApplicationContext`接口。 从Spring 2.5开始,可以依靠`ResourceLoader`的自动装配来替代实现`ResourceLoaderAware`接口。 构造函数和byType自动装配模式现在可以分别为构造函数参数或setter方法参数提供`ResourceLoader`类型的依赖关系。 为了获得更大的灵活性,请考虑使用新的基于注解的自动装配功能。 在这种情况下,只要所涉及的字段,构造函数或方法携带`@Autowired`注解,`ResourceLoader`就会被自动装入到字段,构造函数参数或方法参数中。