—高级软件人才实作培训专家!北京传智播客教育基于元数据的开发平台胡欣—高级软件人才实作培训专家!北京传智播客教育元数据的概念理解关于数据的数据,也就是用描述数据的数据。事物元数据1数据1数据2数据3.....元数据2元数据3—高级软件人才实作培训专家!北京传智播客教育数据元数据—高级软件人才实作培训专家!北京传智播客教育基于元数据的开发平台的作用通过配置方式快速搭建中小型信息管理系统可用于分布式架构(权限管理)—高级软件人才实作培训专家!北京传智播客教育元数据系统中的信息类信息类通过元数据方式定义出来的一个信息节点就称为信息类,一个信息类对应数据库中的一张表,对应Hibernate中的一个实体类。一个信息类由多个信息属性组成,每个信息属性对应表中的一个字段,对应实体类中的一个成员变量。—高级软件人才实作培训专家!北京传智播客教育基于元数据开发平台功能介绍信息类的树形管理信息类的元数据定义信息类的CRUD功能信息类的访问控制基于SpringWebServices的信息类服务接口—高级软件人才实作培训专家!北京传智播客教育组件企业级应用系统—高级软件人才实作培训专家!北京传智播客教育元数据(XML)实体映射文件实体类velocity模板引擎javassist框架元数据系统动态加载元数据定义—高级软件人才实作培训专家!北京传智播客教育树的两种存储方式比较XML方式加载时无需进行处理,天然就是树形结构适合于后台的配置管理功能,并发性差数据库表方式(id,text,parentid)加载时需进行排序处理适合大量用户操作的树,并发性好—高级软件人才实作培训专家!北京传智播客教育“信息目录管理”业务用例分析技术点:ExtJstree控件JAXB(JavaArchitectureforXMLBinding)OXMSchema(是用于描述和规范XML文档的逻辑结构的一种语言)—高级软件人才实作培训专家!北京传智播客教育“信息元数据定义”业务用例分析技术点:Velocity模板框架Javassist字节码框架Hibernate动态加载—高级软件人才实作培训专家!北京传智播客教育“信息数据维护”业务用例分析—高级软件人才实作培训专家!北京传智播客教育系统中使用到的相关技术点汇总SchemaJAXBVelocityJavassistspringSecurityspringWsExtjs—高级软件人才实作培训专家!北京传智播客教育语言XMLSchema语言也称作XMLSchema定义(XMLSchemaDefinition,XSD)XMLSchema作用(定义XML文档的合法构建模块,类似DTD)定义可出现在文档中的元素定义可出现在文档中的属性定义哪个元素是子元素定义子元素的次序定义子元素的数目定义元素是否为空,或者是否可包含文本定义元素和属性的数据类型定义元素和属性的默认值以及固定值—高级软件人才实作培训专家!北京传智播客教育==(1)xmlns=引入w3c命名空间(2)targetNamespace=.........指定当前Schema文件的命名空间—高级软件人才实作培训专家!北京传智播客教育元素和属性element元素定义一个xml元素element自身的主要属性:id、name、typeattribute元素定义一个xml元素的属性attribute自身的主要属性:id、name、ref、type、use—高级软件人才实作培训专家!北京传智播客教育语言(XSD)主要数据类型基本类型简单类型simpleType复杂类型complexType—高级软件人才实作培训专家!北京传智播客教育基本类型最常用的类型是:stringdecimalintegerbooleandatetime例子:lastnameSmith/lastnameage28/agedateborn1980-03-27/dateborn这是相应的简易元素定义:elementname=lastnametype=string/elementname=agetype=integer/elementname=dateborntype=date/—高级软件人才实作培训专家!北京传智播客教育值的限定(pattern和enumeration)elementname=cartype=carType/carAud1/car—高级软件人才实作培训专家!北京传智播客教育合并了两个简单类型的简单类型—高级软件人才实作培训专家!北京传智播客教育定义单个simpleType定义的集合—高级软件人才实作培训专家!北京传智播客教育复杂类型的元素是包含其他元素和/或属性的XML元素。—高级软件人才实作培训专家!北京传智播客教育进行引用指定默认的命名空间指定带前缀的命名空间声明xsi标准命名空间使用xsi:schemaLocation为每个命名空间指定具体的schema文件—高级软件人才实作培训专家!北京传智播客教育(JavaArchitectureforXMLBinding,JavaXML绑定架构)是一个业界的标准,是一项可以根据XMLSchema产生Java类的技术。该技术可以提供将XML实例文档反向生成Java对象树的方法。能将Java对象树的内容重新写到XML实例文档。另一方面来讲,JAXB提供了快速而简便的方法将XML模式绑定到Java对象,从而使得Java开发者在Java应用程序中能方便加载XML数据,并以XML文件作为数据存储方式。—高级软件人才实作培训专家!北京传智播客教育架构图—高级软件人才实作培训专家!北京传智播客教育实现包括以下组件Schema编译器(xjc.exe)xjc-djava类目录路径-p包名schema文件名Schema生成器(schemagen.exe)绑定运行时框架(rt.jar下的javax.xml.bind包)JAXBContext、Marshaller、Unmarshaller—高级软件人才实作培训专家!北京传智播客教育序列化(对象转xml)JAXBContextcontext=JAXBContext.newInstance(clazz);Marshallerm=context.createMarshaller();m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,true);m.setProperty(Marshaller.JAXB_ENCODING,charsetName);m.setProperty(Marshaller.JAXB_FRAGMENT,false);if(schemaLocation!=null&&schemaLocation.trim()!=){m.setProperty(Marshaller.JAXB_SCHEMA_LOCATION,schemaLocation);}outputStream=newFileOutputStream(f:/temp/xxx.xml);m.marshal(object,outputStream);—高级软件人才实作培训专家!北京传智播客教育反序列化(xml转对象)JAXBContextjaxbContext;Objectobject=null;jaxbContext=JAXBContext.newInstance(clazz);StreamSourcestremSource=newStreamSource(inputStream);//反序列化Unmarshallerunmarshaller=jaxbContext.createUnmarshaller();object=unmarshaller.unmarshal(stremSource);—高级软件人才实作培训专家!北京传智播客教育—高级软件人才实作培训专家!北京传智播客教育概述Velocity是一个基于java的模板引擎。它使得开发人员通过强大的模版语言来与Java中定义的对象进行交互。模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。生成源代码(rapidFramework)生成配置文件veloeclipse-—高级软件人才实作培训专家!北京传智播客教育模板引擎运行原理模板引擎模板文件数据输出—高级软件人才实作培训专家!北京传智播客教育基本语法变量定义、引用#set变量名定义变量,例如:#set($foo=bar)$变量名用来输出引用的变量,例如:$foo{}用来明确标识Velocity变量!用来强制把不存在的变量显示为空白java对象的引用$对象.属性用来输出对象的属性$对象.方法调用对象的方法$对象调用对象的toString()方法输出{}用来明确标识对象!用来强制把不存在的对象显示为空白条件判断语句#if、#elseif、#else、#end循环语句#foreach、in#end注释##和#**#—高级软件人才实作培训专家!北京传智播客教育应用于开发时的基本步骤设置模板文件的基准目录初始化Velocity创建Context对象添加数据到Context选择模板合并模板和数据产生输出页面或文件—高级软件人才实作培训专家!北京传智播客教育引入velocity.jar和velocity-tool.jarspring配置文件加入如下配置—高级软件人才实作培训专家!北京传智播客教育概述什么是Javassist(asm、cglib)Javassist是一