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

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

183513_HmAU_2652412.png

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

183801_ptcH_2652412.png

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

184835_X0HV_2652412.png

184859_ZWzo_2652412.png

如上是关键代码,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层建立一个类,将属性注入放到这里来处理

190023_mYDV_2652412.png

在控制层将这个类注入

190125_kWa5_2652412.png

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

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

 

转载于:https://my.oschina.net/sprouting/blog/674782

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值