在项目中需求总是改来改去,如果直直接修改代码,或者注释代码,总觉得不是那么的优雅,所以有更好的实现方式:
- MainService接口有两个实现类 MainServiceImpl 和 MainNewServiceImpl
MainService接口:
package com.kongzhong.aw.promotion.service;
import com.kongzhong.aw.promotion.exception.CustomException;
import com.kongzhong.aw.promotion.param.RespEntity;
import java.io.UnsupportedEncodingException;
/**
* @author caoxiya
*/
public interface MainService {
/**
* 领取奖励
* @param userName 用户名
* @return 领取结果
* @throws CustomException
*/
RespEntity getWelfare(String userName) throws CustomException;
/**
* 判断是否激活
* @param userName
* @return
* @throws UnsupportedEncodingException
*/
RespEntity checkActivationAw(String userName) throws UnsupportedEncodingException;
}
以下是MainService接口的两个实现类,下面介绍多种实现方式
实现类1
package com.kongzhong.aw.promotion.service.impl;
import com.kongzhong.aw.promotion.exception.CustomException;
import com.kongzhong.aw.promotion.mapper.mysqlmain.MysqlMainMapper;
import com.kongzhong.aw.promotion.mapper.oraclemain.OracleMainMapper;
import com.kongzhong.aw.promotion.param.BaseParam;
import com.kongzhong.aw.promotion.param.ErrorCodeEnum;
import com.kongzhong.aw.promotion.param.RespEntity;
import com.kongzhong.aw.promotion.service.MainService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
/**
* @Description : 主方法
* @Author : caoxiya
* @Date: 2020-06-24 17:58
*/
@Service()
public class MainNewServiceImpl implements MainService {
@Resource
private OracleMainMapper oracleMainMapper;
@Resource
private MysqlMainMapper mysqlMainMapper;
@Override
@Transactional(value = "transactionManagerMain",rollbackFor = Exception.class)
public RespEntity getWelfare(String userName) throws CustomException {