에러

원인
◎ 데이터 크롤링을 리스너로 움직이도록 설정해 놓았다.
◎ JdbcTemplate 초기화 타이밍 보다 크롤링이 움직이는 타이밍이 빠르다.
◎ JdbcTemplate 초기화되어 있지 않기에 쿼리문 수행이 불가능하다.
해결
◎ 크롤링 리스너 맨 위에 DAO를 먼저 Autowired하도록 해준다.
@Component
public class CrawlingListener implements ApplicationListener<ContextRefreshedEvent> {
@Autowired
private ProductDAO pDAO;
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
crawling();
}
@Repository("productDAO")
public class ProductDAO {
// 의존관계 ▶ DI(의존주입)
@Autowired
private JdbcTemplate jdbcTemplate;
// 쿼리문
private static final String SELECTALL = "";
private static final String SELECTONE = "";
private static final String INSERT = "INSERT INTO PRODUCT "
+ "(PRODUCT_NAME, PRODUCT_DETAIL, COST_PRICE, RETAIL_PRICE, SALE_PRICE, STOCK, INGREDIENT, DOSAGE, EXPIRATION_DATE, REGISTER_DATE, MODIFY_DATE, SALE_STATE) "
+ " VALUES "
+ "("
+ "?, "
+ "?, "
+ "?, "
+ "?, "
+ "?, "
+ "?, "
+ "?, "
+ "?, "
+ "?, "
+ "CURRENT_TIMESTAMP, "
+ "CURRENT_TIMESTAMP, "
+ "? "
+ " )";