1. 程式人生 > >Java總結(spring、ajax、mybatis、bootstrap)

Java總結(spring、ajax、mybatis、bootstrap)

不間斷更新。。。。


Spring(由Rod Johnson建立)?

    它是一個一站式(full-stack全棧式)框架,

提供了從表現層-springMVC到業務層-spring再到持久層-springdata的一套完整的解決方案。

我們在專案中可以只使用spring一個框架,它就可以提供表現層的mvc框架,持久層的Dao框架。

它的兩大核心IOCAOP更是為我們程式解耦和程式碼簡潔易維護提供了支援。

Spring的優點:

答:

    1.降低了元件之間的耦合性 ,實現了軟體各層之間的解耦

    2.可以使用容易提供的眾多服務,如事務管理,訊息服務等
    3.容器提供單例模式支援
    4.容器提供了
AOP技術,利用它很容易實現如許可權攔截,執行期監控等功能
    5.容器提供了眾多的輔助類,能加快應用的開發
    6.spring對於主流的應用框架提供了整合支援,如hibernateJPAStruts
    7.spring屬於低侵入式設計,程式碼的汙染極低
    8.獨立於各種應用伺服器
    9.springDI機制降低了業務物件替換的複雜性

    10.Spring的高度開放性,並不強制應用完全依賴於Spring,開發者可以自由選擇spring的部分或全部

AJAX

    是一種用來改善使用者體驗的技術,其本質是利用瀏覽器提供的一個特殊物件(XmlHttpRequests簡稱ajax物件)

    向伺服器傳送非同步請求,伺服器返回部分資料,瀏覽器利用這些資料對當前頁面做區域性更新,

    整個過程頁面無重新整理,不打斷使用者操作。

Mybatis:開源的持久層框架,底層還是JDBC,持久層框架包括SQL Maps和Data Access Objects(DAOs)

bootstrap: 是最受歡迎的Html、Css、Js框架,用於開發響應式佈局,移動裝置優先的web專案。

一、什麼是spring?

定義:

        Spring是一個開源的輕量級的應用開發框架,

目的:

        用於簡化企業級應用程式開發,降低侵入性;

本質:

        管理軟體中的物件,即建立物件和維護物件之間的關係。

二、何時使用Spring?

        當需要管理JavaBean物件的時候就可以使用,spring是最簡潔的物件管理方案之一。

三、請說說Spring Bean的生命週期?

1、Spring容器 從XML 檔案中讀取bean的定義,並例項化bean。

         2、Spring根據bean的定義填充所有的屬性。

3、如果bean實現了BeanNameAware 介面,Spring 傳遞bean 的 ID 到 setBeanName方法。

  4、如果Bean 實現了 BeanFactoryAware 介面, Spring傳遞beanfactory 給 setBeanFactory 方法。

5、如果有任何與bean相關聯的BeanPostProcessors,Spring會在postProcesserBeforeInitialization()方法內

呼叫它們。

  6、如果bean實現IntializingBean了,呼叫它的afterPropertySet方法,如果bean聲明瞭初始化方法,

呼叫此初始化方法。

  7、如果有BeanPostProcessors 和bean 關聯,這些bean的postProcessAfterInitialization() 方法將被呼叫。

  8、如果bean實現了 DisposableBean,它將呼叫destroy()方法。

四、使用Spring框架的好處是什麼?

       輕量:Spring 是輕量的,基本的版本大約2MB。

     控制反轉:Spring通過控制反轉實現了鬆散耦合,物件們給出它們的依賴,而不是建立或查詢依賴的物件們。

      面向切面的程式設計(AOP):Spring支援面向切面的程式設計,並且把應用業務邏輯和系統服務分開。

      容器:Spring 包含並管理應用中物件的生命週期和配置。

      MVC框架:Spring的WEB框架是個精心設計的框架,是Web框架的一個很好的替代品。

       事務管理:Spring 提供一個持續的事務管理介面,可以擴充套件到上至本地事務下至全域性事務(JTA)。

      異常處理:Spring 提供方便的API把具體技術相關的異常(比如由JDBC,Hibernate or JDO丟擲的)轉化為一致的unchecked 異常。


五、springMVC有幾大元件?及其分別作用?

      1.DispatcherServlet:前端控制器

       2.HandlerMapping:對映處理器

       3.Controller:控制器,具體處理請求並響應。

4.ModeAndView:用於封裝處理結果

      5.ViewResolver:檢視解析器。




六、SpringMVC工作原理:
     1.客戶端傳送請求到DispatcherServlet
     2.DispatcherServlet查詢handlerMapping找到處理請求的Controller
     3.Controller呼叫業務邏輯後,返回ModelAndView
     4.DispatcherServlet查詢ViewResolver,找到ModeAndView指定檢視
     5.檢視將結果返回到客戶端



七、SpringMvc的控制器是不是單例模式,如果是,有什麼問題,怎麼解決?

        是單例模式,所以在多執行緒訪問的時候有執行緒安全問題,不要用同步,會影響效能的,

解決方案是在控制器裡面不能寫欄位。

八、SpringMVC怎麼樣設定重定向和轉發的

        1、在返回值前面加"forward:"就可以讓結果轉發,譬如"forward:user.do?name=method4" 

        2、在返回值前面加"redirect:"就可以讓返回值重定向,譬如"redirect:http://www.baidu.com"


九、MyBatis(IBatis)的好處是什麼 ?

       ibatis把sql語句從Java源程式中獨立出來, 放在單獨的XML檔案中編寫,給程式的維護帶來了很大便利。

        ibatis封裝了底層JDBC API的呼叫細節,並能自動將結果集轉換成Java Bean物件, 大大簡化了Java資料庫程式設計的重複工作。 

        因為Ibatis需要程式設計師自己去編寫sql語句, 程式設計師可以結合資料庫自身的特點靈活控制sql語句, 

因此能夠實現比hibernate等全自動orm框架更高的查詢效率,能夠完成複雜查詢.





十、MyBatis裡面的動態Sql是怎麼設定的?用什麼語法? 
        MyBatis裡面的動態Sql一般是通過if節點來實現,通過OGNL語法來實現,但是如果要寫的完 整,
必須配合where,trim節點,where節點是判斷包含節點有內容就插入where,否則不插 入,trim節點是用來判斷如果動態語句是以and 或or開始,
那麼會自動把這個and或者or取掉。




十一、講下MyBatis的快取
        MyBatis的快取分為一級快取和二級快取, 一級快取放在session裡面,預設就有,二級快取放在它的名稱空間裡,預設是開啟的, 
使用二級快取屬性類需要實現Serializable序列化接 口(可用來儲存物件的狀態),可在它的對映檔案中配置。




十二、談談你對ssm框架的認識

        ssm框架是spring MVC ,spring和mybatis框架的整合,

是標準的MVC模式,

將整個系統劃分為表現層,controller層,service層,DAO層四層

使用spring MVC負責請求的轉發和檢視管理
spring實現業務物件管理,mybatis作為資料物件的持久化引擎。