开发者社区> 问答> 正文

这个value如何才能达到从配置文件中读取:报错

springMVC,@Requestmapper(value=)这个value如何才能达到从配置文件中读取:报错

1.我试过写在配置文件中读取,但是发现这个value值只规定要final才可以。

2.也试过先读取到再赋值给一个fianl常量但是也不行

3.不管我怎么赋值到这个value这都会提示必须要用常量,有没有遇到同样问题的大神解决了的帮帮我

展开
收起
kun坤 2020-06-06 16:33:56 558 0
1 条回答
写回答
取消 提交回答
  • http://docs.spring.io/spring/docs/3.2.17.RELEASE/spring-framework-reference/htmlsingle/#mvc-ann-requestmapping-placeholders

    从Spring3.2支持,在RequestMapping的value中以${}的方式引用配置文件中的值,也就是说,你可以使用 @RequestMapping("${url.user.edit}.html") 这样配置。

    配置文件通过PropertyPlaceholderConfigurer或<context:property-placeholder>加载

    ######您这边可以写个简单的案例吗。我试了下不行...我想可能我做法错了######

    楼主,你所说的那个我以前也想过,但是貌似从原理上来说就不行啊。

    因为java里面的注解有些是在编译期有效,然后运行期就没有效果了,但是语法检查那些没有仔细检查哪些是编译有效哪些是运行有效的,所以注解里面的值要求在编译的时候是确定的值,那你说的那个就没有办法咯。

    但是有一个折中的办法实现————使用static的的常量。建一个类,准备各种配置的static常量,这样貌似可以在一定程度达到你说的目的。

    ######恩,本来就是用的你说的,我只是想进一步######

    可以看下这个文章,不知道是不是你想要的效果

    http://blog.csdn.net/white__cat/article/details/42103155

    ######回复 @GYW : 我不是要这种哦,这是使用value注解加载配置文件中的值,我必须要有一个常量,但是用fianl修饰的变量就必须要赋值,或则就在构造方法中赋值,但是value注解又不能写在构造方法中。。。######回复 @GYW : 的确是没有办法的,我想可以用静态常量来将就下######回复 @阿信sxq : 直接配置文件的话好像没有办法吧,能想到的只有这个了######回复 @GYW : 不行的,那篇文章的方法是用来把配置文件的内容注入到实例里面。而楼主说的是用配置文件的内容来配置注解######回复 @阿信sxq : 可以通过这种方式把配置实例化为对象,有对象就可以随便用到任何对象了,这样就可以通过这个对象给@Requestmapper中的value赋值了啊
    2020-06-06 16:34:00
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载