1、先对yml文件中写入需注入的配置:
2、创建配置类:
import lombok.Data;
// 该注解等于 get set tostring
@Data
public class ModerInfo {
/** 列表ID */
private String listId;
/** 账号 */
private String acctNo;
/** 性别 */
private String gender;
}
3、创建列表注入类
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import java.util.List;
// 声明该类为配置类
@Configuration
// prefix的参数为前缀 需与yml文件中配置前缀相对应
@ConfigurationProperties(prefix = "moder.roster")
public class ListModerProperty {
/** moderList 集合列表 变量名与配置中名称对应*/
private static List<ModerInfo> list;
/** getter方法 */
private static List<ModerInfo> getList() {
return list;
}
/**
* 采用setter方法注入配置
* 注意: 此处setter方法不可设置为static关键字修饰,否则注入失败
* 形参列表中名称无关紧要
*/
public void setList(List<ModerInfo> moderInFos) {
ListModerProperty.list = moderInFos;
}
}
该方式使用@ConfigurationProperties(prefix = "")的形式注入,可在nacos配置中心中配置自动实现热更新;若在不改动yml文件中配置的前提下,想要不采用list命名以上成员变量,可用另外的一种@Value("${moder.roster.list}")的形式注入,但要注意在类上要使用@RefreshScope注解才可以实现nacos热更新机制,不过这种方式日常开发中不推荐。