首页 > 解决方案 > lombok @RequiredArgsConstructor 如何将值注入构造函数spring boot

问题描述

我有一个带有 lombok @RequiredArgsConstructor 的课程:

@RequiredArgsConstructor
@Service
public class Test{

private final String str;
private String str5;

// more code

}

在非弹簧启动中,我们在 xml 中提供:

<bean id="Test" class="com.abc.Test">
        <constructor-arg index="0" value="${xyz}"/>
    </bean>

如何从 Spring Boot 中实现相同的功能可能是通过 application.properties 但如何注入

标签: javaspring-bootlombokconstructor-injection

解决方案


在这种情况下,我认为您最好对字段进行注释:

@Service
public class Test{

    @Value("${xyz}")
    private String str;

    private String str5;

    // more code
}

或使用带注释的参数显式定义构造函数:

@Service
public class Test{

    private final String str;

    private String str5;

    public Test(@Value("${xyz}") String str) {
        this.str = str;
    }
    // more code
}

如果您有其他最终字段,您可以将 lombok 构造函数生成与字段注释相结合,如@Value 字段、Lombok 和构造函数注入的最佳实践中所述?

@RequiredArgsConstructor
@Service
public class Test{

    @Value("${xyz}")
    private String str;

    private final String str5;

    // more code
}

推荐阅读