Проблема при автоматическом подключении bean-компонентов в Spring BootJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Проблема при автоматическом подключении bean-компонентов в Spring Boot

Сообщение Anonymous »

Я пытаюсь создать проект с помощью Spring boot JDBC.
Я определил все необходимые классы с атрибутами.
Но когда я запускаю приложение, я получаю NullPointerException.
Ниже это код:
Конфигурация компонента:

Код: Выделить всё

@Configuration
public class DataSourceConfig {

@Bean
public DataSource dataSourceV2() {
return DataSourceBuilder.create()
.url("url")
.username("username")
.password("password")
.driverClassName("oracle.jdbc.OracleDriver")
.build();
}
@Bean("namedParameterJdbcTemplateV2")
public NamedParameterJdbcTemplate namedParameterJdbcTemplateV2() {
return new NamedParameterJdbcTemplate(dataSourceV2());
}
}

Класс AbstractDAO

Код: Выделить всё

public abstract class AbstractDAO {

private NamedParameterJdbcTemplate namedParameterJdbcTemplateV2;
public NamedParameterJdbcTemplate getNamedParameterJdbcTemplateV2() {
return this.namedParameterJdbcTemplateV2;
}

@Autowired
@Qualifier("namedParameterJdbcTemplateV2")
public void setNamedParameterJdbcTemplateV2(NamedParameterJdbcTemplate namedParameterJdbcTemplateV2) {
this.namedParameterJdbcTemplateV2 = namedParameterJdbcTemplateV2;
}

}

Класс реализации DAOI

Код: Выделить всё

@Component
@PropertySource("classpath:MultiSourceSQL.properties")
public class GuestInfoDAOV2Impl extends AbstractDAO implements GuestInfoDAOV2 {

@Value("${guestInfoSQLV2}")
private String guestInfoSQLV2;

@Qualifier("guestInfoResultSetExtractorV2")
@Autowired
private ResultSetExtractor guestInfoResultSetExtractorV2;

@Override
public GuestInfoV2DTO getGuestInfo(int beginIndex, int endIndex) throws DataAccessException {
Map params = new HashMap();
params.put(BEGININDEX, beginIndex);
params.put(ENDINDEX, endIndex);
NamedParameterJdbcTemplate namedParameterJdbcTemplateV2 = getNamedParameterJdbcTemplateV2();
return namedParameterJdbcTemplateV2.query(guestInfoSQLV2, params, guestInfoResultSetExtractorV2);
}
}
При отладке класса GuestInfoDAOV2Impl я получаю значение null для всех трех свойств (guestInfoSQLV2, GuestInfoResultSetExtractorV2, NameParameterJdbcTemplateV2).
Дополнительная информация:
создали еще один класс конфигурации для внедрения bean-компонента

Код: Выделить всё

@Bean public GuestInfoDAOV2 getGuestInfoDAOV2() {
return new GuestInfoDAOV2Impl(); }
Кроме того, я создал TestClass с методом run:

Код: Выделить всё

@Autowired
@Qualifier("getGuestInfoDAOV2")
GuestInfoDAOV2Impl guestInfoDAOV2;
public void run() {
GuestInfoListV2DTO list = guestInfoDAOV2.getGuestInfo(100000000, 100010508);
list.getGuestInfoDTOList().get(0);
}
Вызов вышеуказанного класса из основного метода

Код: Выделить всё

public static void main(String[] args) {
SpringApplication.run(NghpContentIndexingApplication.class, args);
TestClass testClass = new TestClass();
testClass.run();
}
Кто-нибудь может помочь объяснить, почему bean-компоненты не внедряются в код.
Дайте мне знать, если потребуется дополнительная информация.
SpringBoot версии 3.3.0

Подробнее здесь: https://stackoverflow.com/questions/785 ... springboot
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»