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

(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();
		
	}

}

文件的相对位置:

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

猜你喜欢

转载自blog.csdn.net/jerrygaoling/article/details/108650039
今日推荐