美文网首页
Spring注入对象类型的属性

Spring注入对象类型的属性

作者: glory_前端 | 来源:发表于2017-11-01 14:57 被阅读0次

要求创建Service类和Dao类,在Service类中得到Dao类的对象,进而操作Dao里面方法

1实现过程

(1)在Service类中把Dao作为类型属性
(2)生成Dao类型的Set方法

Service类和Dao类

package cn.itcast.service;

public class UserService {
    
    //1.定义一个Dao类型属性
    private UserDao userDao;
    
    //2.生成其set方法
    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }
    
    
    public void add(){
        System.out.println("userservice.............");
        userDao.add();
    }

}

Dao类

package cn.itcast.service;

public class UserDao {
    
    public void add(){
        System.out.println("userDao.............");
    }
}

配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">


    <!-- 注入对象类型的属性 -->
    <!-- 1.配置Service和Dao对象 -->
    <bean id="userService" class="cn.itcast.service.UserService">
        <!-- 通过set注入dao对象 -->
        <!-- name属性值:Service类中属性名称,现在不能写value,因为value对应字符串,现在是对象
             ref属性值:Dao中配置bean标签属性id值
         -->
        <property name="userDao" ref="userDao"></property>
    </bean>
    
    <bean id="userDao" class="cn.itcast.service.UserDao"></bean>

</beans>

测试类

package cn.itcast.service;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class testIoc {

    @Test
    public void testUser(){
        //1.加载spring配置文件
        ApplicationContext context=new ClassPathXmlApplicationContext("beanConfig.xml");
        //得到配置创建的对象
        UserService user=(UserService) context.getBean("userService");
        
        user.add();
    }
}

打印结果

image.png
2IOC和DI

(1)IOC对象反转,把创建对象交给spring控制
(2)DI依赖注入:向类里面属性设置值
(3)依赖注入不能单独存在,需要建立在ioc之上

相关文章

网友评论

      本文标题:Spring注入对象类型的属性

      本文链接:https://www.haomeiwen.com/subject/xiiwpxtx.html