在实体类中使用Autowire协同配置属性类进行Spring引导
我必须在Spring实体类中使用一些集合数据成员类在实体类中使用Autowire协同配置属性类进行Spring引导,spring,spring-boot,autowired,Spring,Spring Boot,Autowired,我必须在Spring实体类中使用一些集合数据成员类 Entity(name="users") public class Users{ @Id @GeneratedValue @Column(name=ID") private long Id; @Column(name=NAME") private String name; @Column(name=AGE") private String age; @Column(name=PIN&q
Entity(name="users")
public class Users{
@Id
@GeneratedValue
@Column(name=ID")
private long Id;
@Column(name=NAME")
private String name;
@Column(name=AGE")
private String age;
@Column(name=PIN")
private String pin;
public Users(String name, String age, String pin)
{
this.name = name;
this.age = age;
this.pin = pin;
}
}
当前实体类
Entity(name="users")
public class Users{
@Id
@GeneratedValue
@Column(name=ID")
private long Id;
@Column(name=NAME")
private String name;
@Column(name=AGE")
private String age;
@Column(name=PIN")
private String pin;
public Users(String name, String age, String pin)
{
this.name = name;
this.age = age;
this.pin = pin;
}
}
现在我需要添加一个新的成员,这是唯一的地方
areaId,我们为每个区域运行sperate应用程序,因此在应用程序启动期间,这将从命令行参数或配置属性传递
我的属性类如下所示
@Component
@ConfigurationProperties("user.info")
public class UserProperties{
public String areaId;
public String getAreaID(){return this.areaId;}
public void setAreaID(String areaId){ this.areaId = areaId;}
}
users:
info:
areaId:124
我必须存储它,并在用户对象构造过程中进行初始化,在这里我试图简化
Entity(name="users")
public class Users{
@Id
@GeneratedValue
@Column(name=ID")
private long Id;
@Column(name=NAME")
private String name;
@Column(name=AGE")
private String age;
@Column(name=PIN")
private String pin;
@Column(name=AREAID")
private String areaId;
public Users(String name, String age, String pin)
{
this.name = name;
this.age = age;
this.pin = pin;
this.areaId = ""//?? how to get area id directly ?
}
}
我无法更改用户的构造函数,因为它要求在使用此库的其他应用程序中进行更改
希望在实体类中自动关联用户属性类(但这与某些实体类中读取的内容不同)
初始化默认类型变量的最佳方法是什么?您的属性似乎是静态的 然后在开始时从静态方式获取它 有几种方法可以在开始时直接或在静态块中获取命令行值:
static {
(your code here)
}
之后,您可以将@Column放在这个属性的getter上。您的属性似乎是静态的 然后在开始时从静态方式获取它 有几种方法可以在开始时直接或在静态块中获取命令行值:
static {
(your code here)
}
在此之后,您可以将@Column放在该属性的getter上。>“我不能更改用户的构造函数,因为它要求在使用此lib的其他应用程序中进行更改。”但您可以添加另一个构造函数,直到调用新的构造函数来实现此效果,否则就不需要添加额外的参数>>“我无法更改用户的构造函数,因为它要求在使用此库的其他应用程序中进行更改。”但您可以添加另一个构造函数,直到调用新的构造函数才能生效,否则就不需要添加额外的参数