如题:
要创建的Bean类UserServiceImpl02 :
package com.itheima.service.impl;import com.itheima.dao.interfaces.InterfaceUserDao;
import com.itheima.service.interfaces.InterfaceUserService;/*** @copyright 2003-2024* @author qiao wei* @date 2024-12-23* @version 1.0* @brief * @history name* date* brief*/
public class UserServiceImpl02 implements InterfaceUserService {public UserServiceImpl02(InterfaceUserDao paramUserDao, double paramValue) {this.userDao = paramUserDao;this.value01 = paramValue;
// paramUserDao.print();
// System.out.println("类UserServiceImpl02调用有参构造函数。---" + userDaoABC);
// System.out.println(value01);}@Overridepublic void show() {System.out.println("类UserServiceImpl02的show方法。");System.out.println("打印字段数据。userDao:" + userDao + ",value01:" + value01);System.out.println(userDaoABC);}@Overridepublic void setUserDao001(InterfaceUserDao userDao) {
// System.out.println("调用属性设置方法。");this.userDaoABC = userDao;}private InterfaceUserDao userDao;private InterfaceUserDao userDaoABC;private double value01;
}
InterfaceUserService接口:
package com.itheima.service.interfaces;import com.itheima.dao.interfaces.InterfaceUserDao;/*** @copyright 2003-2024* @author qiao wei* @date 2024-12-22* @version 1.0* @brief * @history name* date* brief*/
public interface InterfaceUserService {void show();void setUserDao001(InterfaceUserDao userDao);
}
类中的字段类UserDaoImpl :
package com.itheima.dao.impl;import com.itheima.dao.interfaces.InterfaceUserDao;/*** @copyright 2003-2025* @author qiao wei* @date 2025-03-24* @version 1.0* @brief * @history name* date* brief*/
public class UserDaoImpl implements InterfaceUserDao {public UserDaoImpl() {}@Overridepublic void print() {System.out.println("UserDaoImpl类实例,继承接口InterfaceUserDao");}
}
字段实现的接口InterfaceUserDao :
package com.itheima.dao.interfaces;/*** @copyright 2003-2024* @author qiao wei* @date 2024-12-22* @version 1.0* @brief * @history name* date* brief*/
public interface InterfaceUserDao {void print();
}
类结构:
userServiceImpl02.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"xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-4.0.xsd"><bean id="serviceImpl02"class="com.itheima.service.impl.UserServiceImpl02"><!-- 构造方法参数 --><constructor-arg name="paramUserDao"ref="userDao"></constructor-arg><constructor-arg name="paramValue"value="100.0"></constructor-arg><!-- setUserDao001方法参数 --><property name="userDao001"ref="userDao"></property></bean><bean id="userDao"class="com.itheima.dao.impl.UserDaoImpl"></bean>
</beans>
测试类UserServiceImpl02Test:
package com.itheima.service.impl;import org.junit.jupiter.api.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.itheima.service.interfaces.InterfaceUserService;import static org.junit.jupiter.api.Assertions.*;/*** @copyright 2003-2025* @author qiao wei* @date 2025-04-02* @version 1.0* @brief * @history name* date* brief*/
class UserServiceImpl02Test {@Testpublic void test02() {ClassPathXmlApplicationContext applicationContext =new ClassPathXmlApplicationContext("./xml/service/userServiceImpl02.xml");InterfaceUserService userService =(InterfaceUserService) applicationContext.getBean("serviceImpl02");userService.show();}
}
运行结果:
类UserServiceImpl02的show方法。
打印字段数据。userDao:com.itheima.dao.impl.UserDaoImpl@24105dc5,value01:100.0
com.itheima.dao.impl.UserDaoImpl@24105dc5
可见,构造方法,set方法均在创建Bean时根据配置调用。