![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后端
文章平均质量分 66
商朝
所有文章全部原创,读是吸收,写是倾吐.
展开
-
docker开发环境搭建(windows)
使用容器离线开发,更换设备只需一行代码即可完成环境搭建,满足了所有设备以及服务器通用一套镜像的刚需,解决了多个环境部署管理监控多套开发环境的弊端,删除重复操作大大节省了人员成本,本篇介绍关于mysql、nacos、nginx、redis在docker在开发设备上(windows)上部署原创 2022-11-14 16:33:18 · 5638 阅读 · 3 评论 -
idea配置tomcat代理jsp项目
下载tomcat下载tomcat下载tomcat->解压idea配置最后配置项目访问路由的前缀也就是上图Application context 它是端口号之后的url前缀,建议用/配置完毕启动项目原创 2021-11-25 00:30:02 · 327 阅读 · 0 评论 -
Camunda工作流集成SpringBoot(四)
节点之间的参数传递书接上回Camunda工作流集成SpringBoot(三)业务场景:还是一条请假申请,总不能没有请假的理由,直接申请到领导那里请求领导批示吧,所以在工作流之间参数的传递怎么做呢TaskServicesetVariable和setVariableLocal区别:前者全局,后者只能本节点使用//如果是职员任务节点需要提交任务参数if(task.getAssignee().equals("zhangsan")) { /** 1.使用基本数据类型设置流程变量原创 2021-09-09 19:46:54 · 1547 阅读 · 1 评论 -
Camunda工作流集成SpringBoot(三)
Camunda监听两种常用的监听方式监听位置start:启动监听 不能加在序列流上面end:结束监听 不能加在序列流上面take:执行监听 只能加在序列流上面create:流程启动assigment:流程部署complete:流程完成delete:流程结束ExecutionListener直接写js脚本的方式1.选择lnline Script,则Script里面写javascript的实现方式2.引用脚本路径的方式Script Type选择External Resource,则原创 2021-09-09 18:32:28 · 2106 阅读 · 0 评论 -
Camunda工作流集成SpringBoot(二)
创建流程实例注册流程相当于java中创建一个Class 后续的流程相当于该流程的一个一个的实例首先需要给大家展示一下流程图的xml文件后续我们会通过name创建流程类,通过id创建流程实例所以不要弄混了 @Autowired RepositoryService repositoryService; /** * 注册流程 **/ @Test public void registerProcesses(){ Deployment deploy原创 2021-09-09 16:10:26 · 2467 阅读 · 0 评论 -
shiro
Shiro使用Shiro进行登录权限校验官方解释:个人理解:首先Shiro进行登录校验是不与数据库交互的,可以直接通过控制层校验身份shiro主要有三大功能模块:Subject:主体,一般指用户。SecurityManager:安全管理器,管理所有Subject,可以配合内部安全组件。(类似于SpringMVC中的DispatcherServlet)Realms:用于进行权限信息的验证,一般需要自己实现。细分功能Authentication:身份认证/登录(账号密码验证)。A原创 2021-08-31 16:02:29 · 238 阅读 · 0 评论 -
golang原生net/http手写自己的rpc框架
前言首先golang 原生的net/http就已经很强大了,正因如此,手写框架的门槛就很低了,所以既python之后的go,框架多之又多,那不如我们自己写一个看看效果目录scgo/|__api| └──Controller.go├── router│ └── Router.go├── stock│ └── RouterStock.go├── scgo.go原理核心点:实现http.server.go中这个接口RouterStock.go这是一个存放url的map原创 2021-07-29 19:13:15 · 630 阅读 · 0 评论 -
使用Beego开发项目以及和SpringBoot的异同
前传本文笔者使用的goLand做开发至于go环境的搭建和beego的安装 在这里就不介绍了配置打开goLand 首先把这个勾上终端执行Bee new beego-hello完活后可以拿到一个beego生成的架子大概这样废话不多收直接 go build 或者main.go点进去debug,编译完浏览器打开http://localhost:8080我们Beego的欢迎界面就出现了Controller和SpringBoot不同的是没有@RequestMapping()这种东西,他的路由原创 2021-07-28 18:26:10 · 710 阅读 · 0 评论 -
微信订阅消息后端实现
获取templateId微信开放平台-订阅消息-选定一个模板前端用户授权(绑定点击事件)wx.requestSubscribeMessage({ tmplIds:[ // 这里填写需要发送的订阅消息ID。 ], success:function(res){ // 通过判断 res 的返回结果,来查看用户是否授权 if(res[TEMPLATE_ID]=="accept"){ } // 再发起网络传递原创 2021-06-24 10:53:45 · 385 阅读 · 0 评论 -
websocket 404解决方案
一 @ServerEndpoint没有加@Component二 没写@Bean ServerEndpointExporter <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency>原创 2021-06-23 18:23:32 · 842 阅读 · 1 评论 -
Springboot集成shiro过滤器拦截策略配置
依赖 <!-- shiro 认证与授权 --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>${shiro.version}</ver原创 2021-06-23 17:44:21 · 975 阅读 · 0 评论 -
@ServerEndpoint无法注入service
WebSocketClient 是没有办法注入bean的,所有有时候我们需要在 onOpen()或者onMessage中执行入库操作 那么就需要直接从ioc容器中获取beanSpringUtil工具类引入项目import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.context.Application原创 2021-06-23 17:28:17 · 1404 阅读 · 5 评论 -
Mqtt服务自动重启,以及防止clientId重复被顶
mqttClient是一个储存在内存中的对象,一旦服务器重启或者项目发版,必须让刚刚正在工作的消费方重新启动起来同时我们需要将这些对象储存起来,方便我们手动关闭监听一个仓库+一个线程哨兵上代码package com.datacvg.config;import com.datacvg.dao.ExchangeMqWithDatabaseMapper;import com.datacvg.mqtt.DatasourceCrossClient;import com.datacvg.vo.Excha原创 2021-06-18 10:43:29 · 2536 阅读 · 0 评论 -
Mqtt消费方数据实时入库 cv即用
mqtt队列中必须为json对象,才能使用此类 <!--Mqtt--> <dependency> <groupId>org.eclipse.paho</groupId> <artifactId>org.eclipse.paho.client.mqttv3</artifactId> <version>1.1.0</version&g原创 2021-06-18 10:30:10 · 496 阅读 · 0 评论 -
Websocket vue+Springboot前后端案例
前端js根目录创建一个js文件import Vue from 'vue'//创建websocket对象import store from '@/store/index'let webSocket = null;//创建webSocket连接let createWebSocket = () => { try { let url = window.location.href const ip = url.split('//')[1].split原创 2021-05-11 15:14:09 · 607 阅读 · 6 评论 -
Camunda工作流集成SpringBoot(一)
下载工具官网链接:https://camunda.com/download/modeler/,选择如图,然后下载自己所需要idea添加外部工具idea中File -> Settings -> Tools -> External Tools里添加外部工具开始绘图右键项目,点击刚刚添加的外部工具我们使用BPMN格式来绘图注意右侧参数提交申请经理审批审批条件,排他网关,选中箭头添加条件字符串:${flag.equals('xxx')}数字: ${flag==/原创 2021-04-22 18:07:36 · 6647 阅读 · 6 评论 -
axios发请求,SpringBoot接请求的各种对应
四类请求方法GetPostPutDelete其中发axios自动发json的是Post和Delete,而Get和Put请求则是发k=v的表单形式,这一块有时候比较混乱,我试着给大家解释一下Get发参数发一个对象axios.get('url',{params:{Student:this.addForm}}).then(res=>{ ..})//发送表单对象后端接这个对象,因为不是发的Json,千万不要加@RequestBody@GetMapping("/")public原创 2021-04-08 21:37:09 · 876 阅读 · 0 评论 -
表结构设计的基本思路
首先在开启一个项目时,至关重要的第一步就是设计表结构,很多小伙伴在初入职场的时候找不清如何下手只是感觉很乱,那么今天我提供几个基本的思路切入点找到一个主表,比如你要设计一个某某产品的的管理系统,那么ok这张产品表就是我们的主表,它作为主干来分支,一个产品基本的字段我们先创建出来比如(id,name,status…),何为基本呢?就是不涉及第二张表的字段.第二步需要考虑业务逻辑了,比如一个产品对应一个用户啊,一个产品对应多个供销商啊,一个供销商对应多个商品啊,一个产品对应多条评论啊,一个产品对应多张l原创 2021-04-08 21:23:51 · 2635 阅读 · 1 评论 -
RocketMQ在Springboot项目中的应用
配置文件application.yml中关于RocketMQ的配置如下:bg: rocketmq: # namesrvAddr地址 # namesrvAddr: 0.0.0.0:9876 namesrvAddr: 192.168.2.68:9876 # 生产者group名称 producerGroupName: producerGroupName # 事务生产者group名称 transactionProducerGroupNam原创 2021-04-07 22:03:57 · 871 阅读 · 4 评论 -
XXLJob与SpringCloud整合
图示下载,建表网上链接一堆,自己找去,下载完了解压之后是个聚合工程,复制doc>db>.sql文件里面的内容,打开数据库的可视化工具,新建查询粘贴,执行admin配置,logback.xml配置配置端口号我习惯用7001…配置contextpath…随便配置datasource…改驱动改用户名和密码配置警示邮件…随便写其他不用动logback.xml不改它启动admin是否成功 成功的话 直接打包就ok新建SpringCloud项目注册中心->提供者->消原创 2021-04-07 09:46:59 · 3813 阅读 · 0 评论 -
Mybatis中动态的<trim>标签作用,以及#{jdbcType}的用处
例子select * from user<trim perfix='values (' suffix=')' suffixOverrides=','> <if test="userId != null"> #{userId,jdbcType=CHAR}, </if> <if test="loginName != null"> #{loginName,jdbcType=V原创 2021-04-07 09:22:30 · 321 阅读 · 0 评论 -
SpringCloud案例
今天写一个自己提供服务自己消费服务的项目依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Hoxton.SR1</version>原创 2021-04-01 16:27:35 · 825 阅读 · 1 评论 -
单机版Dubbo详解
流程#mermaid-svg-72UwTXNSMb0szdvb .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-72UwTXNSMb0szdvb .label text{fill:#333}#mermaid-svg-72UwTXNSMb0szdvb .node rect,#mermaid-svg-72UwTXN原创 2021-03-30 14:23:20 · 234 阅读 · 0 评论 -
SpringMVC整合WebService
前言不用DispatcherServlet而是用CXFServlet配置配置web.xml <!--配置CXFServlet--> <servlet> <servlet-name>cxf</servlet-name> <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> <原创 2021-03-18 10:32:34 · 2337 阅读 · 4 评论 -
通过ActiveMQ实现邮件激活账号功能-SpringMVC
前言我们今天要实现的功能是用户在注册的时候会填写一个邮箱,后台拿到这个邮箱并向邮箱发一个激活账号的邮件流程生产者第一步配置ActiveMQconfig项目框架是SpringMVC,所以接着上一篇那个工程在SpringMVC和Root两个容器之外,再建立一个ActiveMQConfig.java以完成消息队列的配置消息队列的配置信息如下@Configuration@PropertySource(value = "classpath:mq.properties")public class原创 2021-03-17 21:27:01 · 205 阅读 · 0 评论 -
Springboot项目快速启动
可能会用到的pom依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.6.RELEASE</version> </parent> <dependencie原创 2021-03-16 19:14:38 · 194 阅读 · 0 评论 -
Cron表达式
概述注意事项每一个域都使用数字,但还可以出现如下特殊字符,它们的含义是: (1):表示匹配该域的任意值。假如在Minutes域使用, 即表示每分钟都会触发事件。(2)?:只能用在DayofMonth和DayofWeek两个域。它也匹配域的任意值,但实际不会。因为DayofMonth和DayofWeek会相互影响。例如想在每月的20日触发调度,不管20日到底是星期几,则只能使用如下写法: 13 13 15 20 * ?, 其中最后一位只能用?,而不能使用*,如果使用*表示不管星期几都会触发,实际上原创 2021-03-15 21:36:58 · 493 阅读 · 0 评论 -
SpringBoot统一异常处理
前言运行时异常的统一处理自定义异常public class ParamException extends RuntimeException { public ParamException(String message) { super(message); }}自定义异常处理器@RestControllerAdvice@Slf4jpublic class GlobalExceptionHandler { @Autowired Result r;原创 2021-03-13 18:10:48 · 120 阅读 · 0 评论 -
Intercepter登录验证
前言用到的技术手段后端SpringMVC请求拦截器-Intercepter前端Vue路由守卫axios请求拦截器axios响应拦截器流程下面是一个单线的流程,拦截器一个都不加 @PostMapping("/login") public Result login(@RequestParam String username,@RequestParam String password){ User u =service.login(username);原创 2021-03-13 17:55:19 · 259 阅读 · 1 评论 -
控制层只有Servlet怎么解决跨域问题
前言如今只用Servlet当控制层的情况不多见了,Spring的天下了嘛,那么如果只用Servlet怎么解决后端跨域问题?代码在包里放个Filter实现类就可以了:@WebFilter("/*")public class CrossFilter implements Filter{ @Override public void init(FilterConfig filterConfig) throws ServletException { } @Overrid原创 2021-03-10 20:06:55 · 561 阅读 · 0 评论 -
通过一个登录模块掌握Cookie Session Redis三把工具刀
前言对于前后端分离的项目,Cookie和Session是前后端通信的两种重要手段,我们今天来看看两者的区别,以及提供一个引出Redis的使用案例一 Cookie它的流程是这样的????拿登录模块举个例子#mermaid-svg-HMOx262atRwy0AgE .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-原创 2021-02-28 15:03:08 · 191 阅读 · 0 评论 -
Mybatis分页插件使用的详解
前言关于分页,一般来说rowBounds 这种假分页都上不了台面,我们往往都选哟真分页,那么还不想搞得很麻烦,Mybatis的分页插件就为后端程序员解决了这个问题例子首先需要导入依赖, 没错pagehelper <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <v原创 2021-02-27 18:55:12 · 1701 阅读 · 0 评论 -
Java注解详解
一 枚举二 注解注解:annotation,写在类中的注解,它是给类看的1.JDK中提供了一些注解,比如@Override @Deprecated...2.自定义注解 关键字@interfaceMarker annotationString value() default "" @xx("value属性可以不写")3.java.lang.annotation子包中的注解@Target:表示注解适用的程序元素,有一个value属性,ElementType属性是个枚举@Retention:原创 2021-02-20 22:12:37 · 60 阅读 · 0 评论 -
Java反射详解(二)-Method
前言上一篇我们详细介绍了Field的用法,我们知道它是一个类用来拿到某个实体类的属性,那么Method这个类就是我们用来获取某个实体类的方法方法getMethod();getMethods();getDeclaredMethod();getDeclaredMethods();这四个方法与Field很类似,加上Declared也是只能拿本类的所有方法,不加的话只能获得本类public修饰和直接父类public修饰的方法而不同的是:传参不同getMethod(String methodNam原创 2021-02-20 11:16:21 · 696 阅读 · 0 评论 -
Java反射详解(一)-Field
Reflection反射的应用场景场景一:JDBC封装的工具类DBUtils组件问题:写DBUtils在前,我们使用在后,那么当时作者在写DBUtils时候,作者是否知道后面我们使用时,需要查询返回某个类型的对象?例如:Student stu =qr.query(sql,new BeanHandler(),xxx);作者在写queryRunning时时怎么知道我们需要Student这种实体类的返回类型的呢?结论:在DBUtils源码中一定有一段在运行期动态的根据传入的类型创建指定类型对象的代原创 2021-02-19 18:58:22 · 302 阅读 · 0 评论 -
客户端excel如何存入数据库?
需求2先看看我们手里有什么==>一个List集合放了一堆Map Map里面放着K=V流程2#mermaid-svg-5D5OMm5s5sQUyJx0 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-5D5OMm5s5sQUyJx0 .label text{fill:#333}#mermaid-svg-原创 2021-02-06 11:12:24 · 376 阅读 · 2 评论 -
excel表格如何变成Map集合
需求excel表格=>List<Map<K,V>>的形式技术需要:io流,poi,List和Map集合基本用法流程#mermaid-svg-Cifz7OfeU5OhSfOf .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-Cifz7OfeU5OhSfOf .label te原创 2021-02-06 10:14:41 · 3139 阅读 · 7 评论 -
数据库中的表导出成excel表格 并发送给客户端
需求概述excel相信大家都不陌生了,公司里的白领也好大学学生也好的老朋友了,今天说说后端数据库里的内容怎么导出成excel表格技术手段后端:Servlet,poi前端:axios啥效果?上图原创 2021-02-05 22:31:41 · 271 阅读 · 0 评论 -
servlet接收二进制请求(图片上传),解决getParameter拿不到值得问题
图片上传一般前端来的request 到servlet的service往下一分直接getParameter("…")就能拿参数,如果是前端通过el-upload 里面action发过来的,那抱歉不能直接接收,因为是二进制的请求格式,我是这么做的插件 <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifa原创 2021-02-04 22:08:39 · 761 阅读 · 0 评论 -
SpringMVC如何解决跨域问题,后端如何跨域?
Filter添加过滤器在controler 创一个java文件 和servlet是并列的 只不过它是@WebFilter 实现Filter接口 分清楚就好 直接复制就能用package com.etoak.student.controller;import javax.servlet.*;import javax.servlet.annotation.WebFilter;import javax.servlet.http.HttpServletResponse;import java.io.I原创 2021-02-04 21:55:02 · 739 阅读 · 0 评论