spring五大組件都是啥,spring ORM是什么,spring的七大模塊有哪些

 2023-11-19 阅读 28 评论 0

摘要:Spring有七大功能模塊,分別是Spring Core,AOP,ORM,DAO,MVC,WEB,Context。 1,Spring Core Core模塊是Spring的核心類庫,Spring的所有功能都依賴于該類庫,Core主要實現IOC功能,Sprign的所有功能都

Spring有七大功能模塊,分別是Spring Core,AOP,ORM,DAO,MVC,WEB,Context。 1,Spring Core Core模塊是Spring的核心類庫,Spring的所有功能都依賴于該類庫,Core主要實現IOC功能,Sprign的所有功能都是借助IOC實現的。

?

可以看出ORM是spring七大模塊其中之一


ORM的全稱是Object Relational Mapping,即對象關系映射。它的實現思想就是將關系數據庫中表的數據映射成為對象,以對象的形式展現,這樣開發人員就可以把對數據庫的操作轉化為對這些對象的操作。因此它的目的是為了方便開發人員以面向對象的思想來實現對數據庫的操作。

spring五大組件都是啥??

ORM和habinate,jpa,mybaits等我們常見的與數據交互的框架是什么關系:這些是實現ORM的的幾種方式


對象與關系數據庫之間是不匹配,我們把這種不匹配稱為阻抗失配,主要表現在:

  • 關系數據庫首先不支持面向對象技術如繼承、多態,如何使關系數據庫支持它們;
  • 關系數據庫是由表來存放數據,而面向對象使用對象來存放狀態;其中表的列稱為屬性,而對象的屬性就是屬性,因此需要通過解決這種不匹配;
  • 如何將對象透明的持久化到關系數據庫表中;
  • 如果一個對象存在橫跨多個表的數據,應該如何為對象建模和映射。

其中這些阻抗失配只是其中的一小部分,比如還有如何將SQL集合函數結果集映射到對象,如何在對象中處理主鍵等。

ORM框架就是用來解決這種阻抗失配,提供關系數據庫的對象化支持。

springmvc流程。ORM框架不是萬能的,同樣符合80/20法則,應解決的最核心問題是如何在關系數據庫表中的行和對象進行映射,并自動持久化對象到關系數據庫。

ORM解決方案適用于解決透明持久化、小結果集查詢等;對于復雜查詢,大結果集數據處理還是沒有任何幫助的。


3.ORM的實現原理?
現在在Java領域大家對Hibernate的討論很多,比如它的優缺點、如何應用、錯誤如何解決以及把它和Struts/Spring等框架相結合作為整個系統的解決方案。在這里我想和大家探討一些更深層次的話題,那就是Hibernate是如何實現ORM的功能?如果讓我們自己開發一款實現ORM功能的框架需要怎么做?其實這些問題就是圍繞著一個詞,那就是“映射”,如果我們知道如何實現這種映射那么我們也能夠開發出自己的一款ORM框架。會使用Hibernate的開發人員都知道,在使用它實現ORM功能的時候,主要的文件有:映射類(*.java)、映射文件(*.hbm.xml)以及數據庫配置文件(*.properties或*.cfg.xml),它們各自的作用如下。?
⑴映射類:它的作用是描述數據庫表的結構,表中的字段在類中被描述成屬性,將來就可以實現把表中的記錄映射成為該類的對象。?
⑵映射文件:它的作用是指定數據庫表和映射類之間的關系,包括映射類和數據庫表的對應關系、表字段和類屬性類型的對應關系以及表字段和類屬性名稱的對應關系等。?
⑶數據庫配置文件:它的作用是指定與數據庫連接時需要的連接信息,比如連接哪中數據庫、登錄用戶名、登錄密碼以及連接字符串等。?
在這三種主要的文件中,映射類為普通Java源文件、映射文件為XML格式、數據庫配置文件為Properties格式或者是XML格式。想理解“映射”首先我們需要知道如何解析這三種文件,即解析XML格式文件、解析Properties格式文件和解析Java類文件。

下面我們來分別探討一下如何實現這些文件的解析。?
⑴如何解析XML文件?
前面我們說過映射文件是XML格式,數據庫配置文件也可以是XML格式,因此如果能解析XML文件我們就可以獲取這兩個文件的信息。XML文件格式我簡單做下介紹,比如<name sex=”male”>tom</name>這句就是一個XML格式的描述,name代表節點,節點必須有開始標記<name>和結束標記</name>,在開始標記中我們可以添加一些屬性的聲明比如sex。解析XML的技術可以分為兩類那就是SAX和DOM,這兩種方式的差別和優缺點大家可以上網查閱或者我們會在以后的文章中提出,請大家關注。實現解析XML文件的功能很方便,我們可以通過下載第三方的一些工具包如xml-apis.jar和xercesImpl.jar等,也可以使用JDK自帶的工具類DocumentBuilderFactory、DocumentBuilder、Document、Element等等,大家可以通過API文擋查閱這些類的說明。通過這些類我們可以把XML文件的信息讀入內存并通過類中的某些方法獲取指定節點的名字、值、屬性名、屬性值這些信息。?
⑵解析Properties文件?
數據庫配置文件可以是XML格式也可以是Properties格式,Properties文件一般采用“屬性名=屬性值”的形式描述信息。如果配置文件采用Properties文件描述,我們就需要想辦法解析這種類型的文件了。想解析Properties文件大家就需要熟悉Properties這個類了,這個類有一些常用方法比如,load()加載指定文件并讀取文件中的屬性信息,PropertyNames()返回所有屬性名,getProperty()返回指定屬性名的屬性值。通過解析Properties文件我們可以得到連接數據庫必要的信息,然后通過底層JDBC技術與數據庫建立連接。?
⑶解析Java類文件?
通過解析映射文件和數據庫配置文件我們可以建立數據庫的連接,可以得到映射類的名字、屬性名、數據庫表名、字段名以及類型等信息。要把數據庫中表的數據映射成為對象,首先需要把表中的記錄取出,然后將每個字段值給映射類對象的每個屬性,這個賦值過程要調用對象中的set方法。我們現在通過映射文件只知道類名和屬性名,如何根據類名和屬性名調用相應的set和get方法,是一個關鍵問題。在Java中有一種機制叫反射機制,使用這種機制我們可以得到類的信息,包括類只用的修飾符、方法、屬性、繼承的父類以及實現接口等信息。反射機制相關的類有Class、Field、Method以及Constructor等。通過Class的getFields()、getMethods()和getConstructors()方法得到相應的屬性、方法和構造方法。通過Field類的getName()、getType()和getModifiers()方法得到相應的屬性名、屬性類型、屬性修飾符信息。通過Method類getReturnType()可以獲取方法的返回類型,invoke()方法可以根據給定的方法名和參數值執行對象中對應的方法。我們可以首先通過以上方法獲取類中的屬性名,然后拼寫成setXXX和getXXX方法名,最后根據方法名執行對應的方法,將數據庫數據加載到對象中。?
此外要實現Hibernate機制還會涉及到一個技術點,那就是如何獲取數據庫的相關信息。要實現這個功能,就需要大家了解JDBC的DataBaseMetaData類和ResultSetMetaData類,通過這兩個類的方法我們就可以獲取數據庫表的字段名、類型、大小等相關信息。?
在這里我只是給大家把實現ORM功能的一些關鍵技術提了出來,通過上面介紹大家對ORM機制應該有個大概了解,比如通過解析數據庫配置文件獲取數據庫連接信息并建立連接,通過解析映射文件可以獲取映射類名、屬性名、表名以及字段名等信息,得到名字后通過反射機制可以得到映射類信息,調用構造方法創建對象,調用每個屬性的set方法給對象設值完成數據的裝載。Hibernate就是采用這個過程來實現ORM的,當然Hibernate還使用了事務控制、緩存控制等很多技術......

轉:http://www.cnblogs.com/bendantuohai/p/4711340.html

Spring的核心容器有哪些模塊組成、謝!

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/183197.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息