Рубрики
Без рубрики

Как автоматически подключить источник данных в JdbcDaoSupport

– Как автоматически подключить источник данных в JdbcDaoSupport

Автор оригинала: mkyong.

Простой класс DAO расширяет JdbcDaoSupport , но, поскольку невозможно ввести или @автоматически подключить “источник данных”, метод setDataSource является окончательным, не может быть переопределен.

package com.mkyong.users.dao;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
import org.springframework.stereotype.Repository;

@Repository
public class UserDetailsDaoImpl extends JdbcDaoSupport implements UserDetailsDao {

	//Error, cannot override the final method from JdbcDaoSupport
	@Autowired
	public void setDataSource(DataSource dataSource) {
		this.dataSource = dataSource;
	}
	
}

Решение

Чтобы быстро исправить это, использует @PostConstruct чтобы ввести Источник данных вот так:

package com.mkyong.users.dao;
import javax.sql.DataSource;
import javax.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
import org.springframework.stereotype.Repository;

@Repository
public class UserDetailsDaoImpl extends JdbcDaoSupport implements UserDetailsDao {

	@Autowired
	private DataSource dataSource;

	@PostConstruct
	private void initialize() {
		setDataSource(dataSource);
	}
	
}

В качестве альтернативы создайте собственную реализацию класса JdbcDaoSupport и делайте все, что хотите. Погрузитесь в исходный код jdbcdaподдержка , это просто простой вспомогательный класс для создания JdbcTemplate .

Оригинал: “https://mkyong.com/spring/how-to-autowire-datasource-in-jdbcdaosupport/”