JavaEE基础框架集合

简介: JavaEE基础框架集合

本次体系:

1.XML建模

1:

我们为什么要学习XML的建模,他可以给我们带来什么好处,我们可以得到什么东西?

我们学习这个XML建模的好处就是,我们也可以在学习XML后更好的掌握java的集合框架现在我们要学习的是XML中的ConfigModel .ActionModel . ForwardModel . ConfigModelDactory


1.往config标签中添加了一个action标签


2.住action标签中添加了4个forward标签


3.将action标签的属性值path.type发生了更改


4.将forward标签的属性值name. type . redirect 发生了更改


2:

以面向对象的思想思考上述操作:


1.confingModel对象中加一个actionModel对象,因为actionModel在configModel中是唯一的,所以在configModel必然有一个属性(容器Map),能够以一对一的方式存储不同个actionModel,还有添加的方法还有查询的方法


2.actinModel 也有一个(容器Map),也有个添加的方法查询的方法


3.actinModel 还有属性path . type


4.forwardModel 有属性name . path .redirect

1.1ConfigModel

package com.zkanghao;
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) {
        ConfigModel configModel=new ConfigModel();
        ActionModel actionModel = configModel.pop("/loginAction");
        ForwardModel forwardModel = actionModel.pop("success");
    System.out.println(forwardModel.getPath());
    }
}

1.2ActionModel

package com.zkanghao;
import java.util.HashMap;
import java.util.Map;
public class ActionModel {
    private String path;
    private String type;
    private Map<String, ForwardModel> fMap =  new HashMap<String, ForwardModel>();
    public String getPath() {
        return path;
    }
    public void setPath(String path) {
        this.path = path;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
//将forward往action中放  压栈
    public void push(ForwardModel forwardModel) {
        fMap.put(forwardModel.getName(), forwardModel);
    }
//从action中通过name值取出forward
    public ForwardModel pop(String naem) {
        return fMap.get(naem);              
    }
}

1.3ForwardModel

package com.zkanghao;
import java.util.HashMap;
import java.util.Map;
public class ActionModel {
    private String path;
    private String type;
    private Map<String, ForwardModel> fMap =  new HashMap<String, ForwardModel>();
    public String getPath() {
        return path;
    }
    public void setPath(String path) {
        this.path = path;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
//将forward往action中放  压栈
    public void push(ForwardModel forwardModel) {
        fMap.put(forwardModel.getName(), forwardModel);
    }
//从action中通过name值取出forward
    public ForwardModel pop(String naem) {
        return fMap.get(naem);              
    }
}

2.工厂模式

什么是工厂模式,工厂模式是23种模式之一

2.1工厂模式的定义:

定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。这满足创建型模式中所要求的“创建与使用相分离”的特点。


按实际业务场景划分,工厂模式有 3 种不同的实现方式,分别是简单工厂模式、工厂方法模式和抽象工厂模式。


23种设计模式---->工厂模式--->创建型模式


sessionFactory. sqlsessionFactory . securityFactory等等。。。。


2.1ConfigModeIFactory

package com.zkanghao;
import java.io.InputStream;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class ConfigModelFactory {
    public static ConfigModel build(String xmlPath) throws Exception {
        ConfigModel configmodel = new ConfigModel();
        //读取文件内容
        InputStream in = ConfigModelFactory.class.getResourceAsStream(xmlPath);
        SAXReader sr = new SAXReader();
        Document read = sr.read(in);
//      System.out.println(read.asXML());
        //让actionmodel有值,再放入到configmodel中
        List<Element> actionEles = read.selectNodes("/config/action");
        for (Element actionEle : actionEles) {
            ActionModel actionmodel = new ActionModel();
            actionmodel.setPath(actionEle.attributeValue("path"));
            actionmodel.setType(actionEle.attributeValue("type"));
            //让forwardmodel有值,再放入到actionmodel中
            List<Element> forwardEles = actionEle.selectNodes("forward");
            for (Element forwardEle : forwardEles) {
//              System.out.println(forwardEle.asXML());
                ForwardModel forwardmodel = new ForwardModel();
                forwardmodel.setName(forwardEle.attributeValue("name"));
                forwardmodel.setPath(forwardEle.attributeValue("path"));
                //当redirect值为false时,是转发,其它则是重定向
                forwardmodel.setRedirect(!"false".equals(forwardEle.attributeValue("redirect")));
                actionmodel.push(forwardmodel);
            }
            configmodel.push(actionmodel);
        }
        return configmodel;
    }
    public static ConfigModel build() throws Exception {
        ConfigModel configmodel = new ConfigModel();
        //读取文件内容
        InputStream in = ConfigModelFactory.class.getResourceAsStream("/config.xml");
        SAXReader sr = new SAXReader();
        Document read = sr.read(in);
//      System.out.println(read.asXML());
        //让actionmodel有值,再放入到configmodel中
        List<Element> actionEles = read.selectNodes("/config/action");
        for (Element actionEle : actionEles) {
            ActionModel actionmodel = new ActionModel();
            actionmodel.setPath(actionEle.attributeValue("path"));
            actionmodel.setType(actionEle.attributeValue("type"));
            //让forwardmodel有值,再放入到actionmodel中
            List<Element> forwardEles = actionEle.selectNodes("forward");
            for (Element forwardEle : forwardEles) {
//              System.out.println(forwardEle.asXML());
                ForwardModel forwardmodel = new ForwardModel();
                forwardmodel.setName(forwardEle.attributeValue("name"));
                forwardmodel.setPath(forwardEle.attributeValue("path"));
                //当redirect值为false时,是转发,其它则是重定向
                forwardmodel.setRedirect(!"false".equals(forwardEle.attributeValue("redirect")));
                actionmodel.push(forwardmodel);
            }
            configmodel.push(actionmodel);
        }
        return configmodel;
    }
    public static void main(String[] args) throws Exception {
//      测试,拿第二个action中第二个forward的path值
        ConfigModel configmodel = ConfigModelFactory.build("/config.xml");
        ActionModel actionmodel = configmodel.pop("/loginAction");
        ForwardModel forwardmodel = actionmodel.pop("success");
        System.out.println("第二个action中第二个forward的path值为"+forwardmodel.getPath());
    }
}


目录
相关文章
|
9月前
|
前端开发 JavaScript Java
JAVAEE框架技术之4springMVC入门
JAVAEE框架技术之4springMVC入门
143 0
JAVAEE框架技术之4springMVC入门
|
4月前
|
Java 数据库连接 开发者
Spring 框架:Java 开发者的春天
【10月更文挑战第27天】Spring 框架由 Rod Johnson 在 2002 年创建,旨在解决 Java 企业级开发中的复杂性问题。它通过控制反转(IOC)和面向切面的编程(AOP)等核心机制,提供了轻量级的容器和丰富的功能,支持 Web 开发、数据访问等领域,显著提高了开发效率和应用的可维护性。Spring 拥有强大的社区支持和丰富的生态系统,是 Java 开发不可或缺的工具。
|
6月前
|
Java 数据库连接 数据库
【Java 第十一篇章】Spring 框架介绍
Spring 是广泛用于企业级 Java 开发的开源框架,提供轻量级解决方案,助力构建灵活、可维护的应用。核心组件包括 IOC 容器、AOP、MVC、JDBC/ORM、事务处理及远程调用。依赖注入(DI)是其核心特性之一,允许容器自动管理对象间的依赖关系,提升代码的可测试性和解耦。面向切面编程(AOP)则支持将横切关注点(如日志、事务)与业务逻辑分离,促进代码复用和关注点分离。Spring 的 IoC 容器负责对象的创建和管理,简化对象的生命周期管理。Spring 框架具备低侵入性设计,易于整合主流技术栈。
44 0
|
9月前
|
前端开发 安全 Java
Spring Boot项目中VO层设计:选择继承或组合的灵活实践
Spring Boot项目中VO层设计:选择继承或组合的灵活实践
563 0
|
8月前
|
消息中间件 监控 Java
Java 框架界的‘巨星’Spring,让你的代码翩翩起舞!
【6月更文挑战第25天】Spring,Java框架的明星,以其依赖注入(DI)和面向切面编程(AOP)简化开发。DI协调类间协作,AOP提供日志、监控等附加功能。事务管理确保代码稳定性,注解如`@Transactional`自动化事务处理。Spring的集成能力使代码灵活适应多样技术场景,让编程变得优雅高效,犹如舞蹈般流畅。跟随Spring,让代码起舞!
54 6
|
9月前
|
存储 前端开发 Java
【JavaEE进阶】 关于应用分层
【JavaEE进阶】 关于应用分层
|
前端开发 搜索推荐 Java
javaEE之自定义框架
javaEE之自定义框架
58 0
|
XML JSON 前端开发
Spring MVC框架:第七章:REST架构风格
Spring MVC框架:第七章:REST架构风格
126 0
Spring MVC框架:第七章:REST架构风格
|
前端开发 Java Spring
Spring MVC框架:第六章:传统增删改查
Spring MVC框架:第六章:传统增删改查
Spring MVC框架:第六章:传统增删改查
|
开发框架 安全 网络协议
JavaSE、JavaEE、JavaME三者的区别
JavaSE、JavaEE、JavaME三者的区别
97 0
JavaSE、JavaEE、JavaME三者的区别

热门文章

最新文章