为了账号安全,请及时绑定邮箱和手机立即绑定

在自定义启动器中访问 spring 应用程序名称

在自定义启动器中访问 spring 应用程序名称

元芳怎么了 2022-01-19 09:28:33
我试图在自定义启动器自动配置中访问 spring 应用程序名称。@Configurationpublic class CustomAutoConfiguration {    @Value("${spring.application.name}")    private String appName;}spring.factories 作为,org.springframework.boot.autoconfigure.EnableAutoConfiguration=\co.test.CustomAutoConfiguration在使用此自定义启动器的应用程序中,我已在 bootstrap.yamlspring:  application:    name: test-app但是,我看到 appName 是null. 我的猜测是这与加载顺序有关吗?无论如何要做到这一点?
查看完整描述

3 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

我过去有类似的问题,我通过自动装配解决了org.springframework.core.env.Environment;像这样的东西:


@Configuration

public class CustomAutoConfiguration {

    @Autowired

    private Evinronment env;

    private String appName;

    @PostConstruct

    public void initialize(){

       this.appName = env.getProperty("spring.application.name");

    }


}

未经测试,但它应该可以工作


查看完整回答
反对 回复 2022-01-19
?
撒科打诨

TA贡献1934条经验 获得超2个赞

这最终奏效了。


@Configuration

public class CustomAutoConfiguration implements EnvironmentAware {


    @Override

    public void setEnvironment(Environment environment) {

        this.environment = environment;

    }


    // And then accessing via this.environment.getProperty("spring.application.name")


}


查看完整回答
反对 回复 2022-01-19
?
绝地无双

TA贡献1946条经验 获得超4个赞

可能与bootstrap.yml加载顺序有关。我们@Value@Configuration课堂上一直没有问题,但我们使用application.properties. 你试过在那里设置吗?或者也许在命令行上?


查看完整回答
反对 回复 2022-01-19
  • 3 回答
  • 0 关注
  • 197 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号