spring mysql注入_Spring学习笔记(5)----依赖注入的简单实现

Spring的核心机制是依赖注入。依赖注入让bean与bean之间以配置文件组织在一起,而不是以硬编码的方式耦合在一起。依赖注入(Dependency Injection)和控制反转(Inversion of Control)是同一个概念。具体含义是:当某个角色(可能是一个Java实例,调用者)需要另一个角色(另一个Java实例,被调用者)的协助时,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在Spring里,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者实例的工作通常由Spring容器来完成,然后注入调用者,因此也称为依赖注入。管是依赖注入,还是控制反转,都说明Spring采用动态、灵活的方式来管理各种对象。对象与对象之间的具体实现互相透明。

下面通过简单的实例演示依赖注入。

项目中主要包含一下一个文件:

faf22385398a2c3444c7aa225a5d0517.png

UserDAO是一个接口,包含了一个方法:

package com.szy.spring.dao;

public interface UserDAO

{

void show();

}

而UserDAO4MySqlImpl和UserDAO4OracleImpl实现了UserDAO中的方法。

package com.szy.spring.dao;

public class UserDAO4MySqlImpl implements UserDAO

{

public void show()

{

System.out.println("MySqlDAO Implement");

}

}

package com.szy.spring.dao;

public class UserDAO4OracleImpl implements UserDAO

{

public void show()

{

System.out.println("OracleDAO Implement");

}

}

UserService是另外一个包中的接口,

package com.szy.spring.service;

public interface UserService

{

void show();

}

UserServiceImpl实现了这个接口,

package com.szy.spring.service;

import com.szy.spring.dao.UserDAO;

public class UserServiceImpl implements UserService

{

private UserDAO userDAO;

public void show()

{

userDAO.show();

}

public UserDAO getUserDAO()

{

return userDAO;

}

public void setUserDAO(UserDAO userDAO)

{

this.userDAO = userDAO;

}

}

但是在实现这个接口中,调用了UserDAO中的方法。一般情况下我们需要在这里实例化一个UserDAO对象,比如

UserDAO userDAO=new UserDAO4MySqlImpl();

这样的话耦合度就比较高,通过spring我们可以降低耦合度。

在Sping的配置文件中,我们需要这样配置

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

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.5.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd

http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

下面我们测试

ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");

UserService service=(UserService)ctx.getBean("userService");

service.show();

输入内容为

OracleDAO Implement

如果我们想实用Mysql数据库呢?

此时我们只要修改配置文件即可,而不需要修改Java文件。

下载次数: 54

4da47defe745e8fa43796c3e92ea831f.png

大小: 17.8 KB

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2009-11-04 22:06

浏览 2128

评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值