Spring接口编程_设值注入和构造注入

说明:

UserManagerImp是设值注入,UserManagerImp2是构造注入

接口不注入,也就是在Spring配置文件中没有接口的<bean>,但是定义的时候是用接口

private IUserDao userDao;
IUserManager userManager2=(IUserManager) factory.getBean("userManager2");

 

类都注入,①UserManagerImp和UserManagerImp2属于实现类

     ②UserDaoImp是Dao类也要注入

     前者①中有属性userDao,userDao可以通过设值和构造俩中方法注入

     后者②中没有属性,所以只写了<bean>

1.文件

<?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">
    <bean name="userManager" class="com.wangcf.manager.UserManagerImp">
        <!--设值注入   -->
        <property name="userDao" ref="userDao"></property>
    </bean>
    <bean name="userManager2" class="com.wangcf.manager.UserManagerImp2">
        <!-- 构造注入 -->
        <constructor-arg ref="userDao"/>
    </bean>
        
    <bean name="userDao" class="com.wangcf.Dao.UserDaoImp"></bean>  
</beans>

 

2.Dao

package com.wangcf.Dao;

public interface IUserDao {
    public void addUser();
}
package com.wangcf.Dao;

public class UserDaoImp implements IUserDao{
    public void addUser(){
        System.out.println("UserDaoImp addUser...");
    }
}

3.manager

package com.wangcf.manager;

public interface IUserManager {
    public void addUser();
}
package com.wangcf.manager;

import com.wangcf.Dao.IUserDao;

public class UserManagerImp implements IUserManager{
    
    private IUserDao userDao;
    //设值注入
    public void setUserDao(IUserDao userDao) {
        this.userDao = userDao;
    }
    public void addUser(){
        System.out.println("UserManagerImp  addUser...");
        this.userDao.addUser();
    }


}
package com.wangcf.manager;

import com.wangcf.Dao.IUserDao;

public class UserManagerImp2 implements IUserManager{

    private IUserDao userDao;
    
    //构造注入
    public UserManagerImp2(IUserDao userDao) {
        // TODO Auto-generated constructor stub
        this.userDao=userDao;
    }
    
    @Override
    public void addUser() {
        // TODO Auto-generated method stub
        System.out.println("UserManagerImp2 addUser...");
        this.userDao.addUser();
    }
    
}

4.test

package com.wangcf.test;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.wangcf.manager.IUserManager;

import junit.framework.TestCase;

public class UserManagerTest extends TestCase{
    
    public void testAddUser(){
        BeanFactory factory=new ClassPathXmlApplicationContext("applicationContext.xml");
        IUserManager userManager=(IUserManager) factory.getBean("userManager");
        userManager.addUser();
        System.out.println("=============");
        IUserManager userManager2=(IUserManager) factory.getBean("userManager2");
        userManager2.addUser();
    }
}

5.输出

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值