如何处理SpringMVC Controller @Value取不到值

问题:

SpringMVC中applicationContext.xml配置了config.properties属性文件,但在Controller中使用@Value取不到属性值

解决方法:

将config.properties再配置到dispatcher-servlet.xml中,原因如下:

  1. 这里spring mvc中使用了两个spring container, 一个是web root context另外一个是servlet context. (spring mvc可以配置多个servlet)

    1. applicationContext.xml defines the beans that are shared among all the servlets. If your application have more than one servlet, then defining the common resources in the applicationContext.xml would make more sense.

    2. dispatcher-servlet.xml defines the beans that are related only to that servlet. Here it is the dispatcher servlet. So, your Spring MVC controllers must be defined in this file.

  2. @Value由BeanPostProcessor处理,BeanPostProcessor的scope是per-container, 也就是在处理@Value过程中只取当前servlet容器的值


你可能感兴趣的:(如何处理SpringMVC Controller @Value取不到值)