笔记(11.2)注入属性-->外部bean 内部bean以及级联赋值

本文介绍了Spring框架中三种Bean的注入方式:外部Bean注入、内部Bean实现及级联赋值的具体步骤与实践案例。通过创建不同类型的接口和类,演示如何在Spring配置文件中进行Bean的定义与属性值的注入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.外部bean注入实现

在bean标签内不直接定义的bean对象叫做----外部bean

(1)创建OutDao接口,以及实现接口类OutDaoImp

 

 (2)创建OutServiceTest类,创建OutDao类型属性生成set方法(注意这个对象属性名称)

 

 (3)配置xml文件,将外部bean注入

(4)最后一步就是创建OutbeanTest 创建对象进行测试

 2.实现内部bean

(1)创建InDept类以及InEmploy类,并在InEmploy中创建InDept类型属性

 

 (2)配置bean.xml,在设置InDept的属性时直接在InEmploy的bean中嵌套InDept的bean,并在该bean中注入他的属性值

 (4)最后进行测试(注意只用生成InEmploy的对象即可)

 3.级联赋值(目前我看到的就是感觉跟外部bean操作相似,但是在前面的操作中是没有对外部bean进行赋值的只是创建了对象(依旧使用InDept&InEmploy进行操作)

 今日笔记完。

本人菜鸟,如有不对请指正

<think>嗯,用户想知道如何在Spring的XML配置文件中使用setter方法注入属性。我需要先回忆一下Spring的依赖注入方式,尤其是基于XML的配置。记得依赖注入主要有两种方式:构造器注入和setter注入。用户这里问的是setter注入,所以我需要重点讲解这一部分。 首先,我应该解释一下setter注入的基本概念,说明它是通过调用bean的setter方法来设置属性值的。然后,给出一个具体的例子,这样用户能更直观地理解。可能需要创建一个简单的Java类,比如UserService和UserRepository,然后展示如何在XML中配置property标签来注入依赖。 接着,需要详细说明XML配置的结构,比如在<bean>标签内部使用<property>子标签,其中name属性对应setter方法的名字,ref属性指向另一个bean的引用。如果是基本类型或者字符串,可以直接用value属性。还要注意,可能需要提到如何注入集合类型,但用户的问题可能更关注基础用法,所以先以简单例子为主。 然后,需要确保示例代码的正确性,比如UserService类是否有正确的setter方法,XML配置是否符合语法。同时,引用提供的参考资料中的例子,比如引用[3]中的构造器注入,可以对比说明setter注入的不同之处。 可能用户还会混淆构造器注入和setter注入,所以应该简单区分一下两者的使用场景。比如,构造器注入适合强制依赖,而setter注入适合可选依赖。但用户的问题集中在setter注入,所以这部分可以简要带过。 最后,生成相关问题的时候,要确保问题覆盖用户可能进一步想了解的内容,比如setter和构造器注入的区别,如何注入集合,或者混合使用注解和XML的情况。这些问题可以帮助用户深入学习和解决实际开发中的问题。 检查一下是否需要更多的细节,比如是否需要提到自动装配或者其他相关配置,但根据问题,用户可能只需要基础的setter注入示例。确保回答结构清晰,分步骤讲解,并引用提供的参考资料来增强可信度。</think>### Spring XML Bean Setter注入示例 通过XML配置文件实现Setter注入需要以下步骤: 一、定义包含setter方法的Bean类 ```java public class UserService { private UserRepository userRepository; private int maxResults; // Setter方法 public void setUserRepository(UserRepository userRepository) { this.userRepository = userRepository; } public void setMaxResults(int maxResults) { this.maxResults = maxResults; } } public class UserRepository { // 数据库相关实现 } ``` 二、XML配置实现Setter注入 ```xml <beans> <!-- 定义被注入Bean --> <bean id="userRepository" class="com.example.UserRepository"/> <!--Bean配置 --> <bean id="userService" class="com.example.UserService"> <!-- 对象类型注入 --> <property name="userRepository" ref="userRepository"/> <!-- 基本类型注入 --> <property name="maxResults" value="100"/> </bean> </beans> ``` 关键语法说明: 1. `<property>` 标签对应setter方法,`name`属性对应方法名去掉"set"后的驼峰形式 2. `ref`属性用于引用其他Bean定义 3. `value`属性直接设置基本类型值 4. 支持级联注入(通过嵌套`<bean>`标签) 三、运行验证 ```java ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); UserService service = (UserService) context.getBean("userService"); // service将自动注入userRepository和maxResults ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值