背景為了兼容多種業(yè)務(wù),想在項目中使用一些設(shè)計模式,以便于管理。例如,我需要創(chuàng)建用戶并返回userid,每種業(yè)務(wù)創(chuàng)建的方式都不一樣。我選取了“適配器模式”,但是我發(fā)現(xiàn),在springmvc的管理下,常常需要new一些類,這時候,在這個類里的一些spring標簽,卻失效了。以下是我創(chuàng)建用戶的代碼:接口publicinterfaceIPlatformSendPay{publicabstractObjectsendPayInA(Objectobject);publicabstractObjectsendPayInB(Objectobject);}父類publicclassPlatformSendPay{privateObjectobj;@ResourceprivateOpenPaymentDaoopenPaymentDao;publicPlatformSendPay(Objectobj){this.obj=obj;}publicObjectgetUserIdInA(){JidouOrderDatajidouOrderData=(JidouOrderData)obj;intstationId=jidouOrderData.getStation_id();//此處,openPaymentDao為空,意味著@Resource失效,這個PlatformSendPay類沒有納入spring管理中IntegeruserId=openPaymentDao.getIdentifyUser(jidouOrderData.getIdentifyId(),"1000000013");if(ObjectUtils.isEmpty(userId)){//todo:打印}returnuserId;}}子類publicclassSendPayextendsPlatformSendPayimplementsIPlatformSendPay{publicSendPay(Objectobj){super(obj);}@OverridepublicObjectsendPayInA(Objectobject){returngetUserIdInA();}@OverridepublicObjectsendPayInB(Objectobject){returngetUserIdInB();}}這是我的實現(xiàn)類,springmvc中的@Service標簽//業(yè)務(wù)一SendPaysendPay=newSendPay(jidouOrderData);intuserId=(int)sendPay.getUserIdInA();//業(yè)務(wù)二SendPaysendPay=newSendPay(JdOrderData);intuserId=(int)sendPay.getUserIdInB();疑問1.PlatformSendPay為何spring綁定不成功?如何才能綁定成功?2.springmvc里,是不是盡可能少使用這類的設(shè)計模式?在對象里面的方法,使用的變量有spring標簽,但是在new的情況下,這樣是不是會失效?
SpringMVC項目里,有必要使用一些設(shè)計模式嗎?
慕的地6264312
2019-05-21 10:53:24