Dorado7框架升级成SSM,并且使用Vue进行前端开发

本文详细介绍了从Dorado框架向前后端分离架构的迁移过程,包括后端采用Spring、SpringMVC和Mybatis-Plus,前端引入Vue和Layui,实现了与原有开发流程的无缝对接。

前言

目前在做微信端的开发,看着同事用这个框架,写着特别的痛苦
觉得这个东西,开发太慢,效率不高,坑比较多,而且应该没人维护了…吧

比如这位老哥的吐槽

  1. List item

https://bbs.csdn.net/topics/392067238

整体开发体系

前端界面就用这个东东写

后端Java只负责调用过程,基本没有用来写业务逻辑…(无力吐槽了)

数据库用的oracle

用这个写前端的东西,深有感悟,写错一个标点能找一天(淦),于是折腾起来,冲冲冲

正题

先说结果

最终形态是可以达到前后端分离开发

后端

Spring + SpringMVC + Mybatis-Plus

前端
vue + layui + axios/ajax(jquery)(自己喜欢用哪个做请求处理都没问题)

当然,只修改后端是没问题的,前端看自己需求要不要改

修改后完全兼容原本的开发流程,就是说你原本的东西都可以用,不会有冲突

运行效果

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

原理/思路?

后端主要是升级,主要问题在前端

后端进行Spring的升级,把SpringMVC和Mybatis-Plus配置上

前端在dorado的xml文件(其实就是一个xml,dorado7这个框架应该有个渲染程序或者解析器去解析xml)中view节点中引用html文件,在html中引用vue.js库和挂载vue文件即可

开始

相关文件
https://share.weiyun.com/v2E9jrUp.
可以复制文中的配置,也可以下载下来复制到自己项目

pom.xml添加依赖

在这里插入图片描述


		<!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus -->
		<!-- 我项目用的jdk是1.7的,只支持mybatis-plus2.x,最好跟我的版本一样 -->
		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus</artifactId>
			<version>2.1.9</version>
		</dependency>

		<!-- Druid -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.1.0</version>
		</dependency>

		<!-- AOP -->
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjweaver</artifactId>
			<version>1.8.8</version>
		</dependency>

		<!--lombok-->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.18.8</version>
		</dependency>

		<!--p6spy-->
		<dependency>
			<groupId>p6spy</groupId>
			<artifactId>p6spy</artifactId>
			<version>3.8.7</version>
		</dependency>

		<!-- hutool工具 推荐使用,当然不喜欢可以注释掉也不会有问题,注意jdk1.7只支持4.x -->
		<dependency>
		    <groupId>cn.hutool</groupId>
		    <artifactId>hutool-all</artifactId>
		    <version>4.5.11</version>
		</dependency>

Spring配置

在resources文件夹下面新增一个spring文件夹,里面新增3个文件分别是 spring.xml spring-mybatis.xml springmvc-servlet.xml

spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context" xmlns:util="http://www.springframework.org/schema/util"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">

    <!-- Service包(自动注入) 请写自己service层的包,通配符-->
    <context:component-scan base-package="com.xxx.*.service"/>

    <import resource="classpath:spring/spring-mybatis.xml"/>
</beans>

spring-mybatis.xml

这个文件我是参考mybatis-plus官方demo配置的

传送门

https://baomidou.gitee.io/mybatis-plus-doc/#/install

https://gitee.com/baomidou/mybatisplus-spring-mvc

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:aop="http://www.springframework.org/schema/aop" xmlns:util="http://www.springframework.org/schema/util"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">

    <!-- 配置数据源 -->
    <bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
        <!-- 请修改成自己对应数据库的连接信息-->
        <property name="driverClassName" value="com.p6spy.engine.spy.P6SpyDriver"/>
        <property name="url" value="jdbc:p6spy:oracle:thin:@xx.xxx.xxx.xx:1521:dbname"/>
        <property name="username" value="用户名"/>
        <property name="password" value="密码"/>

        <!-- 初始化连接大小 -->
        <property name="initialSize" value="0"/>
        <!-- 连接池最大使用连接数量 -->
        <property name="maxActive" value="20"/>
        <!-- 连接池最大空闲 -->
        <property name="maxIdle" value="20"/>
        <!-- 连接池最小空闲 -->
        <property name="minIdle" value="0"/>
        <!-- 获取连接最大等待时间 -->
        <property name="maxWait" value="60000"/>

        <property name="validationQuery" value="SELECT 1 FROM DUAL"/>
        <property name="testOnBorrow" value="false"/>
        <property name="testOnReturn" value="false"/>
        <property name="testWhileIdle" value="true"/>

        <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
        <property name="timeBetweenEvictionRunsMillis" value="60000"/>
        <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
        <property name="minEvictableIdleTimeMillis" value="25200000"/>

        <!-- 打开removeAbandoned功能 -->
        <property name="removeAbandoned" value="true"/>
        <!-- 1800秒,也就是30分钟 -->
        <property name="removeAbandonedTimeout" value="1800"/>
        <!-- 关闭abanded连接时输出错误日志 -->
        <property name="logAbandoned" value="true"/>

        <!-- 监控数据库 -->
        <property name="filters" value="mergeStat"/>
    </bean>

    <!-- Spring整合Mybatis,更多查看文档:http://mp.baomidou.com -->
    <bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!-- 自动扫描Mapping.xml文件 -->
        <property name="mapperLocations" value="classpath:mybatis/mapper/*/*.xml"/>
        <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/>
        <!-- 可能是mybatis-plus的bug, 必须确保你指定扫描到的文件夹中有枚举和实体类,即使不需要用,创建一个丢那里不管都可以,不然启动可能报错 -->
        <property name="typeAliasesPackage" value="com.xxx.*.model"/>
        <property name="typeEnumsPackage" value="com.xxx.*.model.enums"/>
        <property name="plugins">
            <array>
                <!-- 插件配置看自己需求是否打开 -->
                <!-- 分页插件配置 -->
                <bean id="paginationInterceptor"
                      class="com.baomidou.mybatisplus.plugins.PaginationInterceptor"/>
                <!-- 乐观锁插件 -->
                <!--<bean id="optimisticLockerInterceptor"
                      class="com.baomidou.mybatisplus.plugins.OptimisticLockerInterceptor">
                </bean>-->
                <!-- 性能拦截器,兼打印sql,不建议生产环境配置-->
                <!--<bean id="performanceInterceptor"
                      class="com.baomidou.mybatisplus.plugins.PerformanceInterceptor"/>-->
            </array>
        </property>
        <!-- 全局配置注入 -->
        <property name="globalConfig" ref="globalConfig"/>
    </bean>

    <bean id="mybatisConfig" class="com.baomidou.mybatisplus.MybatisConfiguration">
        <property name="mapUnderscoreToCamelCase" value="true"/>
        <!-- 部分数据库不识别默认的NULL类型(比如oracle,需要配置该属性 -->
        <property name="jdbcTypeForNull">
            <util:constant static-field="org.apache.ibatis.type.JdbcType.NULL"/>
        </property>
    </bean>

    <!-- 定义 MP 全局策略 -->
    <bean id="globalConfig" class="com.baomidou.mybatisplus.entity.GlobalConfiguration">
        <!-- 逻辑删除 定义下面3个参数-->
        <property name="sqlInjector" ref="logicSqlInjector"/>
        <property name="logicDeleteValue" value="-1"/>
        <property name="logicNotDeleteValue" value="1"/>
        <!-- 全局ID类型: 0, "数据库ID自增", 1, "用户输入ID", 2, "全局唯一ID", 3, "全局唯一ID"-->
        <!--        <property name="idType" value="2"/>-->
        <!-- 2.1-gamma+ 数据库自动识别,无需配置数据库类型
        <property name="dbType" value="mysql" />
        -->
        <!-- 2.3+ 全局表前缀 mp_
        <property name="tablePrefix" value="mp_" />
        -->
        <!--主键Sequence-->
        <property name="keyGenerator" ref="keyGenerator"/>

        <property name="dbColumnUnderline" value="true"/>
        <!-- 公共字段填充处理器 -->
        <!--        <property name="metaObjectHandler" ref="myMetaObjectHandler"/>-->
        <!--数据库关键字转义符,'desc', "desc" 2.1-gamma+不需要制定-->
        <!--<property name="identifierQuote" value="'" />-->
    </bean>

    <!-- 配置oracle主键Sequence, 其他类型数据库,请配置相应的类型-->
    <bean id="keyGenerator" class="com.baomidou.mybatisplus.incrementer.OracleKeyGenerator"/>

    <!-- 自定义处理器 -->
    <!--    <bean id="myMetaObjectHandler" class="com.baomidou.test.MyMetaObjectHandler" />-->
    <!-- 逻辑删除Sql注入器-->
    <bean id="logicSqlInjector" class="com.baomidou.mybatisplus.mapper.LogicSqlInjector"/>


    <!-- MyBatis 动态扫描  -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.vinda.*.mapper"/>
    </bean>

    <!-- 配置事务管理 -->
    <bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!-- 事务管理 属性 -->
    <tx:advice id="transactionAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="add*" propagation="REQUIRED"/>
            <tx:method name="append*" propagation="REQUIRED"/>
            <tx:method name="save*" propagation="REQUIRED"/>
            <tx:method name="update*" propagation="REQUIRED"/>
            <tx:method name="modify*" propagation="REQUIRED"/>
            <tx:method name="edit*" propagation="REQUIRED"/>
            <tx:method name="insert*" propagation="REQUIRED"/>
            <tx:method name="delete*" propagation="REQUIRED"/>
            <tx:method name="remove*" propagation="REQUIRED"/>
            <tx:method name="repair" propagation="REQUIRED"/>

            <tx:method name="get*" propagation="REQUIRED" read-only="true"/>
            <tx:method name="find*" propagation="REQUIRED" read-only="true"/>
            <tx:method name="load*" propagation="REQUIRED" read-only="true"/>
            <tx:method name="search*" propagation="REQUIRED" read-only="true"/>
            <tx:method name="datagrid*" propagation="REQUIRED" read-only="true"/>

            <tx:method name="*" propagation="REQUIRED" read-only="true"/>
        </tx:attributes>
    </tx:advice>

    <!-- 配置切面 -->
    <aop:config>
        <aop:pointcut id="transactionPointcut" expression="execution(* com.vinda.*.service..*.*(..))"/>
        <aop:advisor pointcut-ref="transactionPointcut" advice-ref="transactionAdvice"/>
    </aop:config>

</beans>

springmvc-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
         http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-4.3.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">

    <!-- 自动扫描包,实现支持注解的IOC -->
    <!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 -->
    <context:component-scan base-package="com.vinda"
                            use-default-filters="false">
        <context:include-filter type="annotation"
                                expression="org.springframework.stereotype.Controller" />
        <context:include-filter type="annotation"
                                expression="org.springframework.web.bind.annotation.RestController" />
    </context:component-scan>
    <!-- 读取配置文件  -->
    <!-- 如果需要全局扫包,才使用这个,但是可能会有隐藏的问题 -->
    <!-- <context:property-placeholder location="classpath:*.properties,/WEB-INF/dorado-home/*.properties"/> -->

    <!-- Spring MVC不处理静态资源 -->
    <mvc:default-servlet-handler />

    <!-- 支持mvc注解驱动 -->
    <mvc:annotation-driven />

    <!-- 静态资源处理 vue css js imgs 如果前端不需要支持vue开发,可以注释这个配置, 这个文件夹放vue使用到的所有东西  -->
    <mvc:resources location="/WEB-INF/views/vue/" mapping="/vue/**"/>

    <!-- 视图解析器 支持jsp-->
    <bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver"
        id="internalResourceViewResolver">
        <!-- 前缀 -->
        <property name="prefix" value="/WEB-INF/views/" />
        <!-- 后缀 -->
        <property name="suffix" value=".jsp" />
    </bean>
</beans>

web.xml配置

在web.xml里面吧我们的配置注入进去就完成了

<!-- 加载Spring配置文件 -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:spring/spring.xml</param-value>
	</context-param>

<!-- springmvc配置 -->
	<servlet>
		<servlet-name>spring</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:spring/springmvc-servlet.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>spring</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>

<!-- Druid,监控数据库,以及WEB访问连接信息 -->
	<!-- 参考: https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_%E9%85%8D%E7%BD%AEWebStatFilter -->
	<filter>
		<filter-name>DruidWebStatFilter</filter-name>
		<filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
		<init-param>
			<param-name>exclusions</param-name>
			<param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,*.jsp,/druid/*,/download/*</param-value>
		</init-param>
		<init-param>
			<param-name>sessionStatMaxCount</param-name>
			<param-value>2000</param-value>
		</init-param>
		<init-param>
			<param-name>sessionStatEnable</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
			<param-name>principalSessionName</param-name>
			<param-value>session_user_key</param-value>
		</init-param>
		<init-param>
			<param-name>profileEnable</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>DruidWebStatFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<!-- 配置 Druid 监控信息显示页面 -->
	<servlet>
		<servlet-name>DruidStatView</servlet-name>
		<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
		<init-param>
			<!-- 允许清空统计数据 -->
			<param-name>resetEnable</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
			<!-- 用户名 -->
			<param-name>loginUsername</param-name>
			<param-value>druid</param-value>
		</init-param>
		<init-param>
			<!-- 密码 -->
			<param-name>loginPassword</param-name>
			<param-value>druid</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>DruidStatView</servlet-name>
		<url-pattern>/druid/*</url-pattern>
	</servlet-mapping>

Mybatis-Plus配置

在resources文件夹下面新增一个mybatis文件夹,里面新增一个mybatis-config.xml配置文件和mapper的文件夹

mybatis-config.xml是mybatis-plus的配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD SQL Map Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--
 |   plugins在配置文件中的位置必须符合要求,否则会报错,顺序如下:
 |   properties?, settings?,
 |   typeAliases?, typeHandlers?,
 |   objectFactory?,objectWrapperFactory?,
 |   plugins?,
 |   environments?, databaseIdProvider?, mappers?
 |-->
<configuration>
    <!--
     | 全局配置设置
     |
     | 可配置选项                   默认值,     描述
     |
     | aggressiveLazyLoading       true,     当设置为‘true’的时候,懒加载的对象可能被任何懒属性全部加载。否则,每个属性都按需加载。
     | multipleResultSetsEnabled   true,     允许和不允许单条语句返回多个数据集(取决于驱动需求)
     | useColumnLabel              true,     使用列标签代替列名称。不同的驱动器有不同的作法。参考一下驱动器文档,或者用这两个不同的选项进行测试一下。
     | useGeneratedKeys            false,    允许JDBC 生成主键。需要驱动器支持。如果设为了true,这个设置将强制使用被生成的主键,有一些驱动器不兼容不过仍然可以执行。
     | autoMappingBehavior         PARTIAL,  指定MyBatis 是否并且如何来自动映射数据表字段与对象的属性。PARTIAL将只自动映射简单的,没有嵌套的结果。FULL 将自动映射所有复杂的结果。
     | defaultExecutorType         SIMPLE,   配置和设定执行器,SIMPLE 执行器执行其它语句。REUSE 执行器可能重复使用prepared statements 语句,BATCH执行器可以重复执行语句和批量更新。
     | defaultStatementTimeout     null,     设置一个时限,以决定让驱动器等待数据库回应的多长时间为超时
     | -->
    <settings>
        <!-- 这个配置使全局的映射器启用或禁用缓存 -->
        <setting name="cacheEnabled" value="true"/>
        <!-- 全局启用或禁用延迟加载。当禁用时,所有关联对象都会即时加载 -->
        <setting name="lazyLoadingEnabled" value="true"/>
        <setting name="multipleResultSetsEnabled" value="true"/>
        <setting name="useColumnLabel" value="true"/>
        <setting name="defaultExecutorType" value="REUSE"/>
        <setting name="defaultStatementTimeout" value="25000"/>
    </settings>

</configuration>

P6spy的配置

#3.2.1以上使用
#modulelist=com.baomidou.mybatisplus.extension.p6spy.MybatisPlusLogFactory,com.p6spy.engine.outage.P6OutageFactory
#3.2.1以下使用或者不配置
#modulelist=com.p6spy.engine.logging.P6LogFactory,com.p6spy.engine.outage.P6OutageFactory
# 自定义日志打印 自己写的打印日志的Logger类,路径可以随意放,能访问到目标对象就行
logMessageFormat=com.xxx.config.P6SpyLogger
#日志输出到控制台
#appender=com.baomidou.mybatisplus.extension.p6spy.StdoutLogger
appender=com.p6spy.engine.spy.appender.Slf4JLogger
#appender=com.p6spy.engine.spy.appender.StdoutLogger
#appender=com.p6spy.engine.spy.appender.FileLogger
# 使用日志系统记录 sql
#appender=com.p6spy.engine.spy.appender.Slf4JLogger
# 设置 p6spy driver 代理
deregisterdrivers=true
# 取消JDBC URL前缀
useprefix=true
# 配置记录 Log 例外,可去掉的结果集有error,info,batch,debug,statement,commit,rollback,result,resultset.
excludecategories=info,debug,result,commit,resultset
# 日期格式
dateformat=yyyy-MM-dd HH:mm:ss
# 实际驱动可多个
driverlist=oracle.jdbc.driver.OracleDriver
# 是否开启慢SQL记录
outagedetection=true
# 慢SQL记录标准 2 秒
outagedetectioninterval=2

P6SpyLogger

package com.rst.config;

import com.p6spy.engine.spy.appender.MessageFormattingStrategy;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author xqc
 * 配置P6Spy监控输出格式
 */
public class P6SpyLogger implements MessageFormattingStrategy {

    private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");

    @Override
    public String formatMessage(int i, String s, long l, String s1, String s2, String s3, String s4) {
        if (!s3.trim().equals("")) {
            /*return format.format(new Date()) + " | took " + l + "ms | "
                    + s1 + " | connection " + s2 + "\n " + s3 + ";";*/
            StringBuilder sb = new StringBuilder();
            sb.append("\n");
            sb.append("\n");
            sb.append("当前时间: ").append(format.format(new Date())).append("\n");
            sb.append("连接url: ").append(s4).append("\n");
            sb.append("耗时: ").append(l).append("ms\n");
            sb.append("类别: ").append(s1).append("\n");
            // sb.append("预处理: ").append(s2).append("\n");
            sb.append("最后结果: \n\n").append(s3).append("\n");
            sb.append("\n---------------------------------------------------------------------\n");
            return sb.toString();

        }
        return "";
    }
}

在dorado7的xml中引用html,进而挂载vue文件

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>
<ViewConfig>
    <Arguments/>
    <Context/>
    <Model/>
    <View>
        <Container>
            <TabControl>
                <!--嵌入外部百度网页-->
                <IFrameTab>
                    <Property name="caption">BAIDU.com</Property>
                    <Property name="icon">url(https://blog.csdn.net/skin>common/icons.gif) -100px -100px</Property>
                    <Property name="closeable">true</Property>
                    <Property name="path">http://www.baidu.com</Property>
                </IFrameTab>
                <!--    嵌入内部vue页面-->
                <IFrameTab>
                    <Property name="caption">VUE</Property>
                    <Property name="icon">url(https://blog.csdn.net/skin>common/icons.gif) -100px -100px</Property>
                    <Property name="closeable">true</Property>
                    <Property name="path">${pageContext.request.contextPath}/vue/demo/index.html</Property>
                </IFrameTab>
            </TabControl>

        </Container>
    </View>
</ViewConfig>

所有配置的文件截图

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

阿里巴巴Druid监控

如果需要用到druid的监控功能,可以在web.xml配置这个
输入链接和设置的密码
http://localhost:8080/{项目路径}/druid/index.html
用户名和密码下面都设置成druid

<!-- Druid,监控数据库,以及WEB访问连接信息 -->
	<!-- 参考: https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_%E9%85%8D%E7%BD%AEWebStatFilter -->
	<filter>
		<filter-name>DruidWebStatFilter</filter-name>
		<filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
		<init-param>
			<param-name>exclusions</param-name>
			<param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,*.jsp,/druid/*,/download/*</param-value>
		</init-param>
		<init-param>
			<param-name>sessionStatMaxCount</param-name>
			<param-value>2000</param-value>
		</init-param>
		<init-param>
			<param-name>sessionStatEnable</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
			<param-name>principalSessionName</param-name>
			<param-value>session_user_key</param-value>
		</init-param>
		<init-param>
			<param-name>profileEnable</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>DruidWebStatFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<!-- 配置 Druid 监控信息显示页面 -->
	<servlet>
		<servlet-name>DruidStatView</servlet-name>
		<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
		<init-param>
			<!-- 允许清空统计数据 -->
			<param-name>resetEnable</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
			<!-- 用户名 -->
			<param-name>loginUsername</param-name>
			<param-value>druid</param-value>
		</init-param>
		<init-param>
			<!-- 密码 -->
			<param-name>loginPassword</param-name>
			<param-value>druid</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>DruidStatView</servlet-name>
		<url-pattern>/druid/*</url-pattern>
	</servlet-mapping>

使用姿势/DEBUG

后端

在这里插入图片描述

接口调试

可以先登录到原来的后台

按F12后选network

随便点个查询

取登录后的cookie

丢到postman里面,或者接口调试工具(新版IDEA自带的也比较推荐), postman可以自己百度下载

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

前端

前端甚至可以脱离后端进行单独开发!!
在这里插入图片描述
在这里插入图片描述

样式问题

图标

我把加载的图标复制出来,放在图标文件夹下,下面链接可以在大图中某个小图标 如果有漏了,可以自己按F12刷新下页面找找

https://www.w3school.com.cn/tags/tag_map.asp

https://www.runoob.com/try/try.php?filename=tryhtml_areamap
在这里插入图片描述

控件样式可以使用样式表覆盖,具体控件可以自己进行css的封装

例如:
在这里插入图片描述

总结

dorado这个框架,真心不建议用来开发了,写前端的eclipse插件没有检查器,写错了个标点能找一天

而且那个语法规则真心看不来…

最后

如果本文章能帮助到你,欢迎在评论区留言,也可以选择捐赠给作者~

在这里插入图片描述
在这里插入图片描述

我的微信
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值