Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在实体类中使用Autowire协同配置属性类进行Spring引导_Spring_Spring Boot_Autowired - Fatal编程技术网

在实体类中使用Autowire协同配置属性类进行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

我必须在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")
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的其他应用程序中进行更改。”但您可以添加另一个构造函数,直到调用新的构造函数来实现此效果,否则就不需要添加额外的参数>>“我无法更改用户的构造函数,因为它要求在使用此库的其他应用程序中进行更改。”但您可以添加另一个构造函数,直到调用新的构造函数才能生效,否则就不需要添加额外的参数