'dataSource' or 'jdbcTemplate' is required 通过注解的解决方法

本人由于需要大量用到复杂SQL进行查询统计,JPA标准方式不满足情况,需要用到Dao,初易用遇到了大家常见的:

'dataSource' or 'jdbcTemplate' is required,

在网上找了很多解决方式都是通过XML方式增加配置解决,有工程了全部采用注解,尽量不引入XML配置,这里查阅相关资料给出一种通过注解方式解决的方案

@Repository
public class CollectionCarDaoImpl extends  JdbcDaoSupport implements CollectionCarDao {
    private static Logger logger = LoggerFactory.getLogger(SampleDaoImpl.class);
    
    /**
     * 注入实体管理,需要在WebConfig中通过注解配置
     */
    @PersistenceContext
    private EntityManager em;

    public void setEntityManager(EntityManager entityManager) {
        this.em = entityManager;
    }
    
    /**
     * 注入dataSource,需要在WebConfig中通过注解配置
     */
    @Autowired 
    private DataSource dataSource;
    
    /**
     * 初始化时,设置给父类
     */
    @PostConstruct
    private void initialize() {
        setDataSource(dataSource);
    }

需要支持@PostConstruct注解

该问题主要比较难解决是因为JdbcDaoSupport限制复写几个关键方法导致,因此系统该思路通过变通方式决绝

原文地址:https://www.cnblogs.com/kaihe/p/4817750.html