项目结构如下:

aaarticlea/png;base64,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" alt="" />

场景如下:spring整合数据库。

在applicationontext.xml中配置如下:

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.1.xsd "> <!-- 加载配置文件 -->
<context:property-placeholder location="classpath:db.properties"/> <!-- 数据库连接池 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" >
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<!-- 开发阶段建议最大连接数据尽量少,够用即可 -->
<property name="maxActive" value="${jdbc.maxActive}"/>
<property name="maxIdle" value="${jdbc.maxIdle}"/>
</bean> <!-- 事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!-- 数据源 -->
<property name="dataSource" ref="dataSource"/>
</bean> <!-- 通知 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!-- 传播行为 -->
<tx:method name="save*" propagation="REQUIRED" rollback-for="java.lang.Exception"/>
<tx:method name="insert*" propagation="REQUIRED" rollback-for="java.lang.Exception"/>
<tx:method name="delete*" propagation="REQUIRED" rollback-for="java.lang.Exception"/>
<tx:method name="update*" propagation="REQUIRED" rollback-for="java.lang.Exception"/>
<tx:method name="find*" propagation="SUPPORTS" read-only="true"/>
<tx:method name="get*" propagation="SUPPORTS" read-only="true"/>
</tx:attributes>
</tx:advice> <!-- 切面 -->
<aop:config proxy-target-class="true">
<aop:advisor advice-ref="txAdvice"
pointcut="execution(* yycg.*.service.impl.*.*(..))"/>
</aop:config>
</beans>

上面中的

<!-- 加载配置文件 -->
<context:property-placeholder location="classpath:db.properties"/>很奇怪,这里的db.properties明明在src/main/resources目录下。
为什么这里直接写classpath就可以了。 原因如下:
你仔细看config的图标。这个图标表示该目录是源文件夹。编译后源文件夹的非java文件会被copy到classes目录。 你可以右键 选择 build path ,然后可以把一些目录加入成为源文件夹,或者移出源文件夹。
无论有几个源文件夹,最后都会被加到classes目录里。 所以我们打开项目的classes目录:

aaarticlea/png;base64,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" alt="" />

就可以看到这么文件。

003医疗项目-关于<context:property-placeholder location="classpath:db.properties"/>的问题的更多相关文章

  1. 应用中有多个Spring Property PlaceHolder导致@Value只能获取到默认值

    背景 工作中负责的一套计费系统需要开发一个新通知功能,在扣费等事件触发后发送MQ,然后消费MQ发送邮件或短信通知给客户.因为有多套环境,测试时需要知道是从哪套环境发出的邮件,又不想维护多套通知模板,因 ...

  2. Spring 梳理-使用<context:property-placeholder>标签导入多个properties文件

    使用<context:property-placeholder>标签导入多个properties文件 2017年12月20日 10:10:36 sf_climber 阅读数:5830更多 ...

  3. Spring中 <context:property-placeholder 的使用与解析 .properties 配置文件的加载

    转: Spring中property-placeholder的使用与解析 Spring中property-placeholder的使用与解析 我们在基于spring开发应用的时候,一般都会将数据库的配 ...

  4. spring 使用 context:property-placeholder 加载 多个 properties

    一般使用PropertyPlaceholderConfigurer来替换占位符,例如: <bean class="org.springframework.beans.factory.c ...

  5. java.lang.IllegalStateException: Failed to load property source from location 'classpath:/application-dev.yml'

    如果你的项目没有配置错误,配置文件名称也正常,还出现这个问题,那一定是你的yml文件编码的问题 先附上一张项目架构图 当我启动服务器寻找配置文件的时候,服务器提示这样的错误信息 java.lang.I ...

  6. spring in action 学习十一:property placeholder Xml方式实现避免注入外部属性硬代码化

    这里用到了placeholder特有的一个语言或者将表达形式:${},spring in action 描述如下: In spring wiring ,placeholder values are p ...

  7. 003商城项目:数据库的创建以及ssm框架的整合

    我们创建一个数据库.如下: 然后开始整合框架:  先给出整合框架的思路: 我们的Dao层用的是Mybatis,其实Mybatis与Spring整合要做的就是把他的数据库连接这部分全部交给Spring来 ...

  8. 044医疗项目-模块四:采购单模块—采购单保存(Dao,Service,Action三层)

    我们上上一篇文章(042医疗项目-模块四:采购单模块-采购单明细添加查询,并且把数据添加到数据库中)做的工作是把数据插入到了数据库,我们这篇文章做的是042医疗项目-模块四:采购单模块-采购单明细添加 ...

  9. 005医疗项目-模块一:用户的查找:1.用户表查询的sql语句

    这是医疗项目的第一个模块:做一个用户的查询,可以根据用户的账号,用户的名称,单位的名称,用户的类型去查询.要求效果如下:

随机推荐

  1. SAP中给当前指定的活动用户发系统信息的函数

    函数名:TH_POPUP 输入集团.当前在线用户.Message即可

  2. Oracle Spatial中SDO_Geometry详细说明[转]

    在ArcGIS中通过SDE存储空间数据到Oracle中有多种存储方式,分别有:二进制Long Raw .ESRI的ST_Geometry以及基于Oracle Spatial的SDO_Geometry等 ...

  3. NLog 自定义字段 写入 oracle

    1.通过Nuget安装NLog 下载,简单入门 请参照 我刚才转的几篇文章,下面我直接贴代码 2.建表语句 create table TBL_LOG ( id ) not null, appname ...

  4. 【读书笔记】iOS-读取文本文件

    一,文本文件的内容. 二,工程目录 三,ViewController.m - (void)viewDidLoad { [super viewDidLoad]; // Do any additional ...

  5. IOS酷炫的下拉刷新链接收集

    https://github.com/MartinRGB/Replace-iOS https://github.com/coolbeet/CBStoreHouseRefreshControl http ...

  6. 代码校验工具 SublimeLinter 的安装与使用

    SublimeLinter 是 Sublime 的插件,它的作用是检查代码语法是否有错误,并提示.习惯了 IDE 下写代码的人一定需要一款在 Sublime 上类似的语法检查工具.下面我们开始. 安装 ...

  7. sql2008备份集中的数据库备份与现有的xxx数据库不同解决方法

    原文链接:http://wncbl.cn/posts/1993c22/ 问题描述 今天在配置一个 ASP 站点时,导入以前的数据库备份文件,提示:sql2008备份集中的数据库备份与现有的xxx数据库 ...

  8. Cron 表达式详解和案例

    1. cron表达式格式: {秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)} 2. cron表达式各占位符解释: {秒数} ==> 允许值范围: 0~59 ,不允许 ...

  9. linux 后台运行进程 fg bg ctrl+z nohup

    fg.bg.jobs.&.nohup.ctrl+z.ctrl+c 命令 一.& 加在一个命令的最后,可以把这个命令放到后台执行,如 watch -n 10 sh test.sh &am ...

  10. Effective Java 04 Enforce noninstantiability with a private constructor

    A class can be made noninstantiable by including a private constructor. // Noninstantiable utility c ...