为了兼容多种业务,想在项目中使用一些设计模式,以便于管理。
例如,我需要创建用户并返回userid,每种业务创建的方式都不一样。
我选取了“适配器模式”,但是我发现,在springmvc的管理下,常常需要new一些类,这时候,在这个类里的一些spring标签,却失效了。
以下是我创建用户的代码:
public interface IPlatformSendPay {
public abstract Object sendPayInA(Object object);
public abstract Object sendPayInB(Object object);
}
public class PlatformSendPay {
private Object obj;
@Resource
private OpenPaymentDao openPaymentDao;
public PlatformSendPay(Object obj) {
this.obj = obj;
}
public Object getUserIdInA(){
JidouOrderData jidouOrderData = (JidouOrderData) obj;
int stationId = jidouOrderData.getStation_id();
//此处,openPaymentDao为空,意味着@Resource失效,这个PlatformSendPay类没有纳入spring管理中
Integer userId = openPaymentDao.getIdentifyUser(jidouOrderData.getIdentifyId(), "1000000013");
if (ObjectUtils.isEmpty(userId)){
//todo:打印
}
return userId;
}
}
public class SendPay extends PlatformSendPay implements IPlatformSendPay{
public SendPay(Object obj) {
super(obj);
}
@Override
public Object sendPayInA(Object object) {
return getUserIdInA();
}
@Override
public Object sendPayInB(Object object) {
return getUserIdInB();
}
}
//业务一
SendPay sendPay = new SendPay(jidouOrderData);
int userId = (int) sendPay.getUserIdInA();
//业务二
SendPay sendPay = new SendPay(JdOrderData);
int userId = (int) sendPay.getUserIdInB();
1.PlatformSendPay 为何spring绑定不成功?如何才能绑定成功?
2.springmvc里,是不是尽可能少使用这类的设计模式?在对象里面的方法,使用的变量有spring标签,但是在new的情况下,这样是不是会失效?
哈士奇WWW
慕沐林林
相关分类