自定义值的@Value未显示

时间:2018-08-22 19:47:44

标签: spring spring-boot variables command-line

我在Spring Boot(1.5.9)中有一个项目。我在src / main / resources中的application.properties和外部application.properties中具有属性。我也可以通过命令行提供值。

我的主要班级是这样的:

@SpringBootApplication
@SpringBootConfiguration
@EnableJpaRepositories
@EnableEncryptableProperties
@Import(RepositoryRestMvcAutoConfiguration.class)
public class Application {
    public Application() { super(); }

    public static void main(String[] args) {
        final SpringApplication app = new SpringApplication(Application.class);
        app.run(args);
    }
}

我有一个不同的类,看起来像这样:

@Component
public class MyAuthenticationProvider extends AuthenticationProviderInterface {
    @Value("${myproject.authentication.url:https://blah:8443}")
    private String authenticationURL = "https://test.blah:8443";

    @Override
    public void afterPropertiesSet() {
        System.err.println(authenticationURL);
    }

    ..... other stuff.....
}

从System.err中,我得到https://test.blah:8443

现在,我可以获取所有主要变量:spring.main.banner-mode,spring.datasource.name等。我似乎无法获取自定义变量-myproject.authentication.url或myproject.authentication.accessstring。

spring变量的行为符合预期-我可以从属性文件到命令行遵循优先级。只有自定义变量才适合我。

有人有什么建议吗?我正在尝试提供良好的信息,但是我在两台未连接的计算机之间进行输入,偶尔会遇到输入错误。

谢谢。

2 个答案:

答案 0 :(得分:0)

@Comopnent更改为@Component

答案 1 :(得分:0)

好。这真是愚蠢,Eclipse再次“帮助”了我。保存操作添加了一个“最终”值,并且(毫不奇怪)这些值没有被更新。很抱歉浪费人们的时间。