springmvc和struts2的區別
1、springmvc基於方法開發的,struts2基於類開發的。
2、單例和多例的區別:springmvc在映射的時候,通過形參來接收參數的,是將url和controller方法映射,映射成功后,springmvc生成一個handlers對象,對象中只包括一個method,方法執行結束的時候,形參的數據就銷毀,
所以springmvc可以進行單例開發,並且建議使用。
但是structs接收的參數是通過類的成員變量來接收的,這些變量在多線程訪問中,是共享的,而不是像springmvc那樣,方法結束之后,形參自動銷毀,且無法使用單例,只能使用多例。
這樣的話,在structs中,隨着方法的添加,很多的成員變量,維護到最后的時候根本就不知道這個成員變量被哪個方式所使用,所以springmvc開發類似於service開發。
3、經過實際測試,structs速度慢,在與使用structs標簽,如果使用structs建議使用jstl。
mybatis和hibernate的區別
1、hibernate 入門門檻高,是一個標准的ORM礦建(對象關系映射),不需要程序寫sql,sql語句自動生成,對sql語句進行優化、修改比較困難。
mybatis專注於sql本身,需要程序員自己編寫sql語句,sql修改、優化比較方便。是一個不完全的ORM框架,雖然程序員自己寫sql,mybatis也可以實現映射(輸入映射,輸出映射)
應用場景方面:
2、hibernate適用於需求變化不多的中小型項目,比如:后台管理系統,orm、oa......
mybatis適用於需求變化較多的項目,比如:互聯網項目。