如何阅读Spring Boot application.properties?

时间:2015-03-07 17:32:30

标签: java spring properties spring-boot

我刚刚阅读了有关外部配置的文档,我发现我可以使用以下方式轻松访问application.properties:

@Component
public class MyBean {

    @Value("${name}")
    private String name;

    // ...

}

但我想在类中添加属性,这不是Spring组件(我使用 new 对其进行初始化)。

我想在这里申请:

public class PageWrapper<T> {

private int maxButtonQuantity = **I want to put here the property from file**;
private Page<T> page;
private List<PageItem> buttons;
private int currentNumber;
private String url;
...
}

PageWrapper 不是Spring Bean类 - 它不是&#34;浮动&#34;在Spring容器中。我手动在某个控制器中初始化它 - 使用 new 运算符

有没有办法以简单的方式访问它,我不必使用容器?

1 个答案:

答案 0 :(得分:3)

因为PageWrapper类是在控制器中实例化的,所以你可以获取属性,只需在下面的方法中传递它,或者你可以在PageWrapper类的构造函数中传递它。

    @Configuration
    @Controller
    public class MyController 
    {

      @Value("${name}")
      private String name;

      @Value("${maxButtonQuantity}")
      private int maxButtonQuantity;

      ................

     //* pass the value to PageWrapper after you instantiate it,
     pageWrapper.setMaxButtonQuantity(maxButtonQuantity);

    }

    public class PageWrapper<T> {

      private int maxButtonQuantity = **I want to put here the property from file**;
      private Page<T> page;
      private List<PageItem> buttons;
      private int currentNumber;
      private String url;

      public void setMaxButtonQuantity(int maxButtonQuantity)
      {
        this.maxButtonQuantity = maxButtonQuantity;
      }

    }