Значение свойства Spring NULL - PullRequest
0 голосов
/ 05 августа 2020
@Autowired
public JobBuilderFactory jobBuilderFactory;

@Autowired
public StepBuilderFactory stepBuilderFactory;


@Autowired
public JdbcTemplate jdbcTemplate;

@Autowired
public DataSource dataSource;

@Autowired
TaskletStep taskletStep;

@Value("${spring.firstName}")
public String firstName

  
  String selectABC  ="SELECT * FROM WHERE ABAACD = '" + firstName+

Привет, указанное выше значение свойства равно null внутри оператора select, но я вижу значение after@Value в переменной firstName в режиме отладки.

чего здесь не хватает?

1 Ответ

0 голосов
/ 05 августа 2020

Spring добавит свойства через некоторое время после создания объекта. Для вашей переменной selectABC вы устанавливаете ее перед вызовом конструктора, а объекты по умолчанию имеют значение null.

Вам необходимо использовать аннотацию @PostConstruct, чтобы гарантировать, что Spring завершил инициализацию bean-компонента за вас.

String selectABC;

@PostConstruct
public void init() {
  selectABC  ="SELECT * FROM WHERE ABAACD = '" + firstName + "'";
}

Другой вариант - добавить постоянную часть непосредственно внутри аннотации @Value:

@Value("SELECT * FROM WHERE ABAACD = '${spring.firstName}'")
String selectABC;
...