spring容器问题:解决图片服务器地址无法解析

  项目中将图片服务器分离出来,相关配置单独配置到一个 properties 文件中,并使用spring管理该配置文件,如图:

spring容器问题:解决图片服务器地址无法解析_第1张图片

使用的是Nginx 来负责图片服务的处理,关键配置如下:

spring容器问题:解决图片服务器地址无法解析_第2张图片

启动项目进行图片上传的时候却死活找不到配置文件中的地址

如上是关键代码,properties 是spring管理的,并在控制层进行注入操作,图片无法上传获取不到地址。查错许久后将该 properties  文件交给springMVC管理,问题意外解决。可以确定问题的原因是spring的父子容器问题。

spring一共有2个容器

    启动tomcat后启动两个spring容器:

    1、spring通过web.xml来启动的。(父)

    2、springMVC来启动的。(子)

关系与限制:

    1、子容器能访问父容器的资源。(bean)

    2、父容器不能访问子容器的资源

也就是说,我们的控制层是springMVC 来处理,而service层是spring来管理的,而如果 properties  文件是spring管理,那么因为容器限制,在控制层注入 properties  文件是无法成功的,而放到springMVC来管理虽然可以成功,但是却有代码重用性问题,解决方案,在service层建立一个类,将属性注入放到这里来处理

spring容器问题:解决图片服务器地址无法解析_第3张图片

在控制层将这个类注入

spring容器问题:解决图片服务器地址无法解析_第4张图片

间接实现了父容器无法访问子容器资源的问题。

希望对大家有帮助,如有不对之处,还请指正

 

你可能感兴趣的:(spring容器,父容器访问子容器)