SSM應用(一)--Spring入門
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入門