Класс помечен @SpringBootApplication
.
И для справки ниже приведен конструктор, который вызывается Spring Boot при создании приложения bean:
public BwsApplication(ConfigClass configClass) {
config = configClass;//SONAR - Remove this assignment of "config"
}
SpringBootApplication, представленный этим классом, будет создан один и только один раз. Таким образом, с логической точки зрения кажется недопустимым превращать это поле в поле static
. Но на самом деле, сделать его static
или нет не имеет значения, так как оно будет передано не более чем одному экземпляру. Вы ничего не жалеете, делая это static
.
Я думаю, что вы создали поле static
, потому что вы использовали бы его в методе static
main.
Но это не способ сделать это.
Вместо этого удалите модификатор static
и переместите этот код в метод экземпляра @PostConstruct
, который будет выполнен после внедрения зависимости в этот компонент:
Connection con = config.getConnection();
int number = StudentsManager.getStudentsNumber(con);
QuartzApp qa = new QuartzApp(config);
qa.excecution(number );
Таким образом, вы можете ссылаться на поле config
, даже если это поле экземпляра.
Это может выглядеть так:
@SpringBootApplication
public class BwsApplication {
private ConfigClass config;
public BwsApplication(ConfigClass configClass) {
config = configClass;//SONAR - Remove this assignment of "config"
}
public static void main(String[] args) throws SQLException {
SpringApplication.run(BwsApplication.class, args);
}
@PostConstruct
private void postConstruct() {
Connection con = config.getConnection();
int number = StudentsManager.getStudentsNumber(con);
QuartzApp qa = new QuartzApp(config);
qa.excecution(number);
}
}