@ConstructorProperties的作用

实例展示

spring中@ConstructorProperties的作用,以具体实例来解释:
下面是写的HelloService和NewHello的Bean

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class HelloService {
public String sayHello(){
return "hello";
}
}

import java.beans.ConstructorProperties;

public class NewHello {

    private HelloService service;

    private String hello;

    //@ConstructorProperties({"service","hello"})
    public NewHello(HelloService service, String hello) {
        this.service = service;
        this.hello = hello;
    }
    public void sayNewHello(){
        System.out.println("new hello");
        System.out.println(service.sayHello());
    }
}

对应的xml文件中的配置为:

1
2
3
4
5
6
<bean id="helloService" class="com.lyk.service.HelloService"/>

 <bean id="newHello" class="com.lyk.service.NewHello">
    <constructor-arg name="hello" value="hello"/>
    <constructor-arg name="service" ref="helloService"/>
 </bean>

使用@ConstructorProperties注解时,可以通过制定变量名来改变xml文件中constructor-arg的 name名字,比如
@ConstructorProperties({“service1”,”hello1”}),在xml文件中要对应的配置为

1
2
3
4
<bean id="newHello" class="com.lyk.service.NewHello">
    <constructor-arg name="hello1" value="hello"/>
    <constructor-arg name="service1" ref="helloService"/>
</bean>

参考文献

  1. https://blog.csdn.net/wslyk606/article/details/78861999