原创 設計模式_25:動態代理模式

之前寫過一篇關於代理模式的文章設計模式_4:代理模式,但那時寫的是靜態的代理模式。本篇用兩種方法來實現動態代理:JDK動態代理和CGLib動態代理。 我個人的理解:動態代理和靜態代理的區別是代理類不需要程序員來寫,程序會自動生成代理對象。

原创 【java web】解決流讀完一次就不能再次獲取body數據的問題

問題來自我工作業務上的需求:前端請求時需要將json用RSA算法加密,數據經過後端過濾器進行自動解密,這樣做的好處是以後不需要在每一個方法裏都手動解密一次,增加代碼的簡潔性、可維護性。但這樣一來便會面臨一個問題:http的request請

原创 【從零寫javaweb框架】(三)開發一個類加載器

上一篇我們寫了4個常用工具類,1個維護常量的類,並且通過依賴它們用ConfigHelper實現了配置文件的讀取,上一篇鏈接:【從零寫javaweb框架】(二)定義和加載配置項,現在需要開發一個類加載器,用來加載包名下的所有類。 現在寫一

原创 【從零寫javaweb框架】(六)加載Controller

在上一篇我們實現了依賴注入功能【從零寫javaweb框架】(五)實現依賴注入功能 現在編寫一個ControllerHelper 通過ClassHelper,可以獲取所有定義了Controller註解的類,然後再通過反射獲取該類中所有帶有A

原创 【從零寫javaweb框架】(十一)爲框架添加事務處理

上一篇我們爲框架添加了AOP特性【從零寫javaweb框架】(十)加載AOP框架,現在可以利用這個特性來爲框架添加事務處理。 定義一個事務註解: package org.smart4j.framework.annotation; im

原创 【從零寫javaweb框架】(二)定義和加載配置項

上一篇我們搭建了項目環境【從零寫javaweb框架】(一)搭建開發環境,接下來要做的是定義和加載框架的配置項 第一步:定義配置項 打開上一篇創建好的demo1示例項目,在src/main/resources目錄下創建一個smart.pro

原创 【從零寫javaweb框架】(八)請求轉發器

上一篇我們實現了把ClassHelper/BeanHelper/IocHelper/ControllerHelper在項目啓動時加載進來。【從零寫javaweb框架】(七)初始化框架 現在開始寫請求轉發器,請求轉發器是MVC的核心:需要編

原创 【mysql索引】之使用索引掃描做排序

前言 今天看了《高性能MySQL》的索引掃描做排序章節,並且親身實踐了一下,發現有些結果與原書不一樣,個人猜測是MySQL版本不一樣造成的,下面分享一下我個人的筆記。 簡介 MySQL 有兩種方式生成有序結果:通過排序操作或者按索引順序