作为参数值从 application.properties 在 class 级别 Spring 批量传递
Pass as parameter value from application.properties at class level Spring Batch
我有这部分代码:
@Component
public class TestWriter implements ItemWriter<Test> {
// @Value("${test.param:3}")
// private int testParam;
private final ForkJoinPool customThreadPool = new ForkJoinPool(3);
但是在 new ForkJoinPool(int parallelism) 中,我想将我的参数作为参数传递给 application.properties (testParam)
private final ForkJoinPool customThreadPool = new ForkJoinPool(testParam);
我尝试将 Enviroment 与我的参数一起使用,但它不起作用。
@Autowired
private Environment env;
...
dataSource.setUrl(env.getProperty("jdbc.url"));
如果可能并正确,如何完成,正确的方法是什么?
谢谢
有两种方法可以实现这一点。一种是通过环境变量,另一种是通过 属性 文件。
- 通过环境变量-
您需要将环境变量设置为JDBC_URL=jdbc:postg...
。
并按如下方式使用它。
@Autowired
private Environment env;
...
dataSource.setUrl(env.getProperty("JDBC_URL"));
通过属性文件,
@Value("${jdbc.url}")
私有字符串 JDBC_URL;
在你的application.properties中添加
jdbc.url=jdbc:postg...
确保使用构造函数注入,属性在需要时可用。
@Component
public class TestWriter implements ItemWriter<Test> {
private final ForkJoinPool customThreadPool;
@Autowired
public TestWriter (@Value("${test.param:3}") int testParam) {
this.customThreadPool = new ForkJoinPool(testParam);
}
我有这部分代码:
@Component
public class TestWriter implements ItemWriter<Test> {
// @Value("${test.param:3}")
// private int testParam;
private final ForkJoinPool customThreadPool = new ForkJoinPool(3);
但是在 new ForkJoinPool(int parallelism) 中,我想将我的参数作为参数传递给 application.properties (testParam)
private final ForkJoinPool customThreadPool = new ForkJoinPool(testParam);
我尝试将 Enviroment 与我的参数一起使用,但它不起作用。
@Autowired
private Environment env;
...
dataSource.setUrl(env.getProperty("jdbc.url"));
如果可能并正确,如何完成,正确的方法是什么?
谢谢
有两种方法可以实现这一点。一种是通过环境变量,另一种是通过 属性 文件。
- 通过环境变量-
您需要将环境变量设置为JDBC_URL=jdbc:postg...
。
并按如下方式使用它。
@Autowired
private Environment env;
...
dataSource.setUrl(env.getProperty("JDBC_URL"));
通过属性文件,
@Value("${jdbc.url}") 私有字符串 JDBC_URL;
在你的application.properties中添加
jdbc.url=jdbc:postg...
确保使用构造函数注入,属性在需要时可用。
@Component
public class TestWriter implements ItemWriter<Test> {
private final ForkJoinPool customThreadPool;
@Autowired
public TestWriter (@Value("${test.param:3}") int testParam) {
this.customThreadPool = new ForkJoinPool(testParam);
}