将一些文件资源注入 Spring bean 的好方法是什么?
现在我自动装配 ServletContext 并使用如下所示。在 Spring MVC 中是否有更优雅的方法?
@Controller
public class SomeController {
@Autowired
private ServletContext servletContext;
@RequestMapping("/texts")
public ModelAndView texts() {
InputStream in = servletContext.getResourceAsStream("/WEB-INF/file.txt");
// ...
}
}
像这样的东西:
@Controller
public class SomeController {
private Resource resource;
public void setResource(Resource resource) {
this.resource = resource;
}
@RequestMapping("/texts")
public ModelAndView texts() {
InputStream in = resource.getInputStream();
// ...
in.close();
}
}
在你的bean定义中:
<bean id="..." class="x.y.SomeController">
<property name="resource" value="/WEB-INF/file.txt"/>
</bean>
这将创建一个ServletContextResource
使用/WEB-INF/file.txt
路径,并将其注入到您的控制器中。
请注意,您不能使用组件扫描来检测使用此技术的控制器,您需要一个显式的 bean 定义。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)