`Company` class 依赖于 `Address`,我该如何描述这种依赖性?
the `Company` class depends on `Address`, how do I describe such dependency?
我正在学习 spring 启动并试图弄清楚我应该如何描述依赖关系。
我知道依赖注入是 Spring 框架的核心功能之一。
我应该如何描述编码中的依赖性?
比如我有两个classes,Company
和Address
@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
我正在学习 spring 启动并试图弄清楚我应该如何描述依赖关系。
我知道依赖注入是 Spring 框架的核心功能之一。
我应该如何描述编码中的依赖性?
比如我有两个classes,Company
和Address
@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