在程式中用new ClassPathXmlApplicationContext()的注意事項
問題背景:在我們的web程式中,用spring來管理各個例項(bean), 有時在程式中為了使用已被例項化的bean, 通常會用到這樣的程式碼:
ApplicationContext appContext = new ClassPathXmlApplicationContext("classpath:META-INF/spring/applicationContext-common.xml"); ApplicationContext appContext=appContextUtil.getContext(); ProjectServiceFacade projectServiceFacade=(ProjectServiceFacade)appContext.getBean("biz.projectServiceFacade");
上述的程式碼會帶來一個問題:因為它會重新裝載applicationContext-common.xml並例項化上下文bean, 如果有些執行緒配置類也是在這個配置檔案中,那麼會造成做相同工作的的執行緒會被啟兩次。一次是web容器初始化時啟動,另一次是上述程式碼顯示的例項化了一次。這在業務上是要避免的。
解決方法:不用類似new ClassPathXmlApplicationContext()的方式,從已有的spring上下文取得已例項化的bean。
具體步驟:1)增加一個ApplicationContextUtil類,用來取得上下文ApplicationContext
public class ApplicationContextUtil implements ApplicationContextAware { private ApplicationContext context;//宣告一個靜態變數儲存 @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.context=applicationContext; } public ApplicationContext getContext(){ return context; } }
2) 對ApplicationContextUtil類增加 Spring配置,讓Spring完成此工具類的裝載並且完成applicationcontext上下文的注入;applicationContext-common.xml配置如下:
//初始化appliationUtil類,並完成ApplicationContext的注入
<bean id="applicationContextUtil" class="com.service.utils.ApplicationContextUtil"></bean>
//對業務類注入ApplicationContextUtil例項
<bean id="workSignCheckJob" class="com.service.tools.quartz.WorkSignCheckJob" > <property name="appContextUtil" ref="applicationContextUtil" /> </bean>
3)業務類呼叫程式碼如下:
ApplicationContext appContext=appContextUtil.getContext();
ProjectServiceFacade projectServiceFacade=(ProjectServiceFacade)appContext.getBean("biz.projectServiceFacade");
WorkSignService workSignService=(WorkSignService)appContext.getBean("biz.workSignService");
相關推薦
在程式中用new ClassPathXmlApplicationContext()的注意事項
問題背景:在我們的web程式中,用spring來管理各個例項(bean), 有時在程式中為了使用已被例項化的bean, 通常會用到這樣的程式碼: ApplicationContext appContext = new ClassPathXmlAppli
在程式中用new ClassPathXmlApplicationContext()獲取Spring的上下文環境注意事項
問題背景:在我們的web程式中,用spring來管理各個例項(bean), 有時在程式中為了使用已被例項化的bean, 通常會用到這樣的程式碼: ApplicationContext appContext = new ClassPathXm
在程序中用new ClassPathXmlApplicationContext()的註意事項
highlight pat tro ext pri .get color board service 問題背景:在我們的web程序中,用spring來管理各個實例(bean), 有時在程序中為了使用已被實例化的bean, 通常會用到這樣的代碼: [java] view
【微信小程式】scroll-view 注意事項
之前用到scroll-view的時候踩過一次坑,解決後,覺得不是什麼很深的坑,遂沒有做記錄,結果這次又用到了,同一個坑又掉進去一次,心裡很難受,難受我沒長腦子,也難受我眼高手低,所以這一次,我決定記錄下來,給自己一個警醒! 橫向滑動注意事項: 1、scroll-view
Log4Net在VS開發程式中的應用注意事項
本人開發是參考的部落格http://www.cnblogs.com/kissazi2/p/3393595.html 作者寫的很全,很詳細,遇到的問題如下: 示例中LogHelper.cs類中有如下程式碼: public static readonly log4net.ILog lo
小程式開發小遊戲注意事項
今天研究小遊戲開發,總結了一些自己遇到的問題 : 一. 註冊appId 用小程式開發的小遊戲跟用小程式開發其他專案不是公用的一個appId 如果你現在的小程式賬號已經選了別的類目(非遊戲),那你就需要另外註冊一個賬號來單獨申請小遊戲appId
微信小程式開發流程以及注意事項
三、獲取appid:“設定”-“開發設定” 四、開啟“微信開發者工具”,新建專案 五、進入到專案首頁 六、程式碼構成 自動生成的目錄結構如下: ├── pages | ├── index | | ├── inde
程式設計師工作交接注意事項
做為一個程式設計師,難免會碰上因同事離職接手新系統,如果碰巧你又是這家公司的新人,在業務不熟悉的情況下,需要考慮哪些事項呢。 1. 文件資料。 雖然大多數系統文件資料匱乏,但以下資料是必須的。 應用程式部署圖:應用程式(或服務)部署在那臺伺服器上,和其相關的伺服器有哪些?比
Android中用命令列檢視內嵌資料庫SQLite3的一些注意事項
進入手機模擬器的shell環境 連線好手機模擬器後,通過Android Studio的Teminal終端直接進入shell環境 adb shell //進入手機模擬器的shell環境 s
Vue.js中用v-bind繫結class的注意事項
此處樣式class的名稱必須加上引號,否則會將其當做物件的屬性,從而使得初始化報錯。 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>vue關於cl
小程式通過 url 向內嵌 H5 傳參注意事項
當在小程式中通過 url 向 <web-view> 內嵌的 H5 傳參時,當包含特殊字元時需要進行編碼處理(不然 <web-view> 中是拿不到值的,小程式竟然沒有錯誤提示...): 1、test.wxml <view> <web-view src="
三週學會小程式第一講:小程式申請和注意事項
註冊 註冊郵箱 個人申請小程式非常簡單,首先你需要註冊一個全新的郵箱。 當然用你的個人郵箱也可以,小編考慮到後面你可以再次開發自己的小程式,所以這裡還是重新申請一個比較好。網易郵件一個手機號可以申請15個郵箱,是一個不錯的選擇 註冊小程式 進入 https://mp.weixin.qq.com/ 頁面
小程式成長之路_給頁面新增tabBar 和 新增tabBar時的注意事項 (三)
上篇部落格我們已經成功建立頁面,並且顯示我們自己所建立頁面的內容,那麼我們都知道每個專案下面都會有tab bar,當然大部分都有,也不排除沒有的情況啊,那麼這篇我主要是來新增一個tabBar並且 總結一下寫的過程中一個小程式 小白開發者遇到讓人頭疼的問題,並講解解決方法,也許
小程式 canvas注意事項(1)
在畫網路圖片時,需要先將圖片下載到本地,需要新增下載域名,在下載成功之後再進行畫圖操作,需要注意非同步下載問題,可以使用await async等框架,也可以使用callback,下面是個小例子: //
小程式web-view頁面巢狀pdf.js網頁注意事項
近段時間使用小程式開發時,有一個使用說明模組需要用pdf.js來展示PDF內容。 在安卓中是可以正常顯示的,在IOS中會報無法讀取PDF檔案的錯誤。 解決方法:web-view連結到一個過渡頁面 var u = navigator.userAgent;
微信小程式之購物車和父子元件傳值及calc的注意事項
在做微信小程式時,覺得小組裡對購物車的實現不是很完美,就自己嘗試的寫了下,然後用到了父子元件傳值,父子元件傳值的話,和vue框架上是非常相似的,以及calc這個css函式,calc有個注意點,自己不怎麼用,一時間有差點忘了,這裡記錄下 1.效果圖 2.子元件實現
FPGA nios編寫LCD12864的驅動程式過程以及注意事項,本人親自踩坑,重要!!!
LCD12864引腳如下: FPGA開發板得提供,3.3v電壓,5v電壓,普通io都是3.3v電壓 DB:資料腳,得用雙向io,因為程式裡面需要讀取液晶的應答(普通io3.3v可以) E: 輸出引
程式設計師找工作的個人經驗教訓以及注意事項
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
程式設計師創業注意事項
儘量不做自己不擅長的領域 一些創業專案與創業者自身工作無關或興趣完全無關的行業領域,似乎覺得找到了一個行業的痛點,想著只要自己想出來的這個點子去做一個網站或APP就能撬動整個市場,甚至夢想著成為下一個獨角獸公司。但這是創業中第一個也是最大的坑,當你的創業點子誕生時可能就已經註定了它的失敗
小程式學習之路:注意事項統計
這篇文章記載在小程式的一些注意事項和遇到的bug,包括解決方案 子控制元件點選事件和父控制元件之間的傳遞 當一個view裡面包裹了了一個子view(如text控制元件),然後兩個控制元件都新增點選事件,如何讓點選text的時候父view的點選事件不觸發呢? 在點選事件t