
JAVA
文章平均质量分 74
又一根白发
这个作者很懒,什么都没留下…
展开
-
SpringBoot自动配置及自定义starter
1、创建一个SpringBoot项目2、编写StarterDemo.java} }3、编写StarterConfig配置类} }4、在resource目录下创建一个META-INF文件夹并新建spring.factories文件........5、在另外的SpringBoot项目引入my-starter,并创建配置属性原创 2022-08-21 16:56:40 · 694 阅读 · 1 评论 -
java多线程的简单应用
操作系统运行一个程序时,会为其创建一个进程,线程是系统工作调度的最小单位,一个进程运行时可能会有一个或者多个线程在工作。线程拥有各自的计数器、堆栈和局部变量等属性,且能够访问共享的内存变量。...原创 2022-08-14 23:58:51 · 871 阅读 · 0 评论 -
微服务集成Seata分布式事务
Seata是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。因为Seatas是SpringCloudAlibaba下面的一款开源分布式事务解决框架,所以按照SpringCloudAlibaba提供的毕业版本对应关系,减少不必要的问题。管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。表示开启全局事务,一旦有子事务失败,则全局事务回发起回滚,回滚所有子事务。维护全局和分支事务的状态,驱动全局事务提交或回滚。......原创 2022-07-15 14:40:28 · 1128 阅读 · 1 评论 -
分布式事务场景及解决方案
1、单体服务多数据源,数据分部在不同的数据库实例,同时操作不同的数据库连接进行数据操作,跨数据库实例产生分布式事务。2、多服务访问同一个数据库,不同服务各自持有数据库连接实例,跨JVM进程,产生分布式事务。3、微服务场景下,多个服务拥有各自的数据库实例,通过服务间远程调用,操作数据库完成业务场景,产生分布式事务。阶段一:阶段二:2PC的升级版,把2PC的第一阶段拆分成两个阶段。整个过程:1、CanCommit阶段协调者向参与者发送Cancommit请求,询问是否可以提交事务,并等待参与者反原创 2022-07-14 17:33:18 · 1888 阅读 · 0 评论 -
了解一下事务的概念
事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。要么全部执行,要么全部不执行。事务有4个特性,简称ACID。用注解的属性可以指定事务的传播机制。REQUIRED当前存在事务,则加入这个事务;当前不存事务,则新建一个事务;SUPPORTS当前存在事务,则加入这个事务;当前不存在事务,则以非事务的方式执行;MANDATORY当前存在事务,则加入这个事务;当前不存事务,则抛出异常;R原创 2022-07-04 12:45:16 · 1678 阅读 · 0 评论 -
快速了解ActiveMQ和RocketMQ
JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。消息中间件一般都遵循JMS规范,如图:消息队列(Message Queue)也叫做消息中间件。生产者发送消息到消息队列,消费者则从队列中获取消息进行消费,达到异步、解耦、削峰。生产者发送消息有两种类型queue和topic。下载地址:https://activemq.apache.org/compone原创 2022-06-06 14:21:58 · 1274 阅读 · 0 评论 -
队列基本了解
什么是队列队列(Queue),设计用于在处理之前保存元素的集合。除了基本的Collection操作之外,队列还提供了额外的插入、提取和检查操作。这些方法中的每一个都以两种形式存在:一种在操作失败时抛出异常,另一种返回特殊值( null或false ,具体取决于操作)。方法函数抛出异常返回false或null插入boolean add(e)boolean offer(e)消除E remove()E poll()检查E element()E peek()原创 2022-04-25 11:22:34 · 430 阅读 · 0 评论 -
常用List、Map及源码分析
ListArrayList本质是一个数组。/** * Default initial capacity. */private static final int DEFAULT_CAPACITY = 10;/** * Shared empty array instance used for empty instances. */private static final Object[] EMPTY_ELEMENTDATA = {};/** * Shared empty array原创 2022-04-25 11:20:03 · 179 阅读 · 0 评论 -
泛型的基本使用
泛型什么是泛型泛型的本质是类型参数化,解决不确定具体对象类型的问题。泛型可以定义在类、接口、方法中,编译器通过识别尖括号和尖括号内的字母来解析泛型。泛型符号T:代表type,表示某个类K:代表KeyV:代表ValueE:代表Element,用于集合中的元素K、V通常用于键值对元素。泛型类public interface List<E> extends Collection<E> { }public interface Map<K,V>原创 2022-04-25 11:18:46 · 135 阅读 · 0 评论 -
String类的基本使用
JDK1.5加入的新特性。java.lang包底下的类,被final所修饰,value也是被final修饰,本质是一个不可变的字符数组。public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char value[];}原创 2022-04-25 11:17:12 · 159 阅读 · 0 评论 -
java面向对象
封装类的属性和方法的具体实现对外隐藏,只通过对外暴露的方法进行属性的设置和修改,不能直接操作类的属性进行更改。public class User { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name;原创 2022-04-25 11:15:07 · 100 阅读 · 0 评论 -
java基本类型
八大基本数据类型名称占用字节Bytes位数bits默认值byte1字节80short2字节160int4字节320long8字节640float4字节320.0Fdouble8字节640.0boolean-1falsechar2字节16‘\u0000’ 空字符1个字节 = 8bits自动类型转换规则:由小字节向大字节自动转换byte->short(char)->i原创 2022-04-25 11:13:22 · 473 阅读 · 0 评论 -
Springboot + vue前后端分离后台管理系统(十四) -- 源码
前言基本的小功能是能用了,所以打算把源码分享出来,如果要自己写业务功能可以在这基础上添加功能。基本功能用户管理角色管理菜单管理开发者工具使用说明后端:将代码导入idea或eclipse 然后下载maven依赖包resource/doc文件夹下有数据库初始化文件sample-admin.sql启动mysql、redis运行SampleAdminApplication.java前端:安装好node.js环境将项目导入vscode执行npm install 命令下载依赖原创 2021-07-20 09:22:56 · 845 阅读 · 6 评论 -
Springboot + vue前后端分离后台管理系统(十三) -- 访问权限控制
前言角色菜单可以控制侧边栏的显示,再细一点的粒度就是权限了,可以控制页面或接口是否可以访问。实现配置ShiroConfig.java 开启权限注解切点扫描@Configurationpublic class ShiroConfig { /** * 注入ShiroRealm,自定义的realm 后面的认证和授权全在这里编写 * @return */ @Bean public ShiroRealm shiroRealm() {原创 2021-07-20 09:22:10 · 738 阅读 · 0 评论 -
Springboot + vue前后端分离后台管理系统(十二) -- 动态角色菜单
前言后台管理系统是基于RBAC设计的,也就是说不同的角色应该拥有不同的资源访问权限,这篇就来实现这个功能实现方式一vue-admin-template 只提供了基础的vue后台管理框架,权限管理模块没有引入。vue-element-admin 相对完整的组件demo和权限模块。它的动态路由配置如下:前端配置完整的路由菜单请求后端api返回 用户拥有的菜单在前端过滤渲染呈现用户的菜单方式二由后端统一配置菜单,直接返回给前端渲染优缺点方式一:对于前后端分离多人协作开发比较友好,前原创 2021-07-20 09:21:10 · 3632 阅读 · 2 评论 -
Springboot + vue前后端分离后台管理系统(十一) -- 代码生成器调整
前言之前在集成mybatis plus的时候有稍微写了下代码生成器的用法,现在这边稍微调整和优化一下,让后面生成基本的接口代码更加的方便,减少工作量啊,偷懒果然是爽啊。实现模板支持mybatis plus的代码生成器是需要模板引擎的,默认使用的是velocity模板,项目里也已经引用了。<!-- 模板引擎 --><dependency> <groupId>org.apache.velocity</groupId> <artifactId&原创 2021-07-20 09:20:18 · 985 阅读 · 0 评论 -
Springboot + vue前后端分离后台管理系统(十) -- 登陆实现(二)
前言上一篇主要实现前端表单请求加密处理,后端解密的实现,这篇文章将结合shiro来完善登陆认证的流程。流程浏览器请求接口判断是否是登陆请求是登陆请求执行登陆,否则进行身份认证登陆成功生成token存进redis身份认证通过放行请求, 刷新redis里的token缓存时间认证失败则跳转登陆页重新进行登陆实现后端ShiroConfig.java配置@Configurationpublic class ShiroConfig { /** * 注入ShiroRea原创 2021-07-20 09:19:14 · 688 阅读 · 0 评论 -
Springboot + vue前后端分离后台管理系统(九) -- 登陆实现(一)
前言作为前后端分离登陆,这一部分只要是前端vue的登陆,在原先vue-admin-template的封装的登陆上面做改动。步骤实现RSA加密登陆密码肯定是不能明文暴露浏览器上,登陆表单提交的时候必须进行加密,这边采用RSA对称加密,生成私钥和公钥,登陆的密码公钥加密,后端再用私钥进行解密,然后进行登陆校验。安装依赖npm install jsencrypt --save新建rsa.js编写一个加密的方法import { JSEncrypt } from 'jsencrypt'exp原创 2021-07-20 09:18:01 · 1409 阅读 · 0 评论 -
Springboot + vue前后端分离后台管理系统(八) -- 引入Shiro
引入pom.xml<!--shiro--><dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.7.0</version></dependency>配置新增ShiroConfig.java 具体配置项后面再配@Con原创 2021-07-20 09:16:58 · 912 阅读 · 0 评论 -
Springboot + vue前后端分离后台管理系统(七) -- 引入JWT
什么是JWTJson web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。相关文章很多。。。参考:https://www.jianshu.com/p/576原创 2021-06-10 17:15:11 · 544 阅读 · 0 评论 -
springboot + vue前后端分离后台管理系统(五) -- 后台权限表结构设计
什么是RBACRBAC 是基于角色的访问控制(Role-Based Access Control )在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。这样管理都是层级相互依赖的,权限赋予给角色,而把角色又赋予用户,这样的权限设计很清楚,管理起来很方便。参考:https://shuwoom.com/?p=3041这边管理系统只用最简单的RBAC0模型表设计sys_user表CREATE TABLE `sys_user` ( `i原创 2021-01-20 16:13:34 · 941 阅读 · 1 评论 -
springboot + vue前后端分离后台管理系统(四) -- 数据封装
前言前后端分离开发,经常用json数据格式进行交互,统一的响应数据格式,形成统一规范,可以大大方便前后端人员的开发。Response数据封装编码枚举类 ResultCode.javapublic enum ResResultCode { /** * 成功 */ SUCCESS(200, "ok"), /** * 请求错误 */ BAD_REQUEST(400, "请求参数错误"), /** * 未登录原创 2021-01-18 16:14:18 · 857 阅读 · 0 评论 -
springboot + vue前后端分离后台管理系统(三) -- 集成Knife4j
前言对于开发人员来说,在开发过程中得自测是不可避免得,像postman这种工具就对模拟http请求提供了便捷。还有就是接口文档也是令人头疼得事情,Swagger就很好得解决了这种事情。什么是Swagger?Simplify API development for users, teams, and enterprises with the Swagger open source and professional toolset. Find out how Swagger can help you d原创 2021-01-18 11:08:04 · 847 阅读 · 3 评论 -
springboot + vue前后端分离后台管理系统(二) -- 集成Mybatis Plus
前言很多人喜欢使用JPA的快捷开发,个人喜欢mybatis可以自己写sql。而mybaits plus可以很好的结合两者的有点,有基础的CRUD接口,还可以自定义mapper写sql,比较灵活。get it !准备工作既然要引入mybatis plus,那么久需要引入数据库相关依赖,还有一些工具包。这边还使用了lombok减少代码量,这个看情况引入,毕竟方便是方便,侵入性强一些,需要安装插件。然后开头先弄个mybatis plus代码生成器,毕竟自己手动建文件还是很累的。。。引入maven依赖完整原创 2021-01-15 13:48:27 · 1003 阅读 · 0 评论 -
springboot + vue前后端分离后台管理系统(一) -- 项目搭建
前言工作有两三年,从来只会crud,今天开始整理一下,从零开始搭建一个简单的前后端后台管理系统技术选型springboot 2.0+vue 2.0项目搭建1、springboot项目搭建开发工具ideajdk1.8maven初始化项目创建一个sample-admin项目,加入Spring web 依赖。去掉多余的.mvn相关文件,把默认application.properties配置文件改成application.yml后缀(看个人喜好!),整个项目结构如下:配置默原创 2021-01-15 13:46:37 · 2315 阅读 · 1 评论 -
Spring Security 基本使用
一、Spring Security是什么?Spring Security is a powerful and highly customizable authentication and access-control framework. It is the de-facto standard for securing Spring-based applications.Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架。它是用于保护基于Spring的应用程序的实际标准。原创 2021-01-07 15:16:11 · 2733 阅读 · 5 评论 -
Shiro基本使用
Shiro基本使用1、什么是ShiroShiro是Apache的java安全框架。Apache Shiro是一个功能强大、灵活的开源安全框架,可以清晰地处理身份验证、授权、企业会话管理和加密。官网地址:http://shiro.apache.org/2、基础功能以下是shiro的产品特性:Authentication:身份认证 / 登录,验证用户是不是拥有相应的身份Authorization:授权,验证已认证的用户有哪些角色和资源访问权限Session Management:会话管理原创 2020-12-30 16:16:34 · 1212 阅读 · 0 评论 -
IDEA创建springboot项目
IDEA创建springboot项目开发工具Intellij IDEA创建步骤File ->New -> Project…选择Spring InitializrProject SDK:选择要创建项目的依赖jdk版本点击Next点击NextDependencies:可以选择要引入pom.xml文件中的依赖。如web、mysql等Spring Boot版本:SNAPSHOT:快照版,表示开发版本,随时可能修改;M1:通常是M+数字,表示里程碑版本;Releas原创 2020-09-07 18:02:21 · 158 阅读 · 0 评论 -
eclipse创建springboot项目
eclipse创建springboot项目开发工具传统eclipse安装springboot插件就可以创建生成springboot项目sts(spring tools suite)集成springboot的eclipse开发工具步骤以STS3(spring tools suite 3)为例File->New->Springboot Starter Project点击Nextspringboot版本号说明SNAPSHOT:快照版,表示开发版本,随时可能修改;原创 2020-09-07 16:46:40 · 469 阅读 · 0 评论