`Company` class 依赖于 `Address`,我该如何描述这种依赖性?

the `Company` class depends on `Address`, how do I describe such dependency?

我正在学习 spring 启动并试图弄清楚我应该如何描述依赖关系。

我知道依赖注入是 Spring 框架的核心功能之一。

我应该如何描述编码中的依赖性?

比如我有两个classes,CompanyAddress

@Entity
public class Address {
  @Id 
  @GeneratedValue
  private int id;
  private String street;
  private int number;
}

Company class 依赖于 Address,我该如何描述这种依赖性?

我应该和addressId

一起去吗
@Entity
public class Company {
  @Id
  @GeneratedValue
  private int id;
  private String name;
  private int addressId;
}

Address 对象本身

@Entity
public class Company {
  @Id
  @GeneratedValue
  private int id;
  private String name;
  private Address address;
}

您使用的对象。通过添加 @JoinColumn,您可以指定该对象的哪个字段用作参考。

@Entity
public class Company {
  @Id
  @GeneratedValue
  private int id;
  private String name;
  @OneToOne
  @JoinColumn(name="id")
  private Address address;
}

请注意,这根本不是依赖注入的示例。 依赖注入是您的 class 只知道它需要一种功能的概念,并且正在提供它的实现而无需知道该实现。在 Srping 中,这通常是通过在某些接口中自动装配并将实现作为 Spring bean 来完成的。这是通过使用 @Autowire 注释完成的,当连接的字段是最终的并且提供了构造函数时,可以省略该注释,这就是所谓的构造函数注入。

* 打个比方,假设一名建筑工人要求他的学生递给他一个东西,以便在墙上钻一个洞。他不关心它是 'Bosch' 还是 400 瓦电钻。他只在乎它钻空子

由于您使用的是 Pojos,因此无需考虑依赖性,因为这些模型不会依赖于 spring 容器中的任何组件(至少对于您的情况而言)。当你的 class.

需要单个公共 object/component 时,你可以考虑依赖注入

所以回答你的问题是,你需要采用第二种方法。您需要使用地址对象本身。

请查看文档: https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#beans-introduction