標籤:sre person log 流程 sources 返回 有用 open hub
囉裡囉唆的寫了一大堆,最後還是全刪除了。哎~
言歸正傳,最近因爲發生了很多事情,所以更新的有嗲晚了,最近也一直在學習,但是感覺效率什麽的不是很高,這是不對的,反思一下,從這篇博文開始,打起精神吧。
Mybatis批量新增數據:
批量插入:儅我們有批量插入數據的需求時,比如插入100條數據,傳統的做法是利用for循環100次,但是在這種方式存在嚴重的效率問題,需要頻繁的獲取連接。
此時比較好的解決辦法就是使用Mybatis支援批量插入的配置和語法。
需要在數據庫連接字串処設置allowMultiQueries=true
獲取sqlsessionfactory
public static SqlSessionFactory sqlSessionFactory = null; public static SqlSessionFactory getSqlSessionFactory() {
if (sqlSessionFactory == null) {
String resource = "mybatis-config.xml";
try {
Reader reader = Resources.getResourceAsReader(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
} catch (IOException e) {
e.printStackTrace();
}
}
return sqlSessionFactory;
} public void testBatchForExecutor()
{
SqlSession sqlSession = this.getSqlSessionFactory().openSession(
ExecutorType.BATCH); PersonMapper personMapper = sqlSession.getMapper(PersonMapper.class); for (int i = 0; i <10000 ; i++)
{
personMapper.addPerson(new User("jerry","bj"));
} sqlSession.commit(); sqlSession.close(); } Mybatis攔截器實現分頁: 使用PageHelper外掛程式分頁即可,詳細介紹參考pagehelper的github,這裏不再贅述。 但是外掛程式的使用可能會修改底層設計,使用需謹慎 外掛程式式產生的層層代理對象的責任鏈模式,使用反射機制實現 外掛程式的編寫要考慮全面,特便是多個外掛程式層層代理的時候。 還是比較推薦使用傳統的sql語句方式,這方面就比較基礎了,就不多説了。 spring MVC: springMVC是spring架構的一個後續產品,目前最好的實現MVC設計模式的架構,和spring架構可以很好的結合使用,不需要整合 核心組件: DispatcherServlet:前置控制器,也是整個SpringMvc架構的核心 HandleMapping:將請求映射到Handler Handler:後端控制器,完成具體的業務邏輯 HandlerInterceptor:處理器攔截器 HandlerExecutionChain:處理器執行鏈 HandlerAdapter:處理器適配器 ModelAndView:裝載模型數據和視圖資訊 ViewResolver:視圖解析器 實現流程: 1、客戶端請求被DispatcherServlet接收 2、DispatcherServlet將請求映射到Handler 3、產生Handler以及HandlerInterceptor 4、返回HandlerExecutionChain 5、DispatcherServlet通過HandlerAdapter執行Handler 6、返回一個ModelAndView 7、DIspatcherServlet通過ViewResolver進行解析 8、返回填充了模型數據的view,響應給客戶端如圖(網上藉鑒,侵權聯係我刪除):
值得一提的是大部分的組件都由架構提供,開發者只需要通過配置進行關聯即可,需要手動編寫的只有Handler和view。
環境配置:
springMVC 攔截器:
配置如上:
Java代碼:
攔截器和過濾器:
(1)過濾器(Filter):當你有一堆東西的時候,你只希望選擇符合你要求的某一些東西。定義這些要求的工具,就是過濾器。
(2)攔截器(Interceptor):在一個流程進行中的時候,你希望幹預它的進展,甚至終止它進行,這是攔截器做的事情。
具體區別:
(1)攔截器是基於java的反射機制的,而過濾器是基於函數回調。
(2)攔截器不依賴於servlet容器,而過濾器依賴於servlet容器。
(3)攔截器只能對action請求起作用,而過濾器則可以對幾乎所有的請求起作用。
(4)攔截器可以訪問action上下文、值棧裡的對象,而過濾器不能。
(5)在action的生命週期中,攔截器可以多次被調用,而過濾器只能在容器初始化時被調用一次。
(6)攔截器可以擷取IOC容器中的各個bean,而過濾器就不行,這點很重要,在攔截器裡注入一個service,可以調用商務邏輯。
摘自:53996873
攔截器功在對請求許可權評鑑方面確實很有用處
dotNet程式員的Java爬坑之旅(二)