Spring框架XML配置文件使用外部Bean属性注入

本文介绍如何在Spring框架中使用XML配置文件进行依赖注入。通过创建UserService和UserDao两个类,演示了如何在UserService中调用UserDao的方法,并通过Spring的XML配置文件实现依赖注入,最后通过测试类验证功能。

(1)创建两个类service类和dao类

创建UserService类和UserDao类,其中UserDao为抽象类。对UserDao进行重写UserDaoImpl类。

1、UserService

package com.action.spring.service;

import com.action.spring.dao.UserDao;
import com.action.spring.dao.UserDaoImpl;

public class UserService {
	
	private UserDao userDao;
	
	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}

	public void add() throws Exception {
				
		System.out.println("Service add....................");
		userDao.update();
		
		/* 传统方法
		 * UserDao userDao = new UserDaoImpl(); 
		 * userDao.update();
		 */
	}

}

2、UserDao

package com.action.spring.dao;

public interface UserDao {
	
	public abstract void update() throws Exception;

}

3、UserDao类的实现类UserDaoImpl

package com.action.spring.dao;

public class UserDaoImpl implements UserDao{

	private String uname;

	public void setUname(String uname) {
		this.uname = uname;
	}

	@Override
	public void update() throws Exception {
		
		System.out.println("update...............");
		
	}

}

(2)在service中调用dao里面的方法

传统的调用方式为new一个实现类实体,然后调用方法。

/* 传统方法
 * UserDao userDao = new UserDaoImpl(); 
 * userDao.update();
 */

(3)使用Spring框架进行调用

配置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.xsd">

<!-- 注入外部bean -->
<bean id="userService" class="com.action.spring.service.UserService">
    <property name="userDao" ref="userDaoImpl"></property>
</bean>
<bean id="userDaoImpl" class="com.action.spring.dao.UserDaoImpl"></bean>
    
</beans>

也是采用set方法进行实例化操作。

所以在UserService类中要创建一个属性,并创建set方法用来控制属性。

在配置文件中实例化实现类:

<bean id="userDaoImpl" class="com.action.spring.dao.UserDaoImpl"></bean>

然后实例化使用类:

<bean id="userService" class="com.action.spring.service.UserService"></bean>

此时通过注入外部Bean的方式注入属性。

<property name="userDao" ref="userDaoImpl"></property>其中name为属性名。此处需要注意的是和普通值使用的value不同的是,注入外部Bean需要使用 ref 属性。

(4)创建测试类

public class testSpring5 {
	
	@Test
	public void testAdd() throws Exception {
		
		ApplicationContext context =
				new FileSystemXmlApplicationContext("src/config/bean1.xml");
		
		UserService userService = context.getBean("userService", UserService.class);
		userService.add();
		
	}

}

文件的相对位置:

在这里插入图片描述
运行结果:
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值