Этот вопрос похож на этот: Spring: Как ввести значение в статическое поле?
но с изюминкой ..
Мне нужно использовать введенные значения в статических методах @BeforeClass
& @AfterClass
.
Я попытался создать @Component
и передать значения из application.properties
в статические поля @PostConstruct
Увы ... я получаю исключение нулевого указателя.
Таким образом, вопрос можно перефразировать как
"Как я могу использовать значения из свойств приложения внутри моих методов @AfterClass / @BeforeClass?"
@Component
:
package com.vulog.pdfgenerator.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
@Component
public class GlobalValue {
@Value("${spring.thymeleaf.prefix}")
protected String prefix;
@Value("${template.tmpfolder}")
private String tmpfolder;
public static String tmpFolderStatic;
@Value("${template.classpath}")
private String classpath;
public static String classpathStatic;
/**
* Hack! we want to use the static methods BeforeClass/AfterClass
* so the app property values should be kept static as well.
*/
@PostConstruct
public void init(){
classpathStatic = classpath;
tmpFolderStatic = tmpfolder;
}
}
Я автоматически связываю это с тестовым классом и пытаюсь получить GlobalValue.classpathStatic, но он выдает.
@Autowired
GlobalValue globalValue;