项目目录树:

1、spring的依赖包配置
* SPRING_HOME/dist/spring.jar
* SPRING_HOME/lib/log4j/log4j-1.2.14.jar
* SPRING_HOME/lib/jakarta-commons/commons-logging.jar

2、提供spring配置文件applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"> <bean id="userManagerImpl" class="com.donghai.manager.impl.UserManagerImpl">
<!-- 使用set方式注入
<property name="userDao" ref="userDao4Mysql"></property>
-->
<!-- 使用构造方法注入 -->
<constructor-arg index="0" ref="userDao4Oracle" />
</bean> <bean id="userDao4Mysql" class="com.donghai.dao.impl.UserDao4Mysql" />
<bean id="userDao4Oracle" class="com.donghai.dao.impl.UserDao4Oracle" />
</beans>

3、提供log4j.properties配置文件

4.环境中的类文件

UserDao.java

package com.donghai.dao;

public interface UserDao {

    public void addUser(String name, String password);
}

UserDao4Mysql.java

package com.donghai.dao.impl;

import com.donghai.dao.UserDao;

public class UserDao4Mysql implements UserDao {

    @Override
public void addUser(String name, String password) { System.out.println("UserDao-->Mysql: name -->" + name + " password-->" + password);
} }

UserDao4Oracle.java

package com.donghai.dao.impl;

import com.donghai.dao.UserDao;

public class UserDao4Oracle implements UserDao {

    @Override
public void addUser(String name, String password) { System.out.println("UserDao-->Oracle: name -->" + name + " password-->" + password);
} }

UserManager.java

package com.donghai.manager;

public interface UserManager {

    public void addUser(String name, String password);
}

UserManagerImpl.java

package com.donghai.manager.impl;

import com.donghai.dao.UserDao;
import com.donghai.manager.UserManager; public class UserManagerImpl implements UserManager { private UserDao userDao; // public void setUserDao(UserDao userDao) {
// this.userDao = userDao;
// } public UserManagerImpl(UserDao userDao){
this.userDao = userDao;
}
@Override
public void addUser(String name, String password) {
this.userDao.addUser(name, password); } }

Client.java

package com.donghai.client;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; import com.donghai.manager.UserManager; public class Client { public static void main(String[] args){
ApplicationContext acc = new ClassPathXmlApplicationContext("applicationContext.xml");
UserManager um = (UserManager)acc.getBean("userManagerImpl");
um.addUser("daidonghai", "ddpassword");
}
}

5.测试结果

如果想使用UserDao4Mysql,修改ApplicationContext.xml文件中的引用即可

spring学习笔记二:spring使用构造方法注入(set方式注入)的更多相关文章

  1. 【Spring学习笔记-MVC-3】SpringMVC返回Json数据-方式1

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

  2. 【Spring学习笔记-MVC-4】SpringMVC返回Json数据-方式2

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

  3. Spring学习笔记之 Spring IOC容器(二) 之注入参数值,自动组件扫描方式,控制Bean实例化方式,使用注解方式

     本节主要内容:    1. 给MessageBean注入参数值    2. 测试Spring自动组件扫描方式    3. 如何控制ExampleBean实例化方式    4. 使用注解方式重构Jdb ...

  4. spring学习笔记(一) Spring概述

    博主Spring学习笔记整理大部分内容来自Spring实战(第四版)这本书.  强烈建议新手购入或者需要电子书的留言. 在学习Spring之前,我们要了解这么几个问题:什么是Spring?Spring ...

  5. Java架构师之路 Spring学习笔记(一) Spring介绍

    前言 这是一篇原创的Spring学习笔记.主要记录我学习Spring4.0的过程.本人有四年的Java Web开发经验,最近在面试中遇到面试官总会问一些简单但我不会的Java问题,让我觉得有必要重新审 ...

  6. Spring学习笔记二:注入方式

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6774608.html  我们说,IOC的实现方式是依赖注入,也就是把被依赖对象赋值到依赖对象的成员属性.怎么做 ...

  7. Spring学习笔记之 Spring IOC容器(一)之 实例化容器,创建JavaBean对象,控制Bean实例化,setter方式注入,依赖属性的注入,自动装配功能实现自动属性注入

    本节主要内容:       1.实例化Spring容器示例    2.利用Spring容器创建JavaBean对象    3.如何控制Bean实例化    4.利用Spring实现bean属性sett ...

  8. Spring学习笔记(6)——IoC的三种注入方式

    1.接口注入(不推荐) 2.构造器注入(死的应用) 3.getter,setter方式注入(比较常用) Type1 接口注入 我们常常借助接口来将调用者与实现者分离.如: public class C ...

  9. Spring 学习笔记(2) Spring Bean

    一.IoC 容器 IoC 容器是 Spring 的核心,Spring 通过 IoC 容器来管理对象的实例化和初始化(这些对象就是 Spring Bean),以及对象从创建到销毁的整个生命周期.也就是管 ...

随机推荐

  1. Aras Innovator获取项目任务序列号

    //方法名:GetProjectTasksNumber //功能描述:获取项目任务序列号 //原作者:joe //创建时间:20141225 //版权所有(C)JOE.FAN //---------- ...

  2. jsp/servlet编码原理

    转自:http://janwer.iteye.com/blog/150226 首先,说说 JSP/Servlet 中的几个编码的作用 在 JSP/Servlet 中主要有以下几种设置编码的方式: pa ...

  3. php分页代码。

     $result_count=select("hy_news_en",$where,'','','count(1)');     $count=mysql_fetch_array( ...

  4. 使用pyintaller打包python3.6项目,并用c#调用该脚本

    一.pythoninstaller 打包python项目 前提:安装python3.6环境+pycharm 1. 安装pyinstaller pip install pyinstaller 2. cm ...

  5. 吴裕雄--天生自然 PHP开发学习:表单 - 必需字段

    <?php // 定义变量并默认设为空值 $nameErr = $emailErr = $genderErr = $websiteErr = ""; $name = $ema ...

  6. Kattis dragonball1 Dragon Ball I(最短路)

    There is a legendary tale about Dragon Balls on Planet X: if one collects seven Dragon Balls, the Dr ...

  7. JavaSE--对象克隆

    当拷贝一个变量时,原始变量与拷贝变量引用同一个对象,这就是说,改变一个变量所引用的对象将会对另一个变量产生影响. 如果创建一个对象的新的 copy,他的最初状态与 original 一样,但以后将可以 ...

  8. BBS数据库设计

    BBS数据库设计 一.BBS数据库设计 # models.py from django.db import models # Create your models here. from django. ...

  9. 嵌入式开发为什么选择C语言作为开发语言?

    了解嵌入式开发的朋友们都非常的清楚其核心的开发语言为C语言,C语言在嵌入式开发的过程中占有十分重要的地位,可以说两者之间“你中有我,我中有你”.但是有很多人会想,有那么多的开发语言为什么会单单的选择C ...

  10. 利用CSS制作背景变色的横向导航栏

    1.表单 页面如下: <html> <head> <title>注册表单页面</title> </head> <body> &l ...