首页 > 其他分享 >具有依赖对象的构造函数注入

具有依赖对象的构造函数注入

时间:2023-01-17 20:34:32浏览次数:42  
标签:依赖 java String private Address Employee 构造函数 public 注入

如果类之间存在HAS-A关系,则首先创建依赖对象(包含对象)的实例,然后将其作为主类构造函数的参数传递。

在这里,我们的场景是员工HAS-A地址。 Address类对象将称为从属对象。首先让我们看一下Address类:

 

Address.java

Address.java

该类包含三个属性,一个构造函数和toString()方法以返回这些对象的值。

package com.nhooo;
public class Address {
private String city;
private String state;
private String country;
public Address(String city, String state, String country) {
    super();
    this.city = city;
    this.state = state;
    this.country = country;
}
public String toString(){
    return city+" "+state+" "+country;
}
}

 

Employee.java

Employee.java

它包含三个属性id,名称和地址(从属对象),两个构造函数和show()方法来显示当前对象(包括依赖对象)的记录。

package com.nhooo;
public class Employee {
private int id;
private String name;
private Address address;//Aggregation
public Employee() {System.out.println("def cons");}
public Employee(int id, String name, Address address) {
    super();
    this.id = id;
    this.name = name;
    this.address = address;
}
void show(){
    System.out.println(id+" "+name);
    System.out.println(address.toString());
}
}

 

applicationContext.xml

applicationContext.xml

ref 属性用于定义另一个对象的引用,例如,我们将依赖对象传递为构造函数参数。

<?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"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
                http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="a1" class="com.nhooo.Address">
<constructor-arg value="ghaziabad"></constructor-arg>
<constructor-arg value="UP"></constructor-arg>
<constructor-arg value="India"></constructor-arg>
</bean>
<bean id="e" class="com.nhooo.Employee">
  <constructor-arg value="12" type="int"></constructor-arg>
  <constructor-arg value="Sonoo"></constructor-arg>
  <constructor-arg>
<ref bean="a1"/>
</constructor-arg>
</bean>
</beans>

 

Test.java

Test.java

此类从applicationContext.xml文件获取Bean并调用show方法。

package com.nhooo;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.*;
public class Test {
    public static void main(String[] args) {
        
        Resource r=new ClassPathResource("applicationContext.xml");
        BeanFactory factory=new XmlBeanFactory(r);
        
        Employee s=(Employee)factory.getBean("e");
        s.show();
        
    }
}

标签:依赖,java,String,private,Address,Employee,构造函数,public,注入
From: https://www.cnblogs.com/cnetsa/p/17058647.html

相关文章

  • 依赖项构造方法注入示例
    我们可以通过构造函数注入依赖项。 <bean>的 <constructor-arg>子元素用于构造函数注入。在这里,我们要注入原始和基于字符串的值从属对象(包含对象)集合值等注入原始值......
  • 小满nestjs(第二章 IOC控制反转 DI依赖注入)
    在学习nestjs之前需要先了解其设计模式IOCInversionofControl字面意思是控制反转,具体定义是高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该......
  • dll注入 进程中注入WPF dll
    dll注入进程中注入WPFdll介绍尝试一下向进程中注入WPF应用程序为什么直接注入不可以失败的原因如下.NETDLL(也称为托管DLL)不能注入到尚未加载.NET运行时的远程......
  • 学习笔记——Spring底层IOC实现;Spring依赖注入数值问题;Spring依赖注入方式
    2023-01-14一、Spring底层IOC实现1、IOC:将对象的控制器反转给Spring2、BeanFactory与ApplicationContext(1)BeanFactory:IOC容器的基本实现,是Spring内部的使用接口,是面向......
  • Spring 依赖注入
    依赖注入(DI)是一种设计模式,可以从编程代码中删除依赖,以便可以轻松管理和测试应用程序。依赖注入使我们的编程代码松散耦合。为了更好地理解DI,让我们首先了解依赖关系查......
  • Hack The Box系列——【Markup】XML外部实体注入(XXE)
    一、XML概述可扩展标记语言(英語:Extensible Markup Language,简称:XML)是一种标记语言。XML是从标准通用标记语言(SGML)中简化修改出来的。它主要用到的有可扩展标记语言、可......
  • IDEA多模块maven项目子模块无法引用父模块依赖
    IDEA多模块maven项目子模块无法引用父模块依赖​​第一节问题​​​​第二节解决方案​​第一节问题当在IDEA创建一个maven项目后,并在该项目下新建一个moudle后,使得前一......
  • cita-sdk react16.9 依赖安装及运行问题经验记录
    运行环境查找选择node稳定版本发布时间,技术框架发布时间一致即可nodev10.18.0reactv16.9.0pythonv2.7.18安装cita-sdk一直报错上面两个错误一直循环报错,但最后......
  • SQL注入练习
    1.确定功能点是否与数据库存在交互可能,参数是否可控2.确定功能点是否注入点id=1and1=2后面用hackbar64编码3.确定功能点对应的注入语句原型与注入参数类型判断是数字型......
  • 在线获取所有依赖rpm包的方法
    背景现在经常有一些不能上网的LInux机器但是需要安装一些软件.但是有时候经常因为有依赖关系找不到的情况比较麻烦.或者是一些公司的网络总是受限,网络速度非常慢.下载安装......