spring IoC的配置和使用

本文介绍了Spring的IoC(控制反转)概念,即依赖注入(DI),并通过一个简单的例子展示了如何在传统方式与使用IoC方式下创建对象。通过引入IoC容器,实现了对象间的解耦,提高了代码的独立性。文章还提到了配置文件的写法,以帮助读者理解Spring框架如何管理对象。
摘要由CSDN通过智能技术生成

什么是控制反转(IoC)?

  • 对于面向对象设计及编程的基本思想,简单来说就是把复杂系统分解成相互合作的对象,这些对象类通过封装以后,内部实现对外部是透明的,从而降低了解决问题的复杂度,而且可以灵活地被重用和扩展。
  • 但是耦合关系会出现在对象与对象之间,也会出现在软件系统的各模块之间,以及软件系统和硬件系统之间。
  • 为了解决对象之间的耦合度过高的问题,IoC理论提出的观点大体是这样的:借助于“第三方”实现具有依赖关系的对象之间的解耦
    想要进一步了解什么是Ioc,请参考这位大牛的文章.

IOC的别名:依赖注入(DI)

  • 2004年,Martin Fowler(马丁·福勒)探讨了同一个问题,既然IoC是控制反转,那么到底是“哪些方面的控制被反转了呢?”,经过详细地分析和论证后,他得出了答案:“获得依赖对象的过程被反转了”。控制被反转之后,获得依赖对象的过程由自身管理变为了由IoC容器主动注入。于是,他给“控制反转”取了一个更合适的名字叫做“依赖注入(Dependency Injection)”。他的这个答案,实际上给出了实现IoC的方法:注入。所谓依赖注入,就是由IoC容器在运行期间,动态地将某种依赖关系注入到对象之中。

  • 所以,依赖注入(DI)和控制反转(IoC)是从不同的角度的描述的同一件事情,就是指通过引入IoC容器,利用依赖关系注入的方式,实现对象之间的解耦。

  • 简单的说就是我需要的对象,不用我来创建出来,让别人的类传对象进来,就比如这样一个方法void demo() 需要一个对象object ,但是这个对象我在方法内部不去new一个新的对象,而是通过写成需要参数对象的形式void demo(Object object)让其他类创建并传进来这个方法里,因为在方法内没有新建类,所以在这个运行方法时也不受这个类的影响。如果一个方法需要多个对象,而每一个对象都不由自己创建,都由其他的类传进来,那么这个方法可以独立运行,这就是依赖注入。
    (因为觉得大牛写的清楚,所以在这里部分引用一下原话)


写一个简单的例子

传统方式使用其他类中的对象

代码结构图(mvc)
在这里插入图片描述


domain.Account

package org.csu.spring.demo.ioc.domain;

public class Account {
   //一个需要使用的类
    private String username;
    private String password;
    private int age;

    public String getUsername() {
   
        return username;
    }

    public void setUsername(String username) {
   
        this.username = username;
    }

    public String getPassword() {
   
        return password;
    }

    public void setPassword(String password) {
   
        this.password = password;
    }

    public int getAge() {
   
        return age;
    }

    public void setAge(int age) {
   
        this.age = age;
    }
}

persistence.AccountDAO

package org.csu.spring.demo.ioc.persistence;

public interface AccountDAO {
   //定义成一个接口类
    void insert();
    void delete();
    void update
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值