Spring-继承JdbcDaoSupport类后简化配置文件内容

正常情况下,我们在实现类中想要晕用模板类需要在配置文件中注入连接池,再将连接池注入给模板类,然后在实现类中得到。

 1 <!-- 配置C3P0连接池 -->
 2     <bean id = "dataSource" class = "com.mchange.v2.c3p0.ComboPooledDataSource">
 3         <property name="driverClass" value = "com.mysql.jdbc.Driver"/>
 4         <property name="jdbcUrl" value = "jdbc:mysql:///spring_day03"/>
 5         <property name="user" value = "root"/>
 6         <property name="password" value = "123456"/>
 7     </bean>
 8
 9     <!-- 配置JDBC模板类 -->
10     <bean id = "jdbcTemplate" class = "org.springframework.jdbc.core.JdbcTemplate">
11         <property name="dataSource" ref = "dataSource"></property>
12     </bean>
13
14    <!--配置持久层-->
15     <bean id = "accountDao" class = "com.itheima.demo1.AccountDaoImpl" >
16         <property name="jdbcTemplate" ref = "jdbcTemplate"></property>
17     </bean>
1 public void dao{
2
3         private JdbcTemplate jdbcTemplate;
4         public void setJdbcTemplate(JdbcTemplate jdbcTemplate){
5                       this.jdbcTemplate = jdbcTemplate;
6         }
7
8 }       

但是,有一个JdbcDaoSupport类,继承了它之后就可以不用配置模板类,具体看源码

public final void setDataSource(DataSource dataSource){
           if(this.jdbcTemplate == null || dataSource != this.jdbcTemplate.getDataSource())
           this.jdbcTemplate = createJdbcTemplate(dataSource);
          initTemplateConfig();
}

源码中说的很清楚了,如果你没有提供模板类,它会根据连接池(dataSource)来新建一个模板类,这样,我们在配置文件中只需要配置连接池就好了,不用再配置模板类,模板类的工作交给它来做。

<!-- 配置C3P0连接池 -->
    <bean id = "dataSource" class = "com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value = "com.mysql.jdbc.Driver"/>
        <property name="jdbcUrl" value = "jdbc:mysql:///spring_day03"/>
        <property name="user" value = "root"/>
        <property name="password" value = "123456"/>
    </bean>

    <bean id = "accountDao" class = "com.itheima.demo1.AccountDaoImpl" >
        <property name = "dataSource" ref = "dataSource"/>
    </bean>

那么我们怎么用模板类呢,不用担心,父类JdbcDaoSuppor中有相关的获取方法,可以直接拿来用

1 //扣钱
2     @Override
3     public void outMoney(String out, double money) {
4         this.getJdbcTemplate().update(sql, args);
5
6     }

参考 黑马JAVAEE教学视频

时间: 2024-10-14 12:59:17

Spring-继承JdbcDaoSupport类后简化配置文件内容的相关文章

Spring JdbcTemplate+JdbcDaoSupport实例

在Spring JDBC开发中,可以使用 JdbcTemplate 和 JdbcDaoSupport 类来简化整个数据库的操作过程. 在本教程中,我们将重复上一篇文章Spring+JDBC例子,看之前(无JdbcTemplate支持)和之后(含JdbcTemplate的支持)之间不同的例子. 1. 不使用JdbcTemplate示例 如果不用JdbcTemplate,必须创建大量的冗余代码(创建连接,关闭连接,处理异常)中的所有DAO数据库的操作方法 - 插入,更新和删除.它的效率并不是很高,容

Spring利用propertyConfigurer类 读取.property数据库配置文件

1.Spring的框架中,org.springframework.beans.factory.config.PropertyPlaceholderConfigurer类可以将.properties(key/value形式)文件中 一些动态设定的值(value),在XML中替换为占位该键($key$)的值, .properties文件可以根据客户需求,自定义一些相关的参数,这样的设计可提供程序的灵活性. 2.在Spring中,使用PropertyPlaceholderConfigurer可以在XM

继承WechatSupport类spring不能加注入

继承WechatSupport类spring不能加注入: 继承了WechatSupport后的java类中是不能加@Component.@Service.@Controller.@Repository注解的.所以不能直接使用spring依赖注入. 我之前遇到这个问题是另外新建一个类,在新建的类中实现所需要的注入,然后在继承了WechatSupport类的类中调用新建类中的注入属性. (注意:在注入类中的属性要加static,因为在WechatSupport继承类中要静态调用不能使用new.) 版

2015第30周三Spring常用工具类

文件资源操作 文件资源的操作是应用程序中常见的功能,如当上传一个文件后将其保存在特定目录下,从指定地址加载一个配置文件等等.我们一般使用 JDK 的 I/O 处理类完成这些操作,但对于一般的应用程序来说,JDK 的这些操作类所提供的方法过于底层,直接使用它们进行文件操作不但程序编写复杂而且容易产生错误.相比于 JDK 的 File,Spring 的 Resource 接口(资源概念的描述接口)抽象层面更高且涵盖面更广,Spring 提供了许多方便易用的资源操作工具类,它们大大降低资源操作的复杂度

spring启动component-scan类扫描加载过程---源码分析

有朋友最近问到了 spring 加载类的过程,尤其是基于 annotation 注解的加载过程,有些时候如果由于某些系统部署的问题,加载不到,很是不解!就针对这个问题,我这篇博客说说spring启动过程,用源码来说明,这部分内容也会在书中出现,只是表达方式会稍微有些区别,我将使用spring 3.0的版本来说明(虽然版本有所区别,但是变化并不是特别大),另外,这里会从WEB中使用spring开始,中途会穿插自己通过newClassPathXmlApplicationContext 的区别和联系.

spring启动component-scan类扫描加载过程(转)

文章转自 http://www.it165.net/pro/html/201406/15205.html 有朋友最近问到了 spring 加载类的过程,尤其是基于 annotation 注解的加载过程,有些时候如果由于某些系统部署的问题,加载不到,很是不解!就针对这个问题,我这篇博客说说spring启动过程,用源码来说明,这部分内容也会在书中出现,只是表达方式会稍微有些区别,我将使用spring 3.0的版本来说明(虽然版本有所区别,但是变化并不是特别大),另外,这里会从WEB中使用spring

Spring 创建增强类

Spring 使用增强类定义横切逻辑,同时由于 Spring 只支持方法连接点,增强还包括在方法的哪一点加入横切代码的方位信息,所以增强既包含横切逻辑,又包含部分连接点的信息. 1.增强类型 AOP 联盟为增强定义了 org.aopalliance.aop.Advice 接口,Spring 支持5种类型的增强,先来了解一下增强接口继承关系图,如下图所示. 带 <<spring>> 标识的接口是 Spring 所定义的扩展增强接口:带 <<aoppalliance>

【struts2】继承ActionSupport类

在Struts2中,Action可以不实现任何特殊的接口或者继承特殊的类,仅仅是一个POJO(Plain Old Java Object,简单的Java对象)就可以:也可以实现Xwork2中的Action接口:但是由于Xwork的Action接口非常简单,为程序员提供的帮助有限,因此,在实际开发中,会更多的使用继承ActionSupport类来实现Action的方式,如下所示: import com.opensymphony.xwork2.ActionSupport; public class

Spring MVC全局异常后返回JSON异常数据

Spring MVC全局异常后返回JSON异常数据 问题: 当前项目是作为手机APP后台支持,使用spring mvc + mybaits + shiro进行开发.后台服务与手机端交互是发送JSON数据.如果后台发生异常,会直接返回异常页面,显示异常内容,如果是404请求不到资源或者500这类服务器的问题,可能会导致返回404和500异常页面,手机端的处理就非常麻烦,为了解决这个问题,就需要做全局的异常处理. 解决方案: (1)自定义或者使用spring自带的各种异常处理器 例如spring基于