Spring Boot读数yml null

nkhmeac6  于 2021-07-16  发布在  Java
关注(0)|答案(2)|浏览(420)

我试图从yml文件中获取值
这是我的申请表-

  1. inbox:
  2. inboxlist:
  3. -INBOX
  4. -TEST

以下是数据存储在-inboxconfig.java中的位置

  1. import java.util.List;
  2. import org.slf4j.Logger;
  3. import org.slf4j.LoggerFactory;
  4. import org.springframework.boot.context.properties.ConfigurationProperties;
  5. import org.springframework.stereotype.Component;
  6. import lombok.Data;
  7. @Data
  8. @Component
  9. @ConfigurationProperties(prefix = "inbox")
  10. public class InboxConfig {
  11. private static final Logger logger = LoggerFactory.getLogger(InboxConfig.class);
  12. private List<String> inboxlist;

(注意我使用lombok,所以没有getter)
这就是我所说的

  1. @EnableConfigurationProperties
  2. public class SFEmailServiceHandler {
  3. private static final Logger logger = LoggerFactory.getLogger(SFEmailServiceHandler.class);
  4. ArrayList<String> mailTo = new ArrayList<String>();
  5. @Autowired
  6. protected InboxConfig inboxConfig;
  7. List<String> Inboxlist = inboxConfig.getInboxlist();

但我明白了 Cannot invoke "*myorg*.InboxConfig.getInboxlist()" because "this.inboxConfig" is null 我错过什么了吗?我对springboot还不熟悉,我真的不知道自动连线是怎么工作的。

ibps3vxo

ibps3vxo1#

使用@postconstruct
自动连接(注入)后将调用此方法。

  1. @EnableConfigurationProperties
  2. public class SFEmailServiceHandler {
  3. private static final Logger logger = LoggerFactory.getLogger(SFEmailServiceHandler.class);
  4. ArrayList<String> mailTo;
  5. @Autowired
  6. protected InboxConfig inboxConfig;
  7. List<String> Inboxlist;
  8. @PostConstruct
  9. private void postConstruct() {
  10. mailTo = new ArrayList<String>();
  11. Inboxlist = inboxConfig.getInboxlist();
  12. }
  13. }
展开查看全部
ix0qys7i

ix0qys7i2#

在获取列表值之前,还必须将类注册为“springbean”。
(示例)

  1. inbox:
  2. inboxlist:
  3. - INBOX # Add space...
  4. - TEST
  1. @Slf4j
  2. @Component
  3. @EnableConfigurationProperties(InboxConfig.class)
  4. public class SFEmailServiceHandler {
  5. @Autowired
  6. protected InboxConfig inboxConfig;
  7. List<String> inboxlist;
  8. @PostConstruct
  9. private void init() {
  10. this.inboxlist = inboxConfig.getInboxlist();
  11. log.info("inboxlist : {} ", inboxlist);
  12. }
  13. }
展开查看全部

相关问题