马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
目次
9.1 依赖注入之外部注入对象类型属性
9.1.1 创建dept与emp类
9.1.2 创建配置文件
9.1.3 创建测试类
9.1.4 运行结果
9.2 依赖注入之内部注入对象类型
9.3 依赖注入之级联注入对象类型
9.1 依赖注入之外部注入对象类型属性
9.1.1 创建dept与emp类
1.dept类
- package com.atguigu.spring6.iocxml.ditest;
- //部门类
- public class Dept {
- private String dname;
- public String getDname() {
- return dname;
- }
- public void setDname(String dname) {
- this.dname = dname;
- }
- public void info() {
- System.out.println("部门名称是:"+dname);
- }
- }
复制代码 2.emp类
- package com.atguigu.spring6.iocxml.ditest;
- //员工类
- public class Emp {
- private Dept dept;
- private String ename;
- private Integer age;
- public Dept getDept() {
- return dept;
- }
- public void setDept(Dept dept) {
- this.dept = dept;
- }
- public String getEname() {
- return ename;
- }
- public void setEname(String ename) {
- this.ename = ename;
- }
- public Integer getAge() {
- return age;
- }
- public void setAge(Integer age) {
- this.age = age;
- }
- public void work() {
- System.out.println(ename + "工作到了" + age);
- dept.info();
- }
- }
复制代码 由于一个部分有多个员工,因此部分与员工的关系为一对多,以是将唯一的Dept作为引用的bean,外键为
9.1.2 创建配置文件
- <?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 id="dept" class="com.atguigu.spring6.iocxml.ditest.Dept">
- <property name="dname" value="安保部"></property>
- </bean>
- <bean id="emp" class="com.atguigu.spring6.iocxml.ditest.Emp">
- <property name="ename" value="lucy"></property>
- <property name="age" value="50"></property>
- <!--注入对象类型属性
- private Dept dept;
- -->
- <property name="dept" ref="dept"></property>
- </bean>
- </beans>
复制代码 9.1.3 创建测试类
- package com.atguigu.spring6.iocxml.ditest;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- /**
- * @package: com.atguigu.spring6.iocxml.ditest
- * @className: TestEmp
- * @Description:
- * @author: haozihua
- * @date: 2024/9/18 11:10
- */
- public class TestEmp {
- public static void main(String[] args) {
- ApplicationContext context
- = new ClassPathXmlApplicationContext("bean-ref.xml");
- Emp emp = context.getBean("emp", Emp.class);
- emp.work();
- }
- }
复制代码 9.1.4 运行结果
由运行结果可以得出,当实体类出现需要注入对象的情况下,可以使用
<property name="dept" ref="dept"></property>
对对象举行引用,从而在实体类对象中注入另一个实体类对象,使用被注入的对象的方法变量等内容
9.2 依赖注入之内部注入对象类型
- <!-- 内部注入bean-->
- <bean id="emp2" class="com.atguigu.spring6.iocxml.ditest.Emp">
- <property name="ename" value="mary"></property>
- <property name="age" value="20"></property>
- <!--注入对象类型属性
- private Dept dept;
- -->
- <property name="dept"><!--与实体类保持一致-->
- <bean class="com.atguigu.spring6.iocxml.ditest.Dept">
- <property name="dname" value="财务部"></property>
- </bean>
- </property>
- </bean>
复制代码 内部注入对象时,需要在<property></property>标签内部设置name,以及内部<bean></bean>标签中的class属性
由于获取Bean是基于getter()和setter()赋值,因此<property></property>标签的name属性值必须与实体类变量保持同等
9.3 依赖注入之级联注入对象类型
- <!-- 级联注入bean-->
- <bean id="emp3" class="com.atguigu.spring6.iocxml.ditest.Emp">
- <property name="ename" value="李湘"></property>
- <property name="age" value="30"></property>
- <property name="dept" ref="dept3"></property>
- <property name="dept.dname" value="人事部"></property>
- </bean>
复制代码 级联注入对象时,需要注意property的name属性与实体类保持同等,ref必须引用的是xml文件中定义好的外部bean
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |