前言
目前在做微信端的开发,看着同事用这个框架,写着特别的痛苦
觉得这个东西,开发太慢,效率不高,坑比较多,而且应该没人维护了…吧
比如这位老哥的吐槽
- 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插件没有检查器,写错了个标点能找一天
而且那个语法规则真心看不来…
最后
如果本文章能帮助到你,欢迎在评论区留言,也可以选择捐赠给作者~


我的微信

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

被折叠的 条评论
为什么被折叠?



