自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

做Java整整10年,目前是教别人写代码,嘿嘿

本人会在各大平台发布视频、文章,大家可以搜索学习哈。

  • 博客(243)
  • 资源 (88)
  • 问答 (1)
  • 收藏
  • 关注

原创 多用户商城系统(B2B2C、C2C)用JSP还是.NET开发的性价比高?

java b2b2c b2c c2c o2o

2018-07-09 16:51:00 761

原创 分享大型Java多用户商城系统开发历程

最近公司要搞商城,让我多方咨询,最后看了很多,要不就是代码、表字段注释不全,要不就是bug多,要么就是文档缺少,最后决定自己开发一套商城。下面是开发的一些心得体会,权且记录下来,给自己做个记录把。本人QQ:4407509,有问题可以联系本人之前一直都是在从事电商相关和互联网金融开发,处理过亿级数据量,所以被目前这家公司看重。由于Java是开源的,最近几年

2017-02-25 18:12:39 795

原创 Spring 依赖注入(DI)

注入主要是在这里,网络上大量分析依赖注入DI也是分析的这里。1、DI:Spring是否支持循环依赖注入:支持。这里使用注解版分析,xml配置文件也类似。从打印可以看出来是将UserDao给注入。先分别创建对象,之后再给彼此注入属性。3、构造方法注入能解决循环依赖吗?将依赖关系找到,放到集合中待用。2、循环依赖注入如何解决的?

2024-07-19 18:22:07 113

原创 Spring 读取配置文件

因为一步一步debug查找太麻烦,可以把配置文件名写错,spring解析会报错,报错信息就有调用链路。这里的文件名就是错误了,spring找不到该文件,那么会报错,报错信息从下往上每一个步骤就是调用链路。利用BeanUtils创建对象,使用的是反射。会发现用的是JDK自带的xml解析包。

2024-07-19 17:26:10 184

原创 Spring Prototype获取bean

当scope是prototype的时候,不是在Spring启动的时候创建bean,是在获取bean的时候才会去创建。在需要创建的对象构造方法中造一个异常,控制台报错,就是调用链路。

2024-07-19 16:53:31 284

原创 Spring 单例对象放到缓存中

Spring创建的单例对象是放到ConcurrentHashMap中。接着创建对象过程,当程序走到:让程序往后面走。会发现这里做了是否是单例的判断!从缓存中获取单例的bean。单例bean存放位置。

2024-07-19 16:48:35 175

原创 Spring 创建对象过程

所以提供一个无参数构造方法,打个断点,再去启动Spring,当Spring创建对象的时候,就会进入该断点,直接断点回退即可快速找到Spring通过反射创建对象的代码位置。无论是Spring封装的创建对象,还是我们自己去用反射、new的方式,最终都需要走构造方法,无参数或者有参数,添加构造方法,打一个断点,也是可以走到的。Java中创建对象无非是new或者反射,既然不用我们自己new,那只能是反射了。就是用的这个BeanUtils工具类调用反射创建对象。启动断点可以走到这里。是不是有点白忙活了。

2024-07-19 16:44:51 325

原创 Spring SPI机制

SPI全称,是Java提供的一套用来被第三方实现或者扩展的接口,它可以用来启用框架扩展和替换组件。SPI的作用就是为这些被扩展的API寻找服务实现。本质是通过基于接口的编程+策略模式+配置文件实现动态加载。可以实现解耦(接口和实现分离),提高框架的可拓展性(第三方可以自己实现,达到插拔式的效果)。我们来开发SPI看一下。首先定义一个接口。定义不同的实现类。@Override@OverrideSystem.out.println(getName() + "执行");@Override。

2024-07-19 08:56:27 726

原创 Spring 中常见的设计模式

Spring AOP就是基于动态代理的,如果要代理的对象,实现了某个接口,那么Spring AOP会使用JDK Proxy,去创建代理对象,而对于没有实现接口的对象,就无法使用JDK Proxy去进行代理了,这时候Spring AOP会使用Cglib,这时候Spring AOP会使用Cglib生成一个被代理对象的子类来作为代理。)对类进行方法级别的切面增强,即,生成被代理类的代理类, 并在代理类的方法前,设置拦截器,通过执行拦截器重的内容增强了代理方法的功能,实现的面向切面编程。下面我们看看具体的代码。

2024-07-19 08:49:43 657

原创 Spring 源码分析环境搭建

搭建Spring官方源码,方便源码研究,以及在源码中添加注释等等。

2024-07-19 08:21:28 826

原创 Spring全家桶源码分析

今天开始更新Spring全家桶源码分析。

2024-07-19 05:46:57 281

原创 SpringBoot3 Vue3 ElementPlus Activiti7工作流 代码生成器

Java快速开发框架,适合企业作为脚手架、大神接活用。Activiti7工作流。

2024-07-10 21:15:42 105

原创 springboot-vue毕业生信息招聘平台+ppt

2024-06-23 11:41:15 95

原创 SpringBoot摄影网站系统代码

SpringBoot摄影网站系统代码。

2024-05-25 20:31:11 421

原创 java.lang.ClassCastException: class java.io.ObjectStreamClass$Caches$

将tomcat版本升级到9.0就没有问题了。

2023-10-20 21:41:03 690

原创 SpringBoot3.x+SpringSecurity6.x+Vue3+Pina+Vite+TS权限系统。 整合了Activititi7工作流、Quartz定时器、代码生成器

RedPig 是一个轻量级的,前后端分离的Java快速开发平台,能快速开发项目并交付系统架构:SpringBoot3、SpringSecurity6、MyBatis-Plus、Vue3、TypeScript、Vite、Pina框架代码生成器:一键生成服务端、客户端代码以及数据库SQL文件,开发人员只需关注业务。

2023-09-20 22:36:25 453

原创 SpringBoot3+SpringSecurity6.x+Vue3+TypeScript+ElementPlus项目

用户管理:系统用户,用户具有角色、权限角色管理:用户可以分配多个角色,菜单可以分配多个角色,用户登录通过角色判断拥有的菜单权限管理:权限标识使用:1、前端按钮数据权限展示,2、后端SpringSecurity接口访问动态授权菜单管理:配置菜单角色、按钮数据权限标识菜单生成:代码生成器生成代码后,可以生成菜单,默认是管理员可以访问部门管理:配置用户所属部门代码生成:代码生成器可以一键生成服务端、VUE客户端、SQL语句。

2023-08-25 07:58:17 408

原创 SpringBoot3.x+SpringSecurity6.x+Vue3+Pina+Vite+TS权限系统。 整合了Activititi7工作流、Quartz定时器、代码生成器

RedPig 是一个轻量级的,前后端分离的Java快速开发平台,能快速开发项目并交付系统架构:SpringBoot3、SpringSecurity6、MyBatis-Plus、Vue3、TypeScript、Vite、Pina框架代码生成器:一键生成服务端、客户端代码以及数据库SQL文件,开发人员只需关注业务。

2023-08-10 20:30:08 541

原创 springboot网上书城书店

该系统分为前台展示和后台管理两大模块。前台主要是为消费者服务。系统实现了注册,登录,以及从浏览、下单到支付的整个流程,支付使用的是支付宝的沙箱环境,属于模拟环境。需要注册沙箱账号才能付款。后台主要是为商家服务,实现了权限,店铺,商品和订单等的管理,以及生成一些简单的报表信息。访问 /admin 进入后台。

2023-08-01 14:36:09 90

原创 SpringBoot整合RabbitMQ

启动消费者工程监听,之后启动生产者产生测试类,发送消息。使用RarbbitTemplate发送消息。本例配置Topic交换机。消费者工程接收到消息。

2023-07-28 15:18:29 63

原创 RabbitMQ 死信队列

先从概念解释上搞清楚这个定义,死信,顾名思义就是无法被消费的消息,字面意思可以这样理解,一般来说,producer 将消息投递到 broker 或者直接到queue 里了,consumer 从 queue 取出消息进行消费,但某些时候由于特定的原因导致 queue 中的某些消息无法被消费,这样的消息如果没有后续的处理,就变成了死信,有死信自然就有了死信队列。先启动C1,让其创建正常交换机、死信交换机、正常队列、死信队列,以及之间的绑定关系,之后关闭C1,生产者发送消息,这是模拟“消息TTL 过期”。

2023-07-28 15:17:52 100

原创 RabbitMQ 事务机制

事务确实能够解决producer与broker之间消息确认的问题,只有消息成功被broker接受,事务提交才能成功,否则我们便可以在捕获异常进行事务回滚操作同时进行消息重发,但是使用事务机制的话会降低RabbitMQ的性能,那么有没有更好的方法既能保障producer知道消息已经正确送到,又能基本上不带来性能上的损失呢?生产者发送消息出去之后,不知道到底有没有发送到RabbitMQ服务器, 默认是不知道的。而且有的时候我们在发送消息之后,后面的逻辑出问题了,我们不想要发送之前的消息了,需要撤回该怎么做。

2023-07-28 15:17:15 221

原创 Activiti7 流程回退、流程拒绝【二十】

通过变量控制流程走向我们可以通过变量控制来控制流程走向,达到拒绝效果。

2023-07-28 15:07:50 2631 7

原创 Activiti7 子流程【十九】

这里生成的图是有点小bug的,进入子流程后是在start位置,但是实际上已经到了【经理审核】了!并在子流程的【内部审核】上添加监听器。【内部审核】完成后,整个程序执行结束。【经理审核】完成后走到【人事审核】【经理审核】监听器被触发。

2023-07-28 15:06:07 480

原创 Activiti7 多种任务类型【十八】

Service如果没有指定名字,默认是类名的首字母小写,即myTaskService。} else {} } }} else {} } }} else {} } }} else {} } }} else {} } }} else {} } }} else {} } }} else {} } }Script Format:脚本类型,groovyScript:脚本代码。

2023-07-28 15:04:46 610

原创 Activiti7 整合SpringBoot【十七】

由于activiti7是使用mybatis作为orm框架,我这里整合mybatis-plus,所以需要排除mybatis。mysql不能忘记!

2023-07-28 15:00:51 463

原创 Activiti7 网关Gateway【十六】

所谓网关就是条件分支语句if() else if () ,排它网关会执行所有条件找到一个为true的执行,如果有多个条件为true那么会执行优先定义的(Id较小的那个UserTask),如果条件都为false则抛出异常。并行网关没有条件,写了条件也会被忽略,【全部都会执行,这里可以通过在人事审批、CTO审批上添加监听器,看监听器会发现全部执行】,前面做fork分支,后面做join汇聚。当【经理审批】完接下来就会同时插入两条任务(人事审批、CTO审批),两个经理审核完后就进入【CEO审批】。

2023-07-28 14:59:29 430

原创 Activiti7 流程变量【十五】

流程变量就是if(条件)中使用到的变量用于参与条件表达式的计算。变量都是有作用域的,在程序中方法内部的变量是属于局部变量,方法外的变量属于全局变量,同样流程变量也分全局变量global(作用在整个流程实例范围)和本地变量local(作用在单个任务或者单个执行实例)。

2023-07-28 14:58:35 449

原创 Activiti7 监听器【十四】

常用于监听Assignment事件,设置完负责人给负责人发一个消息来通知提示。注意:任务监听器只能用在UserTask上使用。任务监听器是处理业务逻辑的重要的地方,当任务创建、设定负责人、完成任务时都可以监听的到从而来处理自己的业务。

2023-07-28 14:57:44 673

原创 Activiti7 任务办理人、委派、转办、持有人、候选人、候选人组、审批意见【十三】

Assignee指定办理人模式:即设置办理人,就是设置Assignee。在ACT_HI_TASKINST和ACT_RU_TASK会产生数据,这两个表里面的Assignee_字段就是设置的办理人姓名或者对象的ID。当任务可以被多人处理的时候,可能会发生并发,所以添加候选人,让候选人去获取任务,之后就变成这个候选人的任务了。当发起人zs完成自己的审批后到底下一个任务节点经理审批时,此时的ASSIGNEE_字段是空的。:指当前任务的执行人,他此时持有该任务。:代表有权限对任务进行操作的人。

2023-07-28 14:53:48 2873

原创 Activiti7 任务委派【十四】

这里关键是将ACT_RU_TASK的ASSIGNEE_设置为新待办人。

2023-07-28 14:48:31 246

原创 Activiti7 任务办理人【十三】

Assignee指定办理人模式:即设置办理人,就是设置Assignee。Assignee 受让人;办理人只能指定一个人,不能使用逗号分隔。默认执行签收操作taskService.claim(taskId, currentUserId);在ACT_HI_TASKINST和ACT_RU_TASK会产生数据,这两个表里面的Assignee_字段就是设置的办理人姓名或者对象的ID。

2023-07-28 14:47:07 290

原创 Activiti7 历史数据【十二】

【代码】Activiti7 历史数据【十二】

2023-07-28 10:20:26 611

原创 Activiti7 完成任务【十一】

通过TaskService可以完成任务。

2023-07-28 10:05:31 651

原创 Activiti7 查询任务执行流程图【十】

14、Activiti7 查询历史流程实例、活动、任务我们可以通过activiti的TaskService以及HistoryService来查询当前任务,以及将当前执行的流程图输出,这样我们在项目中就可以实时查询流程执行到的具体位置。

2023-07-27 16:38:47 2185

原创 Activiti7 发起任务【九】

12、Activiti7 发起流程。

2023-07-27 16:31:09 750

原创 Activiti7 生成SVG图片【八】

我们可以将工作流的图生成SVG图片,这样当我们整合activiti到项目中的时候就可以方便查看了。

2023-07-27 16:21:25 838 4

原创 Activiti7 删除流程【七】

当我们的流程部署到数据库中,如果我们不再需要,可以通过repositoryService将流程删除。11、Activiti7 删除流程定义。

2023-07-27 16:17:37 1026

原创 Activiti7 查询流程【六】

我们可以通过RepositoryService来查询已经部署的流程信息以及流程定义信息。10、Activiti7 查询流程部署和流程定义数据。

2023-07-27 16:11:24 1153

原创 Activiti7 部署流程【五】

06、Activiti7 部署流程07、Activiti7 磁盘部署流程08、Activiti7 通过zip包部署09、Activiti7 通过xml和png部署。

2023-07-27 15:57:59 757

ssm312汽车租赁系统业务管理子系统+vue.zip

ssm312汽车租赁系统业务管理子系统+vue

2024-07-20

ssm308医院疫情防控管理系统.zip

ssm308医院疫情防控管理系统

2024-07-20

ssm309物业管理+jsp.zip

ssm309物业管理+jsp

2024-07-20

ssm305食用菌菌棒溯源系统的开发与设计+vue.zip

ssm305食用菌菌棒溯源系统的开发与设计+vue

2024-07-20

ssm303学生考勤管理.zip

ssm303学生考勤管理

2024-07-20

ssm286电脑公司财务管理系统+vue.rar

ssm286电脑公司财务管理系统+vue

2024-07-20

ssm275宠物医院管理系统+vue.rar

ssm275宠物医院管理系统+vue

2024-07-20

ssm242高校图书馆个性化服务的设计与实现+jsp.rar

ssm242高校图书馆个性化服务的设计与实现+jsp

2024-06-24

ssm241航班订票管理系统+jsp.zip

ssm241航班订票管理系统+jsp

2024-06-24

ssm240葛溪乡留守儿童信息管理系统+vue.rar

ssm240葛溪乡留守儿童信息管理系统+vue

2024-06-24

ssm239罪犯信息管理系统+vue.rar

ssm239罪犯信息管理系统+vue

2024-06-24

ssm236基于ssm的宠物医院管理系统的设计与实现+vue.zip

ssm236基于ssm的宠物医院管理系统的设计与实现+vue

2024-06-24

ssm237基于SSM框架的校园招聘系统的设计与实现+vue.rar

ssm237基于SSM框架的校园招聘系统的设计与实现+vue

2024-06-24

ssm238酒店预约及管理系统的设计与实现+vue.zip

ssm238酒店预约及管理系统的设计与实现+vue

2024-06-24

ssm234居家养老系统+vue.zip

ssm234居家养老系统+vue

2024-06-24

ssm235基于HTML5的OA办公系统+vue.zip

ssm235基于HTML5的OA办公系统+vue

2024-06-24

ssm230电子设备销售网站的设计与实现+vue.zip

ssm230电子设备销售网站的设计与实现+vue

2024-06-24

ssm232流浪动物领养信息系统设计+jsp.zip

ssm232流浪动物领养信息系统设计+jsp

2024-06-24

ssm231论文投稿系统+vue.zip

ssm231论文投稿系统+vue

2024-06-24

ssm228图书商城网站的设计和开发+vue.zip

ssm228图书商城网站的设计和开发+vue

2024-06-24

ssm316基于ssm的游戏销售系统的设计与实现+vue.zip

ssm316基于ssm的游戏销售系统的设计与实现+vue

2024-07-20

ssm317基于SSM的中学课内小说阅读与学习系统的设计+vue.zip

ssm317基于SSM的中学课内小说阅读与学习系统的设计+vue

2024-07-20

ssm307自习室预订座位管理分析与实现+vue.rar

ssm307自习室预订座位管理分析与实现+vue

2024-07-20

ssm304社区生鲜电商平台+vue.zip

ssm304社区生鲜电商平台+vue

2024-07-20

ssm301图书管理借阅系统+jsp.zip

ssm301图书管理借阅系统+jsp

2024-07-20

ssm299网上球鞋竞拍系统.zip

ssm299网上球鞋竞拍系统

2024-07-20

ssm294农业商品信息管理权限后台子系统.zip

ssm294农业商品信息管理权限后台子系统

2024-07-20

ssm288基于SSM的婚恋网站的设计与实现+vue.zip

ssm288基于SSM的婚恋网站的设计与实现+vue

2024-07-20

ssm282学生学情预警系统的设计与实现+vue.rar

ssm282学生学情预警系统的设计与实现+vue

2024-07-20

ssm279酒店客房管理系统+jsp.rar

ssm279酒店客房管理系统+jsp

2024-07-20

ssm281基于SSM框架的电脑测评系统+vue.zip

ssm281基于SSM框架的电脑测评系统+vue

2024-07-20

ssm277基于java web的计算机office课程平台设计与实现+vue.zip

ssm277基于java web的计算机office课程平台设计与实现+vue

2024-07-20

ssm276大学学生成长系+vue.zip

ssm276大学学生成长系+vue

2024-07-20

ssm269基于Vue的购物商城网站的设计与实现+vue.zip

ssm269基于Vue的购物商城网站的设计与实现+vue

2024-07-20

ssm255基于WEB的开放性实验室管理系统+vue.zip

ssm255基于WEB的开放性实验室管理系统+vue

2024-07-20

ssm256模具制造企业订单跟踪管理系统+vue.zip

ssm256模具制造企业订单跟踪管理系统+vue

2024-07-20

ssm257毕业设计项目管理系统+jsp.rar

ssm257毕业设计项目管理系统+jsp

2024-07-20

ssm252基于javaweb的吃了吗管理系统+vue.rar

ssm252基于javaweb的吃了吗管理系统+vue

2024-07-20

ssm247缪斯乐器购物网站的设计与实现+jsp.zip

ssm247缪斯乐器购物网站的设计与实现+jsp

2024-07-20

ssm246品牌手机销售信息系统+jsp.zip

ssm246品牌手机销售信息系统+jsp

2024-07-20

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除