我刚刚阅读了有关外部配置的文档,我发现我可以使用以下方式轻松访问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 运算符
有没有办法以简单的方式访问它,我不必使用容器?
答案 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;
}
}