SpringSpring我爱编程

spring注入对象类型属性(重点)

2018-05-26  本文已影响26人  DouDouZH

一、实现过程

(1)在service里面把dao作为类属性
(2)生成dao类型属性的set方法
(3)在配置文件完成注入关系
image.png

二、代码

service层 UserService.java

package work.zhangdoudou.service;

import work.zhangdoudou.dao.UserDao;

public class UserService {
    //1定义一个dao类型的属性
    private UserDao userDao;
    //2生成set方法
    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }
    
    public void add(){  
        System.out.println("service-------");
        
        //在service里面调用dao类对象,才能调用dao里面的方法
        userDao.add();
    }
    
}

dao层 UserDao.java

package work.zhangdoudou.dao;

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

配置文件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"
 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
   
    <!-- 注入对象类型属性 -->
    <!-- 配置service和dao对象 -->
    <bean id="userDao" class="work.zhangdoudou.dao.UserDao"></bean>
    <bean id="userService" class="work.zhangdoudou.service.UserService">
        <!-- 注入dao对象,不写value属性,现在是对象写ref 
            name:写service类里面属性名称
            ref:写dao配置的id名称
        -->
        <property name="userDao" ref="userDao"></property>
    </bean>
   
</beans>

测试类TestUser.java

package work.zhangdoudou.test;

import static org.junit.Assert.*;

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

import work.zhangdoudou.service.UserService;

public class TestUser {

    @Test
    public void test() {
        ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
        UserService userService= (UserService)context.getBean("userService");
        userService.add();
    }
}

三、运行结果

image.png
上一篇 下一篇

猜你喜欢

热点阅读