問題說明: 我想統一配置 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屬性後,可以通過$符號獲取到需要的值。
詳情請參考文章: