一、Redis 是一個高性能的key-value數據庫。包括5中數據類型:string list hash set sorted set;主從模式:一個主服務器master,多個從服務器slave,主服務器負責寫,並同步到從服務器上,從服務器負責系統獲取數據的請求。string:set get list:lset lpop hash:hset hget set:set spop zset:zadd zrangehtml
二、IOC控制反轉是經過反射機制實現的,在傳統的對象建立中,一般調用者來建立被調用者的實例,而在spring中建立被調用者有spring容器來完成,而後注入調用者。接口注入、set注入、構造方法注入。下降了組件之間的耦合。例子:controller層 調用service層,service層調用dao層就是經過容器建立的。前端
AOP面向切面編程:簡單地說,就是將那些與業務無關,卻爲業務模塊所共同調用的 邏輯或責任封裝起來,好比日誌記錄,便於減小系統的重複代碼,下降模塊間的耦合度,並有利於將來的可操做性和可維護性。登入登出、操做日誌記錄:定義一個切面 aspect 類,在構造方法上注入切點@pointAspect(),在方法上注入通知。自定義@document接口,打開註解、掃描全部文件。java
三、權限控制:用戶 模塊(零售、信用卡微信、營銷)角色 權限資源表 用戶角色關係表 用戶模塊關係表 角色權限關係表 多對多的關係 去重linux
四、shiro原理相同。Apache Shiro是一個強大而靈活的java開源安全框架,它可以乾淨利落地處理身份認證,受權,企業會話管理和加密。Shiro的4大核心功能——身份驗證,受權,會話管理和加密 MD5散列屢次。過濾器 整合redis或者 memcache。git
五、加密算法:Base64加密算法 SHA1加密算法 MD5加密算法程序員
六、頁面:github
七、客戶服務通知平臺:web
批量消息解析發送 聯機消息解析發送 零售短信通 對公金衛士 信用卡 短信上下行 etl跑批
信用卡短信計費:
信用卡邏輯:V+主機下發交易報文到信息交換中心-信息交換中心到BCMP-BCMP解析報文,根據報文判斷交易類型 密碼類 通常刷卡、預借現金、還款、分期、帳戶驗證、預受權、預受權完成
判斷是否簽約短信簽約表,簽約發送短信、發送微信、官方APP、口袋、支付寶 UCP/口袋、pscp。
純透傳、半透傳、模板號、手機號、付費部門、發送內容等字段。redis
八、內存加載:建立service接口,每五分鐘調用一次。建立一個類 定義一個static 變量hashMap<String,HashMap>,查詢要放入內存的數據,放入static變量。 算法
九、短信上下行:車險分期指令:MOS觸發車險分期指令報文MQ到信息交換中心--信息交換中心轉發的消息被BCMP接收,BCMP組裝併發送指令短信給客戶--客戶回覆指令到短信平臺--BCMP經過EJB從短信平臺獲取數據,存放到上行表(cmp_pscp_up_sms)--BCMP把上行表中的指令經過信息交換中心轉發到MOS系統--MOS接收並處理指令觸發MQ通過信息交換中心發送到BCMP,BCMP發送短信到客戶。
十、ESB接口開發:司法凍結郵件收發人維護查詢接口 查詢根據分行號查詢被凍結收件人姓名及郵箱地址。根據分行號、分行名稱、收件人姓名及郵件地址新增、刪除被凍結用戶。
11.、D+三類戶 一類戶 二類戶 三類戶 最多有五個 單日收付不能超過2000元、年收付不能超過5萬 若是超過5萬發送短信提醒 攜帶我的身份證到營業廳備註 不然凍結帳戶。聯機根據客戶號修改手機號,爲了防止遺漏天天晚上批量在推送一次,存儲過程:create or replace procedure procedureName() is 聲明變量 begin mergin into 表 using() when not matched then insert exceptin when others then rollback 插入日誌 end;
十二、營銷微信廣告優化:業務場景:首先根據交易參數判斷是否營銷規則,符合發送營銷微信廣告,不符合發送默認的廣告(一條)。
多條默認的廣告,符合營銷規則的正常發送營銷微信廣告,不符合的,前五條交易發送第一條默認廣告,6-10發送第二條默認廣告依次類推。根據客戶號計數,判斷取第幾條默認廣告。Math.random()
1三、標籤表 卡類型 商戶類型 規則表 標籤規則關係表 尾隨內容表
cgmweb系統設計開發 營銷後臺管理系統
新增標籤屬於客戶層,嵌套指標平臺頁面iframe,選擇標籤內容,性別、年齡、城市、婚姻、學歷、額度、帳齡,生成標籤id,入庫。下一步選擇卡片層,普卡、金卡、白金卡、鑽石卡、車主卡等,交易層,境內境外、線上線下、交易類型、交易金額,其它;優先級、推送渠道、微信短信、模板。
標籤表(CGM_LABEL_INFO)
到數據庫撈取全部標籤,撈取條件上次撈取失敗的和標籤未過時時間段內的標籤|上次撈取時間間隔一週
獲取標籤對應的客戶號 HSET key field value 每次撈取一千條數據,循環存入redis。
1四、cgmapp系統設計開發:黑白名單
客戶作一筆消費交易,請求到達主機,主機生成交易報文到信息交換中心,信息交換中心轉發到bcmp系統,bcmp系統(HttpClientTemplate)請求營銷系統獲取營銷短信。
根據交易參數判斷是否匹配到規則,匹配到多條規則按照優先級排序,循環遍歷規則,根據標籤規則關係表,找到對應的標籤id,根據客戶號,到redis緩存中查找該筆交易客戶號是否對應標籤id,若是對應關係表中找到對應的尾隨內容表ID,,在根據尾隨內容表ID到尾隨內容表中查詢尾隨內容返回給bcmp。
1五、linux:
vi wq q! pwd mkdir touch rm -f rmdir -f kill -9 port find / -name file df -h
zip file1.zip file1 建立一個zip格式的壓縮包
unzip file1.zip 解壓一個zip格式壓縮包
tar -cvfz archive.tar.gz dir1 建立一個gzip格式的壓縮包
tar -zxvf archive.tar.gz 解壓一個gzip格式的壓縮包
cat -n /etc/profile 進行編號輸出顯示;
tail -f /var/log/syslog 顯示文件 syslog 的後十行內容並在文件內容增長後,且自動顯示新增的文件內容。
netstat -anp|grep weblogic
1六、
一、當天簽約信用卡短信收費協議的客戶,當天從對應的帳戶、卡號中扣除費用每季度9元
二、每個月初跑批更新(協議有效期即將到期 續訂、流通帳戶)的客戶。
BCMP-CORE查詢協議表中須要扣費的客戶,生成狀況文件,上傳FTP服務器---Haps系統從ftp服務器,獲取文件解析,送主機扣款。
REST面向資源架構 RESTFUL架構:在REST中的一切都被認爲是一種資源。每一個資源由URI標識。使用統一的接口。處理資源使用POST,GET,PUT,DELETE操做相似建立,讀取,更新和刪除(CRUD)操做。無狀態。每一個請求是一個獨立的請求。從客戶端到服務器的每一個請求都必須包含全部必要的信息,以便於理解。通訊都是經過展示。例如XML,JSON
URI :Uniform Resource Identifier,統一資源標識符;
URL:Uniform Resource Locator,統一資源定位符;
URN:Uniform Resource Name,統一資源名稱。
其中,URL,URN是URI 的子集。
http:
spring工做流程:
用戶發起請求到前端控制器(DispatcherServlet),該控制器會過濾出哪些請求能夠訪問Servlet、哪些不能訪問。就是url-pattern的做用,而且會加載springmvc.xml配置文件。
前端控制器會找處處理器映射器(HandlerMapping),經過HandlerMapping完成url到controller映射的組件,簡單來講,就是將在springmvc.xml中配置的或者註解的url與對應的處理類找到並進行存儲,用map<url,handler>這樣的方式來存儲。
HandlerMapping有了映射關係,而且找到url對應的處理器,HandlerMapping就會將其處理器(Handler)返回,在返回前,會加上不少攔截器。
DispatcherServlet拿到Handler後,找到HandlerAdapter(處理器適配器),經過它來訪問處理器,並執行處理器。
執行處理器
處理器會返回一個ModelAndView對象給HandlerAdapter
經過HandlerAdapter將ModelAndView對象返回給前端控制器(DispatcherServlet)
前端控制器請求視圖解析器(ViewResolver)去進行視圖解析,根據邏輯視圖名解析成真正的視圖(jsp),其實就是將ModelAndView對象中存放視圖的名稱進行查找,找到對應的頁面造成視圖對象
返回視圖對象到前端控制器。
視圖渲染,就是將ModelAndView對象中的數據放到request域中,用來讓頁面加載數據的。
經過第8步,經過名稱找到了對應的頁面,經過第10步,request域中有了所須要的數據,那麼就可以進行視圖渲染了。最後將其返回便可。
struts:一個請求在Struts2框架中的處理大概分爲如下幾個步驟(可查看源碼:https://github.com/apache/struts):
1 客戶端初始化一個指向Servlet容器(例如Tomcat)的請求
2 這個請求通過一系列的過濾器(Filter)(這些過濾器中有一個叫作ActionContextCleanUp的可選過濾器,這個過濾器對於Struts2和其餘框架的集成頗有幫助,例如:SiteMesh Plugin)
3 接着FilterDispatcher(現已過期)被調用,FilterDispatcher詢問ActionMapper來決定這個請是否須要調用某個Action
4 若是ActionMapper決定須要調用某個Action,FilterDispatcher把請求的處理交給ActionProxy
5 ActionProxy經過Configuration Manager詢問框架的配置文件,找到須要調用的Action類
6 ActionProxy建立一個ActionInvocation的實例。
7 ActionInvocation實例使用命名模式來調用,在調用Action的過程先後,涉及到相關攔截器(Intercepter)的調用。
8 一旦Action執行完畢,ActionInvocation負責根據struts.xml中的配置找到對應的返回結果。返回結果一般是(但不老是,也可 能是另外的一個Action鏈)一個須要被表示的JSP或者FreeMarker的模版。在表示的過程當中可使用Struts2 框架中繼承的標籤。在這個過程當中須要涉及到ActionMapper
在上述過程當中全部的對象(Action,Results,Interceptors,等)都是經過ObjectFactory來建立的。
jsp:
framework:
velocity:
memecache:
JSP(Java Server Pages)是JavaWeb服務器端的動態資源,它與html頁面的做用是相同的,顯示數據和獲取數據。
jsp: 做爲請求發起頁面,例如顯示錶單、超連接。
: 做爲請求結束頁面,例如顯示數據。
Servlet:
做爲請求中處理數據的環節。
jsp的組成
jsp = html + java腳本 + jsp標籤(指令)
jsp中可直接使用的對象一共有9個,被稱之爲9大內置對象
3種java腳本:
<%…%>:寫java代碼片斷,(相似方法)
<%=…%>:用於輸出,用於輸出一條表達式(或變量)的結果。
<%!…%>:聲明,用來建立類的成員變量和成員方法(相似與類)
jsp註釋:<%– … –%>
當服務器把jsp編譯成java文件時已經忽略了註釋部分!
Velocity是一個基於Java的模板引擎。它容許任何人使用簡單而強大的模板語言來引用Java代碼中定義的對象。
當Velocity用於Web開發時,Web設計人員能夠與Java程序員並行工做,以根據模型 - 視圖 - 控制器(MVC)模型開發Web站點,這意味着網頁設計人員能夠專一於建立一個看起來很好的站點,程序員能夠專一於編寫一流的代碼。Velocity將Java代碼與網頁分開,使網站在其生命週期內更加可維護,併爲Java Server Pages(JSP)或PHP提供了可行的替代方案。
Velocity的功能遠遠超出了網絡的範圍; 例如,它能夠用於從模板生成SQL,PostScript和XML。它能夠用做生成源代碼和報告的獨立實用程序,也能夠用做其餘系統的集成組件。例如,Velocity爲各類Web框架提供模板服務,使他們可以根據真正的MVC模型,使視圖引擎促進Web應用程序的開發。
Transmission Control Protocol/Internet Protocol的簡寫,中譯名爲傳輸控制協議/因特網互聯協議,又名網絡通信協議
TCP負責發現傳輸的問題,一有問題就發出信號,要求從新傳輸,直到全部數據安全正確地傳輸到目的地。而IP是給因特網的每一臺聯網設備規定一個地址。
HTTP是一個應用層協議,由請求和響應構成,是一個標準的客戶端服務器模型。HTTP是一個無狀態的協議。
一次HTTP操做稱爲一個事務,其工做過程可分爲四步:
1)首先客戶機與服務器須要創建鏈接。只要單擊某個超級連接,HTTP的工做開始。
2)創建鏈接後,客戶機發送一個請求給服務器,請求方式的格式爲:統一資源標識符(URL)、協議版本號,後邊是MIME信息包括請求修飾符、客戶機信息和可能的內容。
3)服務器接到請求後,給予相應的響應信息,其格式爲一個狀態行,包括信息的協議版本號、一個成功或錯誤的代碼,後邊是MIME信息包括服務器信息、實體信息和可能的內容。
4)客戶端接收服務器所返回的信息經過瀏覽器顯示在用戶的顯示屏上,而後客戶機與服務器斷開鏈接。
RabbitMQ:安裝部署簡單,上手門檻低,功能豐富,符合AMQP標準;企業級消息隊列,通過大量實踐考驗的高可靠;集羣易擴展,能夠輕鬆的增減集羣節點;有強大的WEB管理頁面。大量成功的應用案例,例如阿里、網易等互聯網巨頭都有使用。AMQP(Advanced Message Queuing Protocol,高級消息隊列協議)開始開發。一、MQ原型 Pub/Sub發佈訂閱(廣播):使用topic做爲通訊載體 Publish/Subscribe(Pub/Sub)發佈訂閱 PTP點對點:使用queue做爲通訊載體二、MQ組成 Broker:消息服務器,做爲server提供消息核心服務 Producer:消息生產者,業務的發起方,負責生產消息傳輸給broker, Consumer:消息消費者,業務的處理方,負責從broker獲取消息並進行業務邏輯處理 Topic:主題,發佈訂閱模式下的消息統一聚集地,不一樣生產者向topic發送消息,由MQ服務器分發到不一樣的訂閱 者,實現消息的廣播 Queue:隊列,PTP模式下,特定生產者向特定queue發送消息,消費者訂閱特定的queue完成指定消息的接收 Message:消息體,根據不一樣通訊協議定義的固定格式進行編碼的數據包,來封裝業務數據,實現消息的傳輸 解耦,在高併發場景中,每每同步處理容易致使阻塞,經過消息隊列緩存消息,在某一時刻再去處理從而能夠緩解系統壓力。