1. 程式人生 > >java 框架個人心得

java 框架個人心得

Java 框架之個人心得

作者:wangyp

2016 4 26

經過這一年的自我程式碼總結,發現對三大框架有了新的認識。

Boss 系統框架主要是基於struts1 +ibatis ,也有struts2,本人工作也就是基於Struts1 和後臺的buff的呼叫,至於業務邏輯自己實在不理解。這就是我一直以來的缺陷所在吧,我不太想關注業務邏輯,我認為技術才是一把利劍。不管去哪都能行走天涯。

一.框架一:struts1.

1.走進struts1.三大框架的本質都是mvc 模式,model+view +controller;以前不夠理解什麼是檢視分離,現在理解了,都是和servlet差不多。

Strut1.也就是servlet 發展而來。Servlet  :請求到servlet ,然後通過servlet跳轉。Strut1 :請求到action 然後跳轉到檢視。通常繼承DispatchAction

成卡派發模組:

首先來看下請求的url:

來看下 漂亮的xml 的配置:

再來看下action 裡面

 

請求由url ,xxx.go. 或者xx.go?command=XXX &xx,請求直接不帶引數,就是直接跳轉到init 裡面,如果帶command 就是帶跳轉的路徑action裡面 也可以 return

請求的路徑mapping .findForard(nextpage)

到 對應的xml 裡面找到jsp;如圖;

 

二.框架二。Struts2:

走進struts2:

Struts2我的理解就是比strut1多了個對action的萬用字元,可以匹配不同的action 和頁面。然後通過返回String 對應result頁面,比struts1更簡潔。而且 struts2 對錶單的引數有自動的封裝功能,只要是引數名對應都可以自動傳遞。不像strut1 需要post request.getparameter();

通常action繼承 ActionSupport

首先看看url

 

再看看 xml 配置

 

看看 action 配置

 

Ibatis :

就我的 理解ibatis 都是通過SqlMapconfig.xml 配置個sql xml  然後 ,這個聯絡起來 對應 的pojo  sql 語句的關係。

然後通過讀取SqlMappConfig.xml   ,生成SqlMapClient,就可以呼叫增刪改查。不過一般都和spring結合 生成 的getSqlMapClientTemplate ()模板類使用

這個 要配置好 SqlMapClientFactoryBean  然後類繼承 SqlMapClientDaoSupport 即可  。

參考:http://blog.csdn.net/jinoon/article/details/6522172

關於自動生成工具:就是通過自動生成工具配置好表字段 和生成的Dao sqlxml 目錄 就可以通過反射生成 對應的dao daoimpl  sql.xml

我的理解是和hibernate 的逆向生成很類似。可以通過表生成 pojo  ,也可以通pojo  生成 表。

關於ibaits 分頁:

map.put("pageNum", new Integer(pageBar.getPageNum()));

map.put("rowCountPerPage", new Integer(pageBar.getRowCountPerPage()));

int rowCount = ((Integer) getSqlMapClientTemplate().queryForObject(

sqlKeyCount, map)).intValue();

// 記錄總數

pageBar.setRowCount(rowCount);

// 總頁面數量

pageBar.setPageCount((pageBar.getRowCount()

+ pageBar.getRowCountPerPage() - 1)

/ pageBar.getRowCountPerPage());

List lst = getSqlMapClientTemplate().queryForList(sqlKey, map);

一般都是通過map  傳入總條數,頁面數量,呼叫queryForList()。實現物理分頁

至於這個裡面配置的oracle 自動分頁的東東 public.oraclePageStart不太理解 哈哈。。不知道是不是自動生成的還是怎麼弄的,問了好多人 。。

 

                                             Mybatis

普通的mybatis 配置和ibatis 差不多。都是通過配置SqlMapConfig.xml 裡面對應pojo xml  的對應關係 ,然後讀取SqlMapConfig.xml

SqlSessionFactory 工廠。生成SqlSession 增刪改查。

不過 不同的是mybatis mapper 代理物件 ,我的理解是mapper,通過掃描 mapper.xml。 代理過後不需要daoImpl 了,直接通過 mapper代理物件

 UserMapper userMapper=sqlSession.getMapper(UserMapper.class);

呼叫增刪改查 。。

關於自動生成工具:

配置好表字段,mapper ,pojo 生成目錄,可以自動生成 mapper介面 還有mapper.xml  還有pojo

關於mybatis 分頁:

可以用 pageHelper 外掛基於mybaits 攔截器 對sql 攔截實現分頁

Springmvc  

Springmvc  的核心就是基於dispatchservlet ,傳入url ,通過對映器處理器 handlerMapping 對應到 相應的controller ,通過反射執行相應的 方法。返回ModelAndView

返回到dispatchservlet  交給檢視解析圖,響應響應的檢視

核心請參考 :黃勇的,架構探險

後結:關於boss 系統框架

關於複用。

1.邏輯的複用

2.頁面的複用

1.只要是請求的action和引數相同的邏輯 就可以放進js裡面複用。所以不需要重寫邏輯

2.頁面的複用:框架用到DisplayTag table.自己就可以實現list 的展示。分頁 和 資料庫裡面配置展示欄位

關於基本的查詢分頁:參考紅名單管理 俺寫的直接sql 分頁 方便。O(_)O哈哈~