一.Xml建模之入门

简介: 一.Xml建模之入门

1.为什么要将xml封装为实体

1.在Java中使用XML是非常常见的,因为XML是一种通用的标记语言,用于描述数据。在Java中使用XML的最常见场景之一是使用XML作为配置文件格式。Java程序可以读取XML文件中的配置信息并解析它们。然而,XML文件往往非常复杂,包含许多嵌套元素和属性,因此直接使用XML来读取、操作和修改数据很麻烦。

2.为了使XML数据更易读、易操作和可维护,可以使用Java的XML绑定(JAXB)库,将XML数据映射到Java类上。这样,可以轻松地将XML数据读入Java程序中的对象,并按照需要进行操作。Java类中的属性和方法与XML文件中的元素和属性相对应,这使得代码更易于阅读和维护。

3.Java中封装XML实体的一个重要优点是使代码更灵活、可扩展和容错。封装XML实体可以帮助您在实现特定的业务逻辑时更方便地处理XML数据。通过封装XML实体,开发人员可以灵活地处理XML中的数据模型,使程序更易于扩展和维护。此外,封装XML实体还可以实现更好的错误处理和异常处理机制,提高代码的容错性和鲁棒性。

4.总之,在Java程序中封装XML实体可以提高代码的模块化、可读性和可维护性,同时也可以保证数据的准确性和一致性。

2.封装实体类实例

1.以下进行的代码,均已它为原型去进行演示

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE config
[<!ELEMENT config (action*)>
<!ELEMENT action (forward*)>
<!ATTLIST action 
path CDATA #REQUIRED
type CDATA #IMPLIED
>
]
>
  <!--
    config标签:可以包含0~N个action标签
  -->
<config>
  <!--
    action标签:可以饱含0~N个forward标签 path:以/开头的字符串,并且值必须唯一 非空 ,子控制器对应的路径
    type:字符串,非空,子控制器的完整类名
  -->
  <action path="/registerAction" type="test.action.RegisterAction">
    <forward name="success" path="/index.jsp" redirect="true" />
    <forward name="failed" path="/register.jsp" redirect="false" />
  </action>
  <action path="/registerAction2" type="test.action.RegisterAction">
    <forward name="success" path="/index.jsp" redirect="true" />
    <forward name="failed" path="/register.jsp" redirect="false" />
  </action>
  <action path="/bookAction" type="test.BookAction">
    <forward name="add" path="/bookAdd.jsp" redirect="true" />
    <forward name="del" path="/reg.jsp" redirect="false" />
    <forward name="list" path="/list.jsp" redirect="false" />
    <forward name="upd" path="/login.jsp" redirect="false" />
  </action>
  <action path="/loginAction" type="test.action.LoginAction">
    <forward name="a" path="/index.jsp" redirect="false" />
    <forward name="b" path="/welcome.jsp" redirect="true" />
  </action>
</config>

1.封装ActionModel

package com.niyin.model;
import java.util.HashMap;
import java.util.Map;
public class ActionModel {
  private String path;
  private String gtype;
  private Map<String ,ForwardModel>fmp=new HashMap<String ,ForwardModel>();
  public String getPath() {
    return path;
  }
  public void setPath(String path) {
    this.path = path;
  }
  public String getGtype() {
    return gtype;
  }
  public void setGtype(String gtype) {
    this.gtype = gtype;
  }
  public void push(ForwardModel forwardModel) {
    fmp.put(forwardModel.getName(), forwardModel);
  }
  public  ForwardModel pop(String name) {
    return fmp.get(name);
  }
}

2.封装ConfigModel

package com.niyin.model;
import java.util.HashMap;
import java.util.Map;
public class ConfigModel {
private Map<String,ActionModel>aMap=new HashMap<String,ActionModel>();
public void push(ActionModel actionModel) {
  aMap.put(actionModel.getPath(), actionModel);
}
public ActionModel pop(String path) {
  return aMap.get(path);
}
public static void main(String[] args) throws Exception {
  ConfigModel configModel =new ConfigMOdelFactory().build();
  ActionModel actionModel=configModel.pop("/loginAction");
  ForwardModel forwardModel =actionModel.pop("success");
  System.out.println(forwardModel.getPath());
}
}

3.封装ForwardModel

package com.niyin.model;
import java.util.HashMap;
import java.util.Map;
public class ForwardModel {
  private String name;
  private String path;
  private boolean redirect;
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public String getPath() {
    return path;
  }
  public void setPath(String path) {
    this.path = path;
  }
  public boolean isRedirect() {
    return redirect;
  }
  public void setRedirect(boolean redirect) {
    this.redirect = redirect;
  }
}

3.Xml建模之工厂模式

1.前言

1.XML建模是一种流行的建模方式,它将XML文件中的数据映射到Java对象中。相应地,在Java中实现一些工厂模式可以简化XML建模,并提供更好最佳实践的易读性和可维护性。下面介绍一些Java中使用工厂模式实现的XML建模

1.初识工厂模式

工厂方法模式是一种创建对象的模式,将对象的创建委托给工厂类。工厂方法模式提供了一种灵活的方式来创建对象,而不需要显式地指定对象的类。

在XML建模中,您可以使用工厂方法模式将XML元素和Java类映射到一起。您可以定义一个抽象的工厂类,它具有一个创建对象的接口,然后派生出多个实现类,每个实现类用于创建不同的XML元素和Java类的映射。

2.工厂模式实例:

package com.niyin.model;
import java.io.InputStream;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class ConfigMOdelFactory {
  public static ConfigModel build() throws Exception {
    ConfigModel configModel =new ConfigModel();
    InputStream in = ConfigMOdelFactory.class.getResourceAsStream("/config.xml");
    SAXReader sr =new SAXReader();
    Document doc = sr.read(in);
//    System.out.printl n(doc.asXML());
List<Element> selectNodes = doc.selectNodes("/config/action");
for (Element element : selectNodes) {
//  System.out.println(element.asXML());
  ActionModel actionmodel =new ActionModel();
  actionmodel.setPath(element.attributeValue("path"));
  actionmodel.setGtype(element.attributeValue("type"));
  List<Element> forwardEles = element.selectNodes("forward");
  for (Element forwardEle: forwardEles) {
//    System.out.println(forwardEle.asXML());
ForwardModel forwardModel = new ForwardModel();
forwardModel.setName(forwardEle.attributeValue("name"));
forwardModel.setRedirect(!"false".equals(forwardEle.attributeValue("redirect")));
  actionmodel.push(forwardModel);;
  }
  configModel.push(actionmodel);
}
    return configModel;
  }
  public static void main(String[] args) throws Exception {
    ConfigMOdelFactory.build();
  }
}


目录
相关文章
|
XML 设计模式 开发框架
J2EE(xml建模)
J2EE(xml建模)
53 0
|
XML 存储 开发框架
J2EE之XML建模
J2EE之XML建模
41 0
|
3月前
|
XML Java 数据格式
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
|
22天前
|
XML 前端开发 Java
XML基本概念入门学习指南
XML(eXtensible Markup Language)是一种可扩展的标记语言,和HTML语言语法类似,同属于标记语言。
|
5月前
|
XML Java 数据库连接
MyBatis入门——MyBatis XML配置文件(3)
MyBatis入门——MyBatis XML配置文件(3)
71 6
|
3月前
|
XML Java 数据格式
Spring5入门到实战------11、使用XML方式实现AOP切面编程。具体代码+讲解
这篇文章是Spring5框架的AOP切面编程教程,通过XML配置方式,详细讲解了如何创建被增强类和增强类,如何在Spring配置文件中定义切入点和切面,以及如何将增强逻辑应用到具体方法上。文章通过具体的代码示例和测试结果,展示了使用XML配置实现AOP的过程,并强调了虽然注解开发更为便捷,但掌握XML配置也是非常重要的。
Spring5入门到实战------11、使用XML方式实现AOP切面编程。具体代码+讲解
|
3月前
|
XML Java 数据格式
Spring5入门到实战------6、IOC容器-Bean管理XML方式(自动装配)
这篇文章是Spring5框架的入门教程,详细讲解了IOC容器中Bean的自动装配机制,包括手动装配、`byName`和`byType`两种自动装配方式,并通过XML配置文件和Java代码示例展示了如何在Spring中实现自动装配。
Spring5入门到实战------6、IOC容器-Bean管理XML方式(自动装配)
|
3月前
|
XML Java 数据库
Spring5入门到实战------15、事务操作---概念--场景---声明式事务管理---事务参数--注解方式---xml方式
这篇文章是Spring5框架的实战教程,详细介绍了事务的概念、ACID特性、事务操作的场景,并通过实际的银行转账示例,演示了Spring框架中声明式事务管理的实现,包括使用注解和XML配置两种方式,以及如何配置事务参数来控制事务的行为。
Spring5入门到实战------15、事务操作---概念--场景---声明式事务管理---事务参数--注解方式---xml方式
|
6月前
|
XML 安全 Java
从零手写实现 apache Tomcat-02-web.xml 入门详细介绍
`web.xml`是Java Web应用的核心配置文件,描述应用工作方式。它包含Servlet、Filter和Listener的定义。例如,示例展示了如何配置名为`my`的Servlet处理`/my`请求,`LoggingFilter`拦截所有请求,以及`MyServletContextAttrListener`监听应用事件。`web.xml`是服务器理解应用结构与行为的指南。迷你版Tomcat实现——mini-cat(开源:https://github.com/houbb/minicat)。
|
XML 存储 Java
XML建模
XML建模