1. 程式人生 > >SSM應用(一)--Spring入門

SSM應用(一)--Spring入門

得到 執行 主動 關系 ted img 我們 ica http

Spring是什麽

  Spring是一個框架;

  Spring是一個容器框架;

  Spring用於管理bean(Java類),並維護bean(Java類)之間的關系;

  容器框架:整個web都屬於Spring來管理,Spring可以管理web層、業務層、dao持久層,每一層都是由Java類(bean)組成的,Spring能夠管理所有的bean,並且維護bean之間的關系;

  技術分享圖片

Spring的核心機制

  Bean:

    可以是Java中的任何對象,可以是JavaBean/service/servlet/dao,Spring就是通過管理每一層的bean,來實現管理整個項目。

    Spring可以管理bean的實例化,對象的誕生;

    Spring可以管理對象的關系(類中的對象屬性);

  IOC/DI:

    IOC(inverse of control):控制反轉

      不用Spring的時候,所有的對象都是new出來的,由我們自己決定什麽時候new,控制權在我們自己手上;

      在Spring中,所有的對象都是由Spring來管理的,由Spring決定什麽時候創建,控制權在Spring手上;

    DI(dependency injection):依賴註入

      如:web工程中service層與dao層的關系:

      在不用Spring的時候,service依賴於對象屬性dao;

      在Spring中,由Spring將dao對象註入到service中,也體現了Spring管理service和dao的關系;

  AOP(aspect onented programming):面向切面編程,面向所有對象編程;

Spring入門案例

  現在有這樣兩個類:

  技術分享圖片 技術分享圖片

  實現Spring管理,維護bean的步驟:

    1、引入jar包;

  技術分享圖片

    2、配置核心配置文件:applicationContext.xml

  技術分享圖片

    3、編寫測試類

  技術分享圖片

    註意:

    核心配置文件中的id對應創建的對象的對象名;

    在核心類中使用getBean(id)方法得到Spring創建的bean對象;

    在配置對象屬性時,需要使用ref屬性,ref屬性的值對應相應的bean對象配置文件的id;如:

    技術分享圖片

  小結:如果我們把程序的發展史比喻成社會的話,就可以分為:

    原始社會:自給自足,需要對象,就自己new一個對象;

    工業社會:工廠,需要對象,由工廠創建出來,找工廠要;

    共產主義社會:Spring容器,容器中存放著配置好的大量的對象,需要的時候無需主動找,Spring會依賴註入;

Spring的執行機制

  讀取application配置文件的時候,Spring框架被加載;

  當不考慮bean的生命周期時,讀取application配置文件的時候,Spring中配置的bean被創建;

  技術分享圖片

  讀取配置文件的時候,bean被實例化並且以鍵值對的方式放置在Spring容器中

  Spring底層基於Java的反射機制

    讀取配置文件:IO

    service = Class.forName(“bean,UserService”).newInstance();  //反射,建立實例

    byeservice = Class.forName(“bean,ByeService”).newIntance();  //反射,建立實例

    service.setSyaService(byeservice); //bean之間關系的建立  //屬性的註入

    HashMap.put(“service”,service);HashMap.put(“byeservice”,byeservice);  //把對象放入HashMap中,作為Spring容器,工廠;

PS:因作者能力有限,如有誤還請諒解;

SSM應用(一)--Spring入門