Я определил все необходимые классы с атрибутами.
Но когда я запускаю приложение, я получаю 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());
}
}
Код: Выделить всё
public abstract class AbstractDAO {
private NamedParameterJdbcTemplate namedParameterJdbcTemplateV2;
public NamedParameterJdbcTemplate getNamedParameterJdbcTemplateV2() {
return this.namedParameterJdbcTemplateV2;
}
@Autowired
@Qualifier("namedParameterJdbcTemplateV2")
public void setNamedParameterJdbcTemplateV2(NamedParameterJdbcTemplate namedParameterJdbcTemplateV2) {
this.namedParameterJdbcTemplateV2 = namedParameterJdbcTemplateV2;
}
}
Код: Выделить всё
@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);
}
}
Дополнительная информация:
создали еще один класс конфигурации для внедрения bean-компонента
Код: Выделить всё
@Bean public GuestInfoDAOV2 getGuestInfoDAOV2() {
return new GuestInfoDAOV2Impl(); }
Код: Выделить всё
@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();
}
Дайте мне знать, если потребуется дополнительная информация.
SpringBoot версии 3.3.0
Подробнее здесь: https://stackoverflow.com/questions/785 ... springboot
Мобильная версия