1.常用方式
我们一般使用SpringMvc配置Controller会这样使用,下列表示地址映射url为”/callback”
@RequestMapping("/callback")
public void callback(){
...
}
2.properties方式
但是有的时候我们希望可以使用配置文件中的配置信息作为地址,则可以这样使用,下列表示使用配置文件”callback.url”中的值,地址映射url为”/callback”。
xml中:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="ignoreUnresolvablePlaceholders" value="true"/>
<property name="locations">
<list>
<value>classpath:config/url.properties</value>
</list>
</property>
<property name="fileEncoding" value="utf-8"/>
</bean>
properties中:
callback.url=callback
controller中:
@RequestMapping("${callback.url}")
public void callback(){
...
}
使用这种方式,许多人都会发现加载的配置文件是空的,原因是SpringMvc和Spring的父子容器的问题,子容器可以访问父容器的对象,但是不能访问加载的配置文件。所以,如果想在SpringMVC中使用加载的配置文件,需要在SpringMVC对应的配置文件中添加相应的配置即可。
3.类方法方式
也可以使用一个类的方法作为url地址,下列表示使用配置文件”callback.url”中的值,地址映射url为”/callback”
Class中:
@Component
public class UrlConfig {
public String callbackUrl(){
return "/callback";
}
}
controller中:
@RequestMapping("#{urlConfig.callbackUrl()}")
public void callback(){
...
}
使用这种方式,Class类必须要被容器加载。