Spring6梳理9—— 依赖注入之外部注入对象类型属性

news2024/9/22 21:50:46

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>

对对象进行引用,从而在实体类对象中注入另一个实体类对象,使用被注入的对象的方法变量等内容


                

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2144053.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【算法】遗传算法

一、引言 遗传算法&#xff08;Genetic Algorithm, GA&#xff09;是一种模拟生物进化过程的启发式搜索算法&#xff0c;它通过模拟自然选择、遗传、交叉和突变等生物学机制来优化问题的解决方案。遗传算法因其通用性、高效性和鲁棒性&#xff0c;在多个领域中得到了广泛应用&a…

【Java】网络编程:TCP_IP协议详解(IP协议数据报文及如何解决IPv4不够的状况)

&#x1f308;个人主页&#xff1a;努力学编程’ ⛅个人推荐&#xff1a; c语言从初阶到进阶 JavaEE详解 数据结构 ⚡学好数据结构&#xff0c;刷题刻不容缓&#xff1a;点击一起刷题 &#x1f319;心灵鸡汤&#xff1a;总有人要赢&#xff0c;为什么不能是我呢 &#x1f354…

Nest.js

Nestjs中文文档链接 TypeORM 中文文档 小满视频 1. 安装Nest.js 安装脚手架 npm i -g nestjs/cli创建nestjs工程 nest new工程目录 app.module.ts 根模块用于处理其他类的引用与共享。app.controller.ts 常见功能是用来处理http请求&#xff08;处理请求的路径&#xff09…

.net core8 使用JWT鉴权(附当前源码)

说明 该文章是属于OverallAuth2.0系列文章&#xff0c;每周更新一篇该系列文章&#xff08;从0到1完成系统开发&#xff09;。 该系统文章&#xff0c;我会尽量说的非常详细&#xff0c;做到不管新手、老手都能看懂。 说明&#xff1a;OverallAuth2.0 是一个简单、易懂、功能强…

焦虑拜拜!这些维生素是你的情绪小太阳✨,焦虑星人必看!

&#x1f33f; ‌维生素B群&#xff1a;情绪的调节大师‌ &#x1f3af; 说到缓解焦虑&#xff0c;怎能不提维生素B群&#xff1f;它可是个大家庭&#xff0c;包括B1、B2、B6、B12等&#xff0c;每一个都是调节神经系统的关键角色。维生素B群能够促进神经递质的合成&#xff0…

Prometheus监控k8s环境构建

传统架构中比较流行的监控工具有 Zabbix、Nagios 等&#xff0c;这些监控工具对于 Kubernetes 这类云平台的监控不是很友好&#xff0c;特别是当 Kubernetes 集群中有了成千上万的容器后更是如此&#xff0c;本章节学习下一代的云原生监控平台---Prometheus。 一、基于kuberne…

DNS解析域名详解

你有没有想过&#xff0c;当一个url传过来网络对它进行了哪些操作~DNS又是怎样对域名进行解析的~或者我们为什么要用到域名&#xff0c;为什么不直接使用ip地址~ 对于我们而言&#xff0c;面对长串的ip地址&#xff0c;我们更喜欢记忆较短的域名&#xff0c;但是对于路由器来说…

第二证券:降息升温!资金涌入港股,行情还能持续多久?

在美联储行将打开降息影响下&#xff0c;多国股指改写高点。 当时&#xff0c;商场环绕美联储是25个基点仍是50个基点的降息展开预期买卖&#xff0c;资金流向风险财物规划扩大显着。17日&#xff0c;澳大利亚S&P/ASX 200指数股指、印度孟买SENSEX30指数、新加坡富时海峡指…

MySQL函数:日期函数

先贴一张黑马程序员的听课截图 1.返回当前日期 CURDATE(); select CURDATE(); //获取当前日期2. 返回当前时间 CURTIME(); select CURTIME(); //获取当前时间3.返回当前日期和时间NOW() select NOW(); //获取当前日期和时间 4.获取指定date的年份YEAR(date) select YEAR…

力扣(LeetCode)每日一题 2848. 与车相交的点

题目链接https://leetcode.cn/problems/points-that-intersect-with-cars/description/?envTypedaily-question&envId2024-09-15 给你一个下标从 0 开始的二维整数数组 nums 表示汽车停放在数轴上的坐标。对于任意下标 i&#xff0c;nums[i] [starti, endi] &#xff0c;…

[Python]一、Python基础编程

F:\BaiduNetdiskDownload\2023人工智能开发学习路线图\1、人工智能开发入门\1、零基础Python编程 1. Python简介 Python优点: 学习成本低开源适应人群广泛应用领域广泛1.1 Python解释器 下载地址:Download Python | Python.org 1.2 Python开发IDE -- Pycharm 2. 基础语法…

人工智能(AI)的影响下人类的生活样子

讨论在人工智能(AI)的影响下人类的生活是什么样子 在21世纪的今天&#xff0c;人工智能&#xff08;AI&#xff09;已经不再是遥不可及的未来科技&#xff0c;而是悄然渗透到我们日常生活的每一个角落&#xff0c;以一种前所未有的方式改变着我们的生活方式、工作模式乃至社会…

使用 Python 绘制 BTC 期权的波动率曲面

波动率曲面&#xff08;Volatility Surface&#xff09;是期权交易中展示隐含波动率随行权价&#xff08;strike price&#xff09;和到期时间&#xff08;expiry time&#xff09;变化的一种三维图形。 本文尝试通过 Python&#xff0c;通过 ccxt 基于从交易所获取期权的指标…

远程连接MySQL并操作

配置MySQL开发环境 如果你使用的是基于Debian的系统&#xff08;如Ubuntu&#xff09;&#xff0c;可以在终端通过如下步骤安装MySQL开发包。 更新软件包列表 运行以下命令以确保你拥有最新的软件包列表。 sudo apt-get update安装libmysqlclient-dev开发包 执行以下命令以…

python-字符排列问题

题目描述 有 n 个字母&#xff0c;列出由该字母组成的字符串的全排列&#xff08;相同的排列只计一次&#xff09;。输入格式 第一行输入是字母个数 n 。 接下来一行输入的是待排列的 n 个字母。输出格式 计算出的 n 个字母的所有不同排列总数。样例输入输出样例输入 4 aacc样例…

道路驾驶视角人车检测数据集 16000张 带标注 voc yolo

随着智能驾驶技术和车辆辅助系统的快速发展&#xff0c;道路驾驶视角下的多目标检测成为了保障行车安全的关键技术之一。为了提高自动驾驶车辆以及辅助驾驶系统的性能&#xff0c;需要大量的高质量标注数据来训练这些系统。本数据集旨在为道路驾驶视角下的人车检测提供高质量的…

python画图|中秋到了,尝试画个月亮(球体画法)

学习了一段时间的画图&#xff0c;已经掌握了一些3D图的画法&#xff0c;部分链接如下&#xff1a; python画图|极坐标下的3D surface-CSDN博客 python画图|3D参数化图形输出-CSDN博客 我们今天尝试一下月亮的画法。 【1】官网教程 首先还是到达官网教程学习&#xff1a; …

java: 警告: 源发行版 17 需要目标发行版 17(100% 解决)

1. 问题说明 Idea启动Springboot服务报错&#xff1a;java: 警告: 源发行版 17 需要目标发行版 17 2. 解决方案 Project Structure指定jdk版本为我们当前使用的版本&#xff1b; Java Compiler指定jdk为我们当前使用的版本&#xff1b; Invalidate Caches重启Idea。 如果还…

NTC温度电阻--100K 10K

100K温度电阻分度表 粗精度直接用公式计算 细精度用厂家的传感器参数来计算 Y C1 C2* y C3 * y * y*y static float get_ntc_temp(double Rt) { double y log(Rt);//122.6us48M double val; static const double c1 0.0008314; static const double c2 0.00026178;…

Linux下vscode配置C++和python编译调试环境

Visual Studio Code (简称 VSCode) 是由微软开发的一款免费、开源、跨平台的代码编辑器。它支持 Windows、macOS 和 Linux 操作系统&#xff0c;并且内置对多种编程语言的支持&#xff0c;包括但不限于 C/C、Python、JavaScript、TypeScript、Java 和 Go 等。VSCode 主要用于编…