SpringMVC 4.2 中 使用 ${adminPath} 無法解析成properties文件中的值


問題說明:  我想統一配置 adminPath,以後方便進行權限配置,所以,想在@requestMapping 後面映射成 ${adminPath},但是此處一直獲取不到值。

**
 * 用戶Controller
 * @author ThinkGem
 * @version 2013-8-29
 */
@Controller
@RequestMapping(value = "${adminPath}/sys/user")
public class UserController extends BaseController {
	@Autowired
	private UserService userService;
	@Value("${adminPath}")
	private String password;
	@ResponseBody
	@RequiresPermissions("sys:user:view")
	@RequestMapping(value = {"listData"})
	public Page<User> listData(User user, HttpServletRequest request, HttpServletResponse response, Model model) {
		Page<User> page = userService.findUser(new Page<User>(request, response), user);
		
		System.out.println("password爲:"+password);
		return page;
	}
}

已知:  @Value 註解可以獲取到properties文件中的值。

若添加配置<util:properties> 標籤,可通過@Value("#{APP_PROP['jdbc.driver']}")取到值。此時,無法仍無法通過@Value("${adminPath}")取到值。

<!-- 加載應用屬性實例,可通過  @Value("#{APP_PROP['jdbc.driver']}") String jdbcDriver 方式引用 -->
    <util:properties id="APP_PROP" location="classpath*:test01.properties" local-override="true"/>
本人想通過添加以下配置,通過$符取到properties文件中的值。

<!-- 加載配置屬性文件 -->
	<context:property-placeholder ignore-unresolvable="true" location="classpath*:test01.properties" />
需要注意:這種方式下,如果你在spring-mvc.xml文件中有如下配置,則一定不能缺少下面的紅色部分:

context:component-scan標籤的use-default-filters屬性的作用以及原理分析

<!-- 配置組件掃描,springmvc容器中只掃描Controller註解 -->
<context:component-scan base-package="com.hafiz.www" use-default-filters="false">
    <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
本人添加完use-default-filters屬性後,可以通過$符號獲取到需要的值。

詳情請參考文章:  

五種方式讓你在java中讀取properties文件內容不再是難題



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章