spring学习笔记二:spring使用构造方法注入(set方式注入)
项目目录树:

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方式注入)的更多相关文章
- 【Spring学习笔记-MVC-3】SpringMVC返回Json数据-方式1
<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...
- 【Spring学习笔记-MVC-4】SpringMVC返回Json数据-方式2
<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...
- Spring学习笔记之 Spring IOC容器(二) 之注入参数值,自动组件扫描方式,控制Bean实例化方式,使用注解方式
本节主要内容: 1. 给MessageBean注入参数值 2. 测试Spring自动组件扫描方式 3. 如何控制ExampleBean实例化方式 4. 使用注解方式重构Jdb ...
- spring学习笔记(一) Spring概述
博主Spring学习笔记整理大部分内容来自Spring实战(第四版)这本书. 强烈建议新手购入或者需要电子书的留言. 在学习Spring之前,我们要了解这么几个问题:什么是Spring?Spring ...
- Java架构师之路 Spring学习笔记(一) Spring介绍
前言 这是一篇原创的Spring学习笔记.主要记录我学习Spring4.0的过程.本人有四年的Java Web开发经验,最近在面试中遇到面试官总会问一些简单但我不会的Java问题,让我觉得有必要重新审 ...
- Spring学习笔记二:注入方式
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6774608.html 我们说,IOC的实现方式是依赖注入,也就是把被依赖对象赋值到依赖对象的成员属性.怎么做 ...
- Spring学习笔记之 Spring IOC容器(一)之 实例化容器,创建JavaBean对象,控制Bean实例化,setter方式注入,依赖属性的注入,自动装配功能实现自动属性注入
本节主要内容: 1.实例化Spring容器示例 2.利用Spring容器创建JavaBean对象 3.如何控制Bean实例化 4.利用Spring实现bean属性sett ...
- Spring学习笔记(6)——IoC的三种注入方式
1.接口注入(不推荐) 2.构造器注入(死的应用) 3.getter,setter方式注入(比较常用) Type1 接口注入 我们常常借助接口来将调用者与实现者分离.如: public class C ...
- Spring 学习笔记(2) Spring Bean
一.IoC 容器 IoC 容器是 Spring 的核心,Spring 通过 IoC 容器来管理对象的实例化和初始化(这些对象就是 Spring Bean),以及对象从创建到销毁的整个生命周期.也就是管 ...
随机推荐
- [原]排错实战——通过对比分析sysinternals事件修复程序功能异常
原调试debug排错troubleshootprocess monitorsysinternals 缘起 最近,我们程序的某个功能在一台机器上不正常,但是在另外一台机器上却是正常的.代码是同一份,vs ...
- Half of UK 10-year-olds own a smartphone
1. preposition n. 介词 pronoun n. 代词 2. despite /preposition. (1) used to say that something happens ...
- JQ和JS的等价代码
JQ与JS等价代码 选择器 //jquery var els = $(".el"); //原生方法 var els = document.querySelectorAll(&q ...
- 网络流dinic板子
bool bfs(){ memset(deep,0,sizeof(deep)); queue<int>que; que.push(s); deep[s]=1; while(!que.emp ...
- php中的几种四舍五入取整、向上取整、向下取整、小数截取方法
echo intval(4.5);echo "<br />";//直接取整,舍弃小数保留整数echo round(4.5);echo "<br /> ...
- Apsara Clouder专项技能认证:实现调用API接口
一.API 简介 1.API 的概念 API(Application Programming Interface应用程序编程接口)是一些预定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访 ...
- The Maximum Unreachable Node Set
题目描述 In this problem, we would like to talk about unreachable sets of a directed acyclic graph G = ( ...
- git理论知识
1.Git 有三种状态,你的文件可能处于其中之一:已提交(committed).已修改(modified)和已暂存(staged) 由此引入 Git 项目的三个工作区域的概念:Git 仓库.工作目录以 ...
- redis中间件
redis的集群:集群策略:主从复制(从库从主库同步获取数据,本身不提供服务)哨兵(监控主库和从库,当主库挂的时候自动把从库选一个切换为主库,主库存放的是全量数据)集群参考:https://blog. ...
- Exchange Online 权限管理
在Exchange管理中心,通过权限管理可为管理员.普通用户以及Outlook Web App分别制定不同的权限和策略,以满足精细化分工或差异化角色的需要. 一.管理角色组 组织管理者使用角色组来向管 ...