码迷,mamicode.com
首页 > 编程语言 > 详细

Spring的依赖注入

时间:2019-11-17 01:28:42      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:其他   获取   业务   count()   数据   ice   程序   作用   管理   

依赖注入

  Dependency InjectionIoc的作用:降低程序间的耦合(依赖关系)

依赖关系的管理:

  以后都交给Spring来维护在当前类中需要用到其他类的对象,由Spring为我们提供,我们只需要在配置文件中说明依赖关系的维护就是依赖注入

依赖注入能注入的数据:有三类

  基本数据类型和String

  其他bean类型(在配置文件中或者注解配置过的bean)

  复杂类型/集合类型

注入的方式:

  第一种:使用构造函数提供

  第二种:使用set方法提供

  第三种:使用注解提供

构造函数注入

  使用的标签:constructor-arg

  标签中的属性:

  type:注入数据的数据类型,该数据类型也是构造函数中某个或某些参数的类型

  index:用于指定要注入的数据给构造函数中指定索引位置参数赋值。索引位置从0开始。

  name:用于给构造函数指定名称的参数赋值

  value:用于提供基本类型和String类型的数据

  ref:用于指定其他的bean类型数据。它指的就是在Spring容器中出现过的bean对象

 

  优势:在获取Bean对象时,注入的数据是必须的操作,否则无法创建Bean。

  弊端:改变bean对象的实例化的方式,使我们在创建对象的时候,如果用不到这些数据,也必须提供。

<bean id="accountService" class="com.xuefei.service.impl.AccountServiceImpl">
        <constructor-arg name="name" value="小李"></constructor-arg>
        <constructor-arg name="age" value="20"></constructor-arg>
        <constructor-arg name="date" ref="now"></constructor-arg>
    </bean>
    <bean id="now" class="java.util.Date"></bean>
package com.xuefei.service.impl;

import com.xuefei.service.AccountService;

import java.util.Date;

/**
 * 账户业务层实现类
 */
public class AccountServiceImpl implements AccountService {

    String name;
    Integer age;
    Date date;

    public AccountServiceImpl(String name, Integer age,Date date) {
        this.name = name;
        this.age = age;
        this.date = date;
        System.out.println("我是"+name+"今年"+age+"岁了!"+date);
    }

    public void saveAccount() {
    }
}

 

Spring的依赖注入

标签:其他   获取   业务   count()   数据   ice   程序   作用   管理   

原文地址:https://www.cnblogs.com/lililixuefei/p/11874848.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!