javascript
java设计模式在项目中的使用_SpringMVC项目里,有必要使用一些设计模式吗?
背景
為了兼容多種業務,想在項目中使用一些設計模式,以便于管理。
例如,我需要創建用戶并返回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();
}
}
這是我的實現類,springmvc中的@Service標簽
//業務一
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的情況下,這樣是不是會失效?
總結
以上是生活随笔為你收集整理的java设计模式在项目中的使用_SpringMVC项目里,有必要使用一些设计模式吗?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人人都有极客精神
- 下一篇: HTML/CSS/JavaScript学