该注释用于构造函数上,显示该构造函数的参数与getter方法相对应。例如:
Point { @ConstructorProperties({“x”,“y”}) public Point(int x,int y){ this.x = x; this.y = y; } public int getX(){ return x; } public int getY(){ return y; } private final int x,y; }
表示x参数对应的是getX(); y参数对应getY(),配合xml通过构造参数名称进行初始化bean;
注释显示构造函数@ConstructorProperties()的第一个参数可以使用getX()
方法检索,第二个参数可以使用方法检索getY()
。由于方法参数名一般在运行时不可见,如果没有标注就没有办法知道参数是否符合getX()
和getY()
或周围的其他方法。
所以,当使用Spring的 构造函数参数名称进行初始化bean的时候,需要在构造函数上加该注释
application-context.xml部分配置如下:通过构造函数名称进行初始化bean
<bean id="exampleBean" class="examples.ExampleBean">
<constructor-arg name="years" value="7500000"/>
<constructor-arg name="ultimateAnswer" value="42"/>
</bean>
参考class demo
package examples;
public class ExampleBean {
private int years;
private String ultimateAnswer;
@ConstructorProperties({"years", "ultimateAnswer"})
public ExampleBean(int years, String ultimateAnswer) {
this.years = years;
this.ultimateAnswer = ultimateAnswer;
}
}
可以参考官网文档:https://docs.oracle.com/javase/6/docs/api/java/beans/ConstructorProperties.html