applicationContext.xml中的使用${}是代表什么意思?

例如:在applicationContext.xml文件中配置数据连接池

applicationContext.xml中的使用${}是代表什么意思?

applicationContext.xml中的使用${}是代表什么意思?

代码中被标识的部分就是使用了${}的功能。它相当于Java中调用了变量名一样。

在本例子中,这些变量来自另外一个properties文件。该properties为: jdbc.properties(主要用来存放JDBC连接数据库的一些配置,方便下次修改,而不需要在applicationContext.xml文件中修改。)

applicationContext.xml中的使用${}是代表什么意思?

${jdbcUrl} 中的jdbcUrl 指的就是jdbc.properties中jdbcUrl。

applicationContext.xml中的使用${}是代表什么意思?

那么该如何引入properties文件呢?在哪里进行引入?

一般情况下,如果你只有一个applicationContext.xml配置文件而已的话,那么只需要在applicationContext.xml文件中添加一行:

<!-- 导入外部的properties文件 --><context:property-placeholder location="classpath:jdbc.properties"/>  

其中:location属性是指该文件的位置。

如果是在src目录下的话,该位置为:classpath:文件名.后缀

如果是在/WEB-INF/目录下的话,该位置为: /WEB-INF/文件名.后缀。

但是要注意,不要放错位置了,<context:property-placeholder>不能发到<bean></bean>标签里面去。否则会报错;

 

说说:<context:property-placeholder/>的配置,内容好像是来自开涛博客,具体链接不知道了。

<context:property-placeholder/>配置如下:

applicationContext.xml中的使用${}是代表什么意思?

location:表示属性文件位置,多个之间通过如逗号/分号等分隔;

file-encoding:文件编码;

ignore-resource-not-found:如果属性文件找不到,是否忽略,默认false,即不忽略,找不到将抛出异常

ignore-unresolvable:是否忽略解析不到的属性,如果不忽略,找不到将抛出异常

properties-ref:本地java.util.Properties配置

local-override:是否本地覆盖模式,即如果true,那么properties-ref的属性将覆盖location加载的属性

system-properties-mode:系统属性模式,ENVIRONMENT(默认),NEVER,OVERRIDE

   ENVIRONMENT:将使用Spring 3.1提供的PropertySourcesPlaceholderConfigurer,其他情况使用Spring 3.1之前的PropertyPlaceholderConfigurer

       如果是本地覆盖模式:那么查找顺序是:properties-ref、location、environment,否则正好反过来;

   OVERRIDE: PropertyPlaceholderConfigurer使用,因为在spring 3.1之前版本是没有Enviroment的,所以OVERRIDE是spring 3.1之前版本的Environment

       如果是本地覆盖模式:那么查找顺序是:properties-ref、location、System.getProperty(),System.getenv(),否则正好反过来; 

   NEVER:只查找properties-ref、location;

order:当配置多个<context:property-placeholder/>时的查找顺序,关于顺序问题请参考:http://www.iteye.com/topic/1131688 

来源:悦码,本文观点不代表自营销立场,网址:https://www.zyxiao.com/p/87646

发表评论

电子邮件地址不会被公开。 必填项已用*标注

侵权联系
分享本页
返回顶部