TopLink中的 ”persistence.xml” 文件的解析
[JPA是什么]
JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
Sun引入新的JPA ORM规范出于两个原因:其一,简化现有Java EE和Java SE应用的对象持久化的开发工作;其二,Sun希望整合对ORM技术,实现天下归一。
JPA由EJB 3.0软件专家组开发,作为JSR-220实现的一部分。但它不囿于EJB 3.0,你可以在Web应用、甚至桌面应用中使用。JPA的宗旨是为POJO提供持久化标准规范,由此可见,经过这几年的实践探索,能够脱离容器独立运行,方便开发和测试的理念已经深入人心了。目前Hibernate 3.2、TopLink 10.1.3以及OpenJPA都提供了JPA的实现。
JPA的总体思想和现有Hibernate、TopLink,JDO等ORM框架大体一致。总的来说,JPA包括以下3方面的技术:
ORM映射元数据,JPA支持XML和JDK 5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中;
JPA 的API,用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐的JDBC和SQL代码中解脱出来。
查询语言,这是持久化操作中很重要的一个方面,通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合。
[什么是persistence.xml文件]
在JPA中,配置了数据库表和实体Bean之间的映射关系,配置了数据库连接的配置信息。
类似于中的hibernate中的” Hibernate.cfg.xml”等配置文件的作用。
[什么是TopLink]
Oracle提供的一个实现JPA的产品,现在源代码已经提供给了Sun的GlassFish项目。
URL: http://oss.oracle.com/oracle-eclipse-projects.html
[TopLink中如何实现对” persistence.xml”文件的解析]
以下请自行下载代码参考
1. 当一个新的jar之类的应用程序被打包发布到TOPLINK之后,开始启动以下常驻服务
2. 类名:AutoDeployMonitor
函数名:run()
3. 类名:AutoDeployer
函数名:deploy(MonitorableEntry entry, File archive)
4. 类名:AutoDeployer
函数名:deploy(File archive)
5. 类名:DeployerFactory
函数名:getDeployer(DeploymentRequest request)
6. 类名:DeployerFactory
函数名:getAppDeployer(DeploymentRequest request)
7. 类名:PersistenceDeploymentDescriptorFile
函数名:getDeploymentDescriptorPath()
8. 类名:PersistenceUnitProcessor
函数名:processPersistenceXML(URL baseURL, InputStream input, ClassLoader loader)
9. 类名:ersistenceContentHandler
读取XML文件
10. 将读取的XML Node信息存储到SEPersistenceUnitInfo类,然后交给具体的逻辑处理程序