自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

butcher的博客

一定要站在自己所热爱的世界里闪闪发光

  • 博客(50)
  • 收藏
  • 关注

原创 我的个人博客

我的个人博客butcher的个人博客

2021-02-20 11:30:17 1609

原创 hana studio 查看System时,提示secure storage is locked

https://community.sap.com/t5/technology-q-a/secure-storage-is-locked/qaq-p/9514183

2024-04-12 16:31:47 338

原创 【java】列表与树之间转换分析以及通用工具类封装

思路:(1)先获取到所有根节点,把所有除根结点外的节点作为子节点,然后遍历每一个根节点,进行递归构建此根的子节点。(2)递归时需要确定一个根节点,以及剩余子节点,如果子节点的父id等于根节点的id,那么就将这个节点加到根节点的children列表中,然后以当前节点作为根节点进行递归,检查是否还有子节点。(3)关键:如何构建节点,这个节点中应该至少包含三个属性 id、parentId、children

2022-01-18 12:26:29 761

原创 SPI机制及JDBC加载驱动再理解

1、什么是SPISPI全称为 Service Provider Interface ,直译为服务提供者接口,源自服务提供者框架(Service Provider Framework),是一种将服务接口与服务实现分离以达到解耦、提升了程序可扩展性的机制。在Java中一个非常典型实例是:JDBCsun公司为了实现Java连接各大数据库,编写了JDBC接口,由各家数据库编写实现。回忆一下数据连接六步:加载驱动获取连接获取SQL执行器执行SQL获取结果集关闭连接以MySQL为例,对应的

2021-11-22 22:43:49 1135

原创 vuedraggable实现组件拖拽,页面生成器?

使用H5的draggable="true"虽然可以实现拖拽,但如果是在vue中使用,我们需要去封装,虽然不难,但是有成熟的轮子为什么不用呢?在vue中实现拖拽可以使用vuedraggable实现。在vue2中的使用有一堆文章,但是在vue3中的使用还是比较少,这里使用vue3进行演示插件仓库地址:vuedraggable1、安装yarn add vuedraggable@next# 或者npm i -S vuedraggable@next2、使用import draggable fr.

2021-11-16 18:19:35 7430 2

原创 H5组件拖拽与放置

1、效果为了便于理解原理,这里举例在组件列表中拖拽一个按钮到容器中生成一个新按钮的案例,代码尽可能简洁,主要是说明清楚如何实现的拖拽,如下:2、原理使用H5自带的拖拽api实现组件拖拽生成,关键的点如下:1、被拖拽的目标组件(以下简称目标)上需要添加一个属性draggable="true"例如需要让一个按钮可以拖拽:<button id="btn" type="button" draggable="true">按钮</button>2、需要了解以下几个监听事件用于

2021-11-13 14:40:48 2967

原创 ant-design-vue+vite主题切换详细步骤(简单案例)

现在越来越多的网站支持主题切换,我们的也要!在这,我们要实现两个例子,主题切换与夜间模式!主题切换:夜间模式:1、准备工作,初始化一个简单的vite项目安装 ant-design-vue和lessyarn add ant-design-vue@nextyarn add less --save因为ant-design-vue是使用less开发的,所以既然用了它,咱最好还是用和它一致的less。在main.ts中全局引入antd组件与样式import { createApp }.

2021-11-09 22:29:41 5531 13

原创 vscode使用git终端

文件 > 首选项 > 设置打开settings.json,在其中加入以下设置{ "terminal.integrated.profiles.windows": { "gitBash": { "path": "C:\\Program Files\\Git\\bin\\bash.exe", } }, "terminal.integrated.defaultProfile.windows": "gitBash",}...

2021-10-30 22:12:18 3014

原创 spring cloud oauth2的使用

1、创建一个父项目依赖不选创建好后会只有有一个pom.xml文件如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

2021-10-30 15:33:05 1410 1

原创 搭建SpringClouldAlibaba微服务项目

1、需求当前的需求是有一个微服务架构的后端提供接口,模拟数据返回给前端,后端暂不需要实现业务逻辑。由此需求为:可创建微服务,有配置中心,有服务注册,有统一网关,支持服务间调用,可生成API文档。微服务我们选用当前较火的SpringClouldAlibaba。注册与配置中心使用nacos。负载均衡使用ribbon。网关使用SpringClould gateway。服务调用使用SpringClould openfegin。接口文档使用smart-doc+torna。往下看的前提是nacos已

2021-10-26 22:41:01 654

原创 Ant Design Vue中DatePicker日期选择框默认绑定dayjs对象数据格式问题

我的需求是选择日期后,提交的数据可以是我期望的格式。然而遇到的问题却是:代码:<template> <a-date-picker v-model:value="receive" /> {{ receive }}</template><script lang='ts'>import { defineComponent, reactive } from "vue";import dayjs from "dayjs";export def

2021-10-23 14:44:28 4706 2

原创 axios在vue3脚手架项目+ts中使用

1、安装依赖npm install --save axios2、配置一下axios在项目中的src目录下创建一个config目录,在其中创建一个http.ts的文件。import axios, {AxiosRequestConfig,AxiosResponse} from "axios";// 请求拦截axios.interceptors.request.use((config: AxiosRequestConfig) => { return config;})// 响应

2021-10-16 17:08:09 808

原创 Sawgger在Spring boot项目中如何使用

1、什么是Sawgger是一款部署在后端的接口文档工具,提供了在线同步的接口文档,解决前后端分离时代接口不能及时协商与解决的问题。官网:https://swagger.io/2、怎么在Spring boot项目中使用?创建一个基本的spring boot项目,勾选web即可。2.1 首先导入依赖这里选取的是2.9.2的版本,目前是使用最多的。<dependency> <groupId>io.springfox</groupId> <ar

2021-09-12 16:28:12 313 1

原创 SpringSecurity默认用户名密码从哪来,为什么要写UserDetails...

1、创建一个普通的Spring boot项目创建好项目后,直接启动,在控制台上会打印密码:此时在浏览器输入http://localhost:8080,会跳转到登录页面:默认用户名为user,密码就是控制台打印的。这就说明spring security生效了!2、自定义用户名密码首先我们需要先了解,为什么会有默认的用户名和密码,这说明肯定是有一个自动配置类。在idea中,双击shift键,输入UserDetailsServiceAutoConfiguration我们会发现:@Bean

2021-09-10 09:56:35 7661 4

原创 单例模式有这么多需要注意的

什么是单例模式?单例模式是23种设计模式中最简单的一种,是创建型模式,对象由自己的类负责创建,并保证一个类只有一个实例!单例模式提供了一个外部获取实例的方法。单例模式有两种实现模式,一个是饿汉式,一个是懒汉式。好处:全局只有一个实例,避免了频繁的创建类,减少了内存的开销与资源的消耗。坏处:没有接口,不能继承,违反了单一职责原则。实现思路:单例模式为了保证对象是自己创建的,所以需要把构造器私有,并且把声明的变量私有,对外提供一个获取实例的方法即可。1、饿汉模式顾名思义就是很饿,对象不管有没有用.

2021-09-03 21:33:42 772 2

原创 springboot中集成redis

在spring boot集成redis只需要导redis的启动器就可以了。<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>1、创建项目并测试1、创建一个springboot项目2、添加redis启动器3、如

2021-08-30 23:31:37 224

原创 redis数据类型

1、五大基本数据类型1.1 string - 字符串string是key value形式的,它是二进制安全的,也就是说可以包含任何数据,如图片等,最大能存512MB数据。通过./redis-cli --raw方式启动,可显示显示中文,不然是十六进制的字符。# 基本的set get127.0.0.1:6379> set butcher 谭熙OK127.0.0.1:6379> get butcher谭熙127.0.0.1:6379> # 获取0到2间字串127.0.0.

2021-08-29 00:03:25 282

原创 redis基本知识

1、配置后台运行在redis根目录下,打开redis配置文件vi redis.conf找到:daemonize将其修改为yesesc退出,:wq保存退出。测试:# 启动服务./redis-server ../redis.conf# 查看进程ps -ef|grep redis2、redis关闭服务我们需要打开redis-cli# 关闭服务shutdown# 退出exit3、压力测试# 100个客户端并发 10000个请求./redis-benchmark -c 10

2021-08-25 22:49:45 141 4

原创 创建自己的图标库,并在项目中使用

图标可以美化我们的页面,让用户更易识别我们功能的含义,很多前端框架都有自己的图标库,但是我们自己的项目如何使用图标库呢,这里推荐阿里巴巴官方的图标库:官网: https://www.iconfont.cn/进入需要登录,使用其中一种方式登录就可以了~1、收藏图标搜索找到你想要的图标:2、查看收藏的图标3、添加至项目注意如果你没有项目,就创建一个项目例如我这里的项目:我的添加后会自动跳转到你的项目,此时可以选择在线引用还是下载。注意:它这里对于图标的使用有三种方式Unicod.

2021-08-09 18:02:56 776

原创 JUC编程java多线程并发详细总结

1、什么是JUCJUC即Java.util.concurrent包,2、进程与线程一个进程可以包含多个线程,至少包含一个java默认有两个线程(main、 gc)对于Java而言,创建线程的方式:进程Thread、实现Runnable接口、实现Callback接口java并不能直接开启线程,它使调了底层c++的方法。并发:多个线程操作一个资源,一个CUP并行:多个线程同时执行,多个CPU3、线程的状态由源码 NEW :新建 RUNNABLE, 就绪 BLOCKED, 阻塞

2021-08-08 01:48:29 1026

原创 JVM运行原理及调优

1、什么是JVMJVM是Java Virtual Machine(Java虚拟机)的缩写,是一个虚构的计算机,这个计算机用来运行我们的Java程序。JVM运行在操作系统之上。2、JVM运行流程线程私有:jvm虚拟机栈,本地方法栈,程序计数器线程共享:堆和方法区编写好java源文件通过编译器编译为class文件经过类加载器初始化进入JVM运行数据区线程私有:jvm虚拟机栈,本地方法栈,程序计数器线程共享:堆和方法区2.1 java栈基础数据类型方法的形式参数,局部变量,方

2021-08-07 15:05:23 431 1

原创 node js 是服务器

前提是你已安装node.jsnode在安装的时候就内置了很多依赖,官方文档,当然node官方不可能做到尽善尽美,所以也有很多第三方的依赖,可以用,生态也很完善,几乎我们主流编程语言能干的事,都能用它做。1、http服务器首先编写一个http.js文件const http = require('http');// 引入nodejs内置http,相当于java的 import java.net.http;//创建一个http服务http.createServer(function(reque.

2021-07-29 11:47:53 149

原创 ECMAScript 6.0 let | const | module | promise | 箭头函数

1、不看系列ECMAScript 6.0(简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。这标准从一开始就是针对 JavaScript 语言制定的但是之所以不叫 JavaScript,有两个原因。Java 是 Sun 公司的商标,根据授权协议,只有 Netscape 公司可以合法地使用 JavaScript 这个名字,且 JavaScript 本身也已经

2021-07-26 17:50:49 109

原创 SQL多个查询结果拼接

今天有一个需求,我有三张表,一张学生表,一张教师表,一样辅导员。它们都有编号,都有密码,但是字段名不一样,我想一次查询出三张表里面这些编号和密码放在一个查询结果集里面!我们可以编写三个SQL语句,使用union关键字把查询结果拼接起来。比如我们单独查询是这样的:select st_id id,st_password passord from gb_student;select tea_id id,tea_password passord from gb_teacher;select te_

2021-07-23 22:50:44 20158

原创 spring boot 09 整合JDBC

如果不使用mybatis,spring boot其实也给我们写好了JDBC模板,我更愿意称之为工具类。即使不用mybatis我们的数据库操作也可以变得很简洁,往下看看。1、导入依赖整合jdbc我们只需要导入两个依赖即可:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId&g

2021-07-21 11:56:55 134 5

原创 springboot08 thymeleaf 语法 & 小案例巩固

1、不想看系列thymeleaf 是一种模板引擎,所谓引擎就是将动态的数据放入静态的html界面,然后渲染出一个新的html页面。其实jsp就是一种模板引擎,但是和thymeleaf不一样的是,前端写好的html,需要先转成jsp格式,然后再内嵌使用Java代码,用过的同志就知道,Java代码和html标签杂乱不堪,所以过时也是因为这个原因,那thymeleaf就不一样了么?确实不一样,它和vue有异曲同工之妙,将标签绑定,放入固定的数据,然后渲染出来,前端的html页面你甚至拿来即用,里面你看不到J

2021-07-18 19:02:14 139 3

原创 java简单计算器实现

1、环境jdk1.8JavaFX Scene Builder 2.0eclipse2、需求实现四则运算:加减乘除两数运算良好界面最终实现以下效果3、实现思路3.1 计算器类我们只需要实现两数的四则运算,根据Java面向对象的思维,计算器是一个对象,它里面可以存两个数,有四个方法加减乘除,那么我们可以得出以下:package sample;/** * 计算器类 * 包含第一个操作数(num1)、第二个操作数(num2)、运算符(operator)三个属性 * 以及对

2021-07-16 17:10:14 2005 7

原创 springboot 07自定义starter 必会

1、如何自定义starter官方指定的starter的命名格式是spring-boot-starter-xxx ,而我们自己自定义的命名建议是xxx-spring-boot-starter , 比如mybatis-spring-boot-starter自定义的starter和官方的starter都是在spring boot应用启动的时候去扫描classpath下面的META-INF下的spring.factories文件,查看里面的xxxAutoConfiguration,如果有就装配进spring的i

2021-07-16 12:43:28 238 1

原创 springboot 04 jsr303验证

1、介绍JSR-303是用来校验数据格式的,虽然说前端也可以校验,但是后端校验更安全。JSR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation,Hibernate Validator实现 Bean Validation。JSR是Java Specification Requests的缩写,意思是Java 规范提案。所以说要使用JSR,需要导入hibernate.validator对应的包<dependency> <groupId>o

2021-07-14 16:03:13 158 1

原创 springboot 02运行原理分析

1、pom.xml分析启动器<dependencies> <!--web启动器--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--测试启动器--&

2021-07-13 19:41:03 146 2

原创 springboot-01 入门

1、回顾SpringSpring是一个开源框架,2003 年兴起的一个轻量级的Java 开发框架,作者:Rod Johnson 。spring的理念:简化企业级应用开发的复杂性特点:非入侵、IOC、AOPspring boot核心:自动装配2、什么是spring bootSpringBoot,就是一个javaweb的开发框架约定大于配置的思想集成了大量的第三方框架,就像maven整合了所有jar包,springboot整合了所有框架优点:开箱即用,提供各种默认配置来简化

2021-07-13 17:57:25 108 1

原创 SSM三大框架整合,从建数据库起,超详细版

1、我的环境jdk8maven3.6.1mysql8.0tomcat9.0.482、创建一个数据库为testdb在testdb中创建一个students表并插入几条数据create table students( stuId int primary key, stuName varchar(10), stuMajor varchar(10));insert into students values(1800500926,'谭熙','信息管理与信息系统'),(18005009

2021-07-12 18:57:49 1344 12

原创 spring整合mybatis时使用c3p0数据源报错

我的配置是这样的:driver=com.mysql.cj.jdbc.Driverurl=jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=UTF8&userSSL=true&serverTimezone=GMTusername=rootpassword=root<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooled

2021-07-12 16:22:28 272

原创 springMVC执行流程

1、第一个hello程序导入依赖<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.8</version></dependency><dependency> <groupId>javax.s

2021-07-09 23:39:57 147 2

原创 spring-aop 三种实现切面的方式

1、概念AOP (Aspect Oriented Programming)意为∶面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。2、实现方式使用之前需要导入aspectj织入包 <dependency> &

2021-07-09 15:54:42 8356

原创 aop前-代理模式

1、静态代理1.1 搭建环境编写接口package cn.butcher.demo01;public interface UserService { void add(); void delete(); void query(); void update();}编写实现类:package cn.butcher.demo01;public class UserServiceImpl implements UserService { publi

2021-07-09 13:18:46 77 2

原创 ioc初步理解

1、理解1.1 以前写代码我们一般都是先写接口,再写实现类,需求改变了我我们再修改接口对应的实现类。如我们现在有以下:UserDao有两个实现类。public interface UserDao { void getUser();}public class UserDaoMysqlImpl implements UserDao{ public void getUser() { System.out.println("mysql的实现"); }}

2021-07-08 16:40:53 112 1

原创 使用nginx部署多个tomcat服务器

1、nginx下载安装官网下载:http://nginx.org/en/download.html使用wge下载wget -c https://nginx.org/download/nginx-1.10.1.tar.gz以上二选一。安装gccyum install gcc-c++安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境。安装PCRE pcre-develyum install -y pcre pcre-develNginx的Rewrite

2021-07-03 19:24:23 1435 1

原创 在update语句中使用子查询

根据MySQL的语法,where 后边不能使用IN错误的做法:UPDATE `day_progress` SET evaluate = 'a' WHERE id in ( SELECT id FROM `day_progress` WHERE id_w IN ( SELECT id FROM tasks WHERE p_id = 5 ) AND `day` = '2021-06-24' );报错:1093 - You can’t specify target table ‘day_prog

2021-06-25 12:53:28 4370

原创 原生js的事件委托

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>事件委托</title> </head><body> <ul i

2021-06-22 00:24:50 929 1

空空如也

空空如也

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

TA关注的人

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