将 Spring + Maven 的 jdbc.properties 配置文件外移
2018-03-05 17:57
561 查看
注意
有些地方是一行的,该行末尾被我用 \ 换行并忽略换行所有空格、换行符。项目结构
Spring 原配置
通常Spring配置文件
applicationContext.xml是如下配置:(缩写代码)
<beans> <!-- 设置属性配置文件 --> <context:property-placeholder location="classpath:jdbc.properties"/> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${mysql.jdbc.driverClassName}"/> <property name="url" value="${mysql.jdbc.url}"/> <property name="username" value="${mysql.jdbc.username}"/> <property name="password" value="${mysql.jdbc.password}"/> </bean> </beans>
jdbc.properties文件配置如下:
mysql.jdbc.driverClassName=com.mysql.jdbc.Driver mysql.jdbc.url=jdbc:mysql://127.0.0.1:3306/cjsd?useUnicode=true& \ characterEncoding=utf-8&characterSetResults=utf-8& \ zeroDateTimeBehavior=convertToNull \ mysql.jdbc.username=root mysql.jdbc.password=admin在这时,我们用 Maven 的 Package打包发现,会将 jdbc.properties 打包到 jar 包中.
Spring优化配置
我们将<context:property-placeholder location="classpath:jdbc.properties"/>改成:
<!-- 定义受环境影响易变的变量 --> <bean class="org.springframework.beans. \ factory.config.PropertyPlaceholderConfigurer"> <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/> <property name="ignoreResourceNotFound" value="true"/> <property name="locations"> <list> <!-- 标准配置 --> <value>classpath:jdbc.properties</value> <value>file:./conf/jdbc.properties</value> </list> </property> </bean>其中,配置了两个资源文件,classpath是用于调试时指定资源文件,file 是发布后的资源文件目录,在执行jar的conf目录.这时Spring会报一个资源文件不能找到的错误,但是Spring资源文件只会加载一次,所以对性能稍有影响问题不大。
Maven 资源文件排除
我们在pom.xml中的
build节点增加如下代码:
<resources> <resource> <directory>src/main/resources</directory> <filtering>false</filtering> <excludes> <exclude>**/jdbc.properties</exclude> <exclude>jdbc.properties</exclude> </excludes> </resource> </resources>其中第一段配置声明:在src/main/resources目录下,仅jdbc.properties文件不是资源文件。在这时,我们发布后发现 jar 包里面的资源文件
jdbc.properties已经不存在。
Maven 资源文件复制
然后我们可以在 plugins 中增加插件,将配置文件jdbc.properties复制到
conf目录下.
<plugin> <artifactId>maven-resources-plugin</artifactId> <version>2.5</version> <executions> <execution> <id>copy-xmls</id> <phase>process-sources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${basedir}/target/conf</outputDirectory> <resources> <resource> <directory>${basedir}/src/main/resources</directory> <includes> <include>**/jdbc.properties</include> </includes> </resource> </resources> </configuration> </execution> </executions> </plugin>这时,我们的文件更改成功,需要注意 Maven 的 Clean .不然可能会存在错误.
相关文章推荐
- Spring+mybatis+maven整合过程加载配置文件jdbc.properties
- springMVC配置文件web.xml与spring-servlet.xml与spring-jdbc.xml与logback.xml与redis.properties与pom.xml
- 可以从Jar外部加载JDBC.properties的Spring-mybatis配置文件
- 可以从Jar外部加载JDBC.properties的Spring-mybatis配置文件
- Spring 使用配置文件读取jdbc.properties
- maven 项目 spring mvc + jdbc 配置文件
- spring配置文件中配置jdbc.properties 文件
- Spring 使用配置文件读取jdbc.properties
- maven项目在idea中spring配置文件引入xml文件和properties文件报错解决方案
- spring的xml配置文件中获取jdbc.properties乱码导致连接数据库失败
- Spring使用配置文件读取jdbc.properties
- Spring/Maven/MyBatis配置文件结合properties文件使用
- For input string: "${JDBC.MinPoolSize}" spring加载jdbc.properties配置文件报错
- spring 配置文件中dbcp连接池,jdbc连接池 引入 配置文件properties,但是不能用$符号引用里面的变量问题
- spring配置文件读取jdbc.properties的配置信息
- Spring使用配置文件读取jdbc.properties
- 在spring配置文件中设置读取jdbc.properties配置文件的时候报错
- spring中jdbc.properties配置文件用法
- Spring/Maven/MyBatis配置文件结合properties文件使用
- 基于maven管理的项目中spring+mybatis配置数据源读取不到properties属性文件的问题