package com.juick.service; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.InitializingBean; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.support.TransactionTemplate; import org.springframework.util.Assert; import javax.inject.Inject; /** * Created by aalexeev on 11/13/16. */ public abstract class BaseJdbcService implements InitializingBean { protected final Logger logger = LoggerFactory.getLogger(getClass()); private JdbcTemplate jdbcTemplate; private TransactionTemplate transactionTemplate; private NamedParameterJdbcTemplate namedParameterJdbcTemplate; protected JdbcTemplate getJdbcTemplate() { return jdbcTemplate; } protected NamedParameterJdbcTemplate getNamedParameterJdbcTemplate() { return namedParameterJdbcTemplate; } protected TransactionTemplate getTransactionTemplate() { return transactionTemplate; } @Override public void afterPropertiesSet() throws Exception { logger.debug("Checking required beans"); Assert.notNull(jdbcTemplate); Assert.notNull(namedParameterJdbcTemplate); Assert.notNull(transactionTemplate); } @Inject public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate); } @Inject public void setTransactionManager(PlatformTransactionManager transactionManager) { transactionTemplate = new TransactionTemplate(transactionManager); } }