- 博客(42)
- 资源 (14)
- 收藏
- 关注
原创 vue-quill-editor的简单使用和解决样式问题
1.安装依赖npm install vue-quill-editor --savenpm install quill --save2.开发使用<template> <div class="edit_container"> <quill-editor v-model="content" ref="myQuillEditor" :options="editorOption
2021-07-05 23:24:53 2083 2
原创 vue父子组件“双向绑定”
1.需求vue的prop可以从父组件传递一个值到子组件,当子组件对传过来的值进行改变,父组件的值并不会改变,这显然不符合我的需求。我的需求是:当父组件的值改变,那么子组件的值也跟着改变;反过来,子组件改变值,父组件的值也跟着改变;可以理解为类似“双向绑定”2.首先,定义一个子组件<template> <div> <input type="text" v-model="label" /> </div></template>
2021-07-04 16:57:57 500 1
原创 Java中的volatile
Java中的volatileJava语言提供了一种稍弱的同步机制,即volatile变量,用来确保将变量的更新操作通知到其他线程。当把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的,因此不会将该变量上的操作与其他内存操作一起重排序。volatile变量不会被缓存在寄存器或者对其他处理器不可见的地方,因此在读取volatile类型的变量时总会返回最新写入的值。Java 内存模型JMM(Java Memory Model):Java 内存模型,是 Java 虚拟机规范中所
2021-06-21 16:51:23 237
原创 线程池的简单使用
线程池简介线程池(英语:thread pool):一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。可用线程数量应该取决于可用的并发处理器、处理器内核、内存、网络sockets等的数量。线程池的优势降低系统资源消耗,通过重用已存在的线程,降低线程创建和销毁造成的消耗;提高系统响应速度,当有任务到达时,通过复
2021-06-20 16:25:03 211
原创 ReadWriteLock简单使用
ReadWriteLock简单使用描述:ReadWriteLock是读写锁,维护一对关联的locks ,一个用于只读操作(也叫读锁或者共享锁——多个线程可以同时占有),一个用于写入操作(也叫写锁或者独占锁——一次只能被一个线程占有)。用法:读用读锁,写用写锁,读写分离。例如:自定义一个缓存类,在多线程情况下不使用锁进行写入操作,写入操作混乱。加入读写锁,写入操作正常。public class demo3 { public static void main( String[] args )
2021-06-19 23:39:22 269
原创 Semaphore简单使用
Semaphore简单使用描述:一个计数信号量。 在概念上,信号量维持一组许可证。 如果有必要,每个acquire()都会阻塞,直到许可证可用,然后才能使用它。 每个release()添加许可证,潜在地释放阻塞获取方。 但是,没有使用实际的许可证对象; Semaphore只保留可用数量的计数,并相应地执行。用法: 信号量通常用于限制线程数,而不是访问某些(物理或逻辑)资源。 例如:一个停车场有3个车位,有6辆车要停,只有先抢到的才能停;停满了,只有等其他车辆离开,才能继续抢车位。 publi
2021-06-19 16:57:53 132
原创 CyclicBarrier简单使用
CyclicBarrier简单使用描述: CyclicBarrier允许一组线程全部等待彼此达到共同屏障点的同步辅助。 循环阻塞在涉及固定大小的线程方的程序中很有用,这些线程必须偶尔等待彼此。 屏障被称为循环 ,因为它可以在等待的线程被释放之后重新使用。用法:5个人开会,只有5个人都到达会议室后,才能开会,然后发表讲话 public static void main(String[] args) throws InterruptedException { // 所有人到齐,开
2021-06-19 16:30:09 96
原创 CountDownLatch简单使用
CountDownLatch简单使用描述:CountDownLatch允许一个或多个线程等待直到在其他线程中执行的一组操作完成的同步辅助。用法: 多个人等一个信号后继续执行操作。例如一共需要6个人在车上才开车。 public static void main(String[] args) throws InterruptedException { // 减法计数器,总数是6 CountDownLatch countDownLatch = new CountDo
2021-06-19 15:33:14 139
原创 synchronized和Lock的使用
多并发案例一个车站有三个窗口同时卖30张票,每个窗口都有40个人在排队买票synchronized和Lock的区别synchronized是内置的Java关键字;Lock是一个接口synchronized无法判断获取锁的状态;Lock可以synchronized会自动释放锁;Lock必须收动释放锁,如果不释放,就会出现死锁synchronized多个线程获取同一个锁,其中一个线程已经获取锁,但发生阻塞,其他线程就会一直等待;Lock不一定等待下去synchronized是可重入锁,不可以中断
2021-06-18 14:17:41 287
原创 函数式接口和流式计算
1.函数式接口函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。函数式接口可以被隐式转换为 lambda 表达式。2.四大函数式接口函数型接口 /** * Function 函数型接口 一个输入参数,一个输出参数 * */ public static void funcition() { // Function f=new Function<Stri
2021-06-17 14:33:11 93
原创 【Mybatis-Plus学习笔记四】——Mybatis-Plus分页查询和条件查询
1.分页查询配置分页插件@Configurationpublic class MyBatisPlusConfig { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor(); //分页插件 mybatisPlus
2021-06-10 18:09:29 339
原创 【Mybatis-Plus学习笔记三】——Mybatis-Plus实现乐观锁
1.乐观锁乐观锁是在假设数据操作都是安全的,不会出现问题;如果出现了问题,直接返回错误。主要数据并发更新的问题,比如:丢失更新(多个线程同时对某条数据更新,无论执行顺序如何,都会丢失其他线程更新的数据)。2.MyBatis-plus实现乐观锁需要在表里增加一个version字段,来记录每次的更新给verison一个默认值如:0,可以用MyBatis-plus自动填充功能实现当查询数据时,获取当前version的值当更新数据时,带上获取的version当执行更新时,将提交数据的版本数据与数
2021-06-10 15:13:40 257 1
原创 【Mybatis-Plus学习笔记二】——Mybatis-Plus的进阶使用
1.主键生成策略MyBatis-Plus提供的生成策略有以下几种public enum IdType { /** * 数据库ID自增 * <p>该类型请确保数据库设置了 ID自增 否则无效</p> */ AUTO(0), /** * 该类型为未设置主键类型(注解里等于跟随全局,全局里约等于 INPUT) */ NONE(1), /** * 用户输入ID * <p
2021-06-09 18:42:59 158
原创 【Mybatis-Plus学习笔记一】——Mybatis-Plus快速使用
1.什么是Mybatis-Plus?MyBatis-Plus (简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。2.Mybatis-Plus特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器
2021-06-08 22:03:54 125
转载 【MyBatis学习笔记九】——MyBatis原理
一、Mybatis工作原理图mybatis 原理图如下所示:二、工作原理解析mybatis应用程序通过SqlSessionFactoryBuilder从mybatis-config.xml配置文件(也可以用Java文件配置的方式,需要添加@Configuration)来构建SqlSessionFactory(SqlSessionFactory是线程安全的);然后,SqlSessionFactory的实例直接开启一个SqlSession,再通过SqlSession实例获得Mapper对象并运行Map
2021-06-05 23:18:14 223
原创 【MyBatis学习笔记八】——MyBatis缓存
1.Mybatis一级缓存一级缓存: 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该Session中的所有 Cache 就将清空。一级缓存的生命周期有多长?(1).MyBatis在开启一个数据库会话时,会 创建一个新的SqlSession对象,SqlSession对象中会有一个新的Executor对象,Executor对象中持有一个新的PerpetualCache对象;当会话结束时,SqlS
2021-06-05 17:48:33 93
原创 【MyBatis学习笔记七】——MyBatis动态SQL常用标签
1.if 标签if 标签,符合标签即执行,用于动态查询语句,类型Java 中的 if 语句<select id="getAllByIf" resultType="com.demo.entity.User" parameterType="map"> select * from mybatis.user <!--where 元素只会在子元素返回任何内容的情况下才插入 “WHERE” 子句。而且,若子句的开头为 “AND” 或 “OR”,where 元素也会将它们去除。-
2021-06-04 22:53:33 165
原创 【MyBatis学习笔记六】——MyBatis一对一,一对多,多对一,多对多
1.MybBatis一对一一对一,一个学生对应一个老师就是一对一创建老师表和学生表#老师表CREATE TABLE `teacher` ( `id` int(10) NOT NULL, `name` varchar(30) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;#学生表CREATE TABLE `student` ( `id` int(10) NOT NULL, `n
2021-06-04 00:02:36 178
原创 【MyBatis学习笔记五】——MyBatis注解的简单使用
1.简单注解介绍@Insert : 插入sql , 和xml insert sql语法完全一样@Select : 查询sql, 和xml select sql语法完全一样@Update : 更新sql, 和xml update sql语法完全一样@Delete : 删除sql, 和xml delete sql语法完全一样2.使用注解实现crud @Select("select * from mybatis.user") List<User> getAll();
2021-05-30 23:08:41 113
原创 【MyBatis学习笔记四】——MyBatis分页
1.PageHelper分页导入分页插件依赖<!-- pagehelper 分页插件--><dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.2.0</version></dependency><!-- htt
2021-05-30 16:11:24 167
原创 【MyBatis学习笔记三】——MyBatis使用Log4j
1.Log4j的简介Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等。我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。Loggers(记录器):日志类别和级别;Appenders (输出源):日志要输出的地方;La
2021-05-29 17:49:28 593
原创 【MyBatis学习笔记二】——MyBatis配置说明
1.创建db.properties文件,提取出数据库信息这里借用上篇文章的代码为例在resources目录下创建db.properties文件,提取出数据库信息如下:driver=com.mysql.cj.jdbc.Driverurl=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8username=rootpassword=这里的“&
2021-05-28 23:26:42 107
原创 【MyBatis学习笔记一】——MyBatis入门
1.什么是 MyBatis?MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了[google code](https://baike.baidu.com/item/google code/2346604),并且改名为MyBatis 。MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。M
2021-05-28 18:28:17 117
原创 .net5创建WebApi项目入门教程
前言.net5已经出来好久了,我刚好要做一个.net5的项目,于是打算写一个关于.net5的入门系列教程,主要是记录自己用.net5开发一个系统过程的,希望自己能坚持住,把这一系列教程完成。1.开发环境准备要使用.net5进行开发,要下载.net5的sdk和vs2019(版本为:v16.8.4).net5下载地址:https://dotnet.microsoft.com/download/dotnet/5.0vs2019下载地址:https://visualstudio.microsoft.com
2021-01-25 21:13:16 5528
原创 vue项目打包后部署到nginx
之前写的文章《vue接通后端api以及部署到服务器》发现有人问到vue项目打包后dist文件夹怎么部署?所以,就有了这篇文章,也是对之前写的文章做一个补充吧!1.要下载nginx,然后解压。这里已windows版本为例,.zip后缀的才是windows版本。下载地址解压后,运行cmd,去到nginx根目录,执行启动命令nginx在windows系统下有三个常用的命令启动命令 start nginx强制停止命令 nginx.exe -s stop重启命令 nginx.exe -s reloa
2020-12-11 17:32:07 2051
原创 iframe嵌套网站,不让网站使用localstorage等存数据
今天,接到个需求,要求用iframe嵌套网站,不让网站使用localstorage等存数据。百度了半天还是没有找到方法,只能去研究一下iframe,看看它有什么属性之类的可以解决。果然,经过我又百度半天,了解到了iframe有个sandbox的属性可以进行配置,最终配置如下:<iframe sandbox="allow-scripts" src="baidu.com"></iframe>这个配置sandbox=“allow-scripts” 是允许运行嵌套网站的js脚本。这
2020-11-11 17:02:35 2705
原创 js 实现将“{1}元~{2}元,{3}%”与“[輸入框]元~[輸入框]元,[輸入框]%”互转
有时候需要一些占位符如:{1},{2}等来实现具体业务需求,但又不能把占位符直接显示给客户看,因为客户可能看不懂,所以,这就需要对占位符进行转换。客户看懂了,但存数据库格式还得对上,所以需要进行反转。 format (str, colNum) { const aa = '[輸入框]' for (let i = 1; i <= colNum; i++) { str = str.replace(new RegExp('\\{' + i + '\\}', 'g'
2020-06-26 23:09:27 130
原创 用flex布局实现简单好看表格边框样式
表格的默认样式不好看,设置border="1"的时候,还会出现双边框,就像下面一样,直接上代码,看效果对比,而且用flex,可以轻易实现文字垂直居中。1.修改前<table border="1"> <tr> <td>班级</td> <td>姓名</td> <td>成绩...
2020-03-27 00:00:00 3224
原创 vue根据路由来显示高亮选项
在做导航栏的时候,总会有这样的需求,点哪一项哪一项就高亮显示,最近发现vue的一个ui库vant,已经有这样的效果了,就不用自己写css了。<van-tabbar v-model="active"> <van-tabbar-item name="home" icon="home-o">标签</van-tabbar-item> <van-tabba...
2020-01-17 20:09:22 1520
原创 使用XLSX.utils.sheet_to_json()解析excel,给空的单元格赋值为空字符串
前言今天用到XLSX来解析excel文件,调用XLSX.utils.sheet_to_json(worksheet),发现如果单元格为空的话,解析出来的结果,就会缺少相应的key(如图所示)。但是我想要单元格为空的话,值就默认给空字符串,怎么办呢?只能去看看源码了,看有没有给默认值的方法。源码探究找源码里的sheet_to_json()方法,发现有三个同名的方法,有两个参数,第一个work...
2019-12-29 16:54:59 27431 8
原创 springboot整合mybatis-plus和swagger2,实现简单的增删改查和mybatis-plus的代码生成器的使用教程
这里写自定义目录标题前言使用的工具和技术栈新建一个springboot工程创建数据库代码生成器的配置生成各层文件Swagger2的配置类controller启动项目总结demo下载地址前言今天,看到mybatis-plus有代码生成器的功能,可以生成controller,server,entity等各层增删改查的代码,于是实践一下,发现真的好用!用代码生成器可以极大提高写代码的效率,简直是一个...
2019-12-18 22:14:19 1363 2
原创 apache反向代理总结
今天接到个任务,要求把一个php项目(部署在apache上)和java项目(部署在tomcat上)放在同一台服务器上,实现ip和域名访问。ip访问ip访问就简单多了,只要把项目成功启动,ip加上端口号就可以访问了,如果外网访问不了,就要考虑是不是以下的原因了:1.服务器的防火墙把端口号给拦住了,可以选择关掉服务器的防火墙或者配置防火墙的入站规则,开放项目的端口号,允许项目的端口号通过防火墙。...
2019-11-14 15:23:48 456 1
原创 springboot+springsecurity+vue整合项目,解决跨域问题和token失效或为空获取不到返回的状态码问题
1.在springboot中解决跨域的问题,用两种方法,一种是在类名或方法名前加上注解@CrossOrigin即可,但是在每个方法前都加上注解都很麻烦,因为是前后端分离,几乎所有的方法的都需要跨域访问,这是时候就要用到另一种方法了,添加一个配置类即可/** * 允许跨域访问 * 跨域访问类配置 */@Configurationpublic class CorsConfig { ...
2019-10-24 16:15:19 1628
原创 springboot设置虚拟目录,通过url访问上传的图片
关于这个springboot虚拟目录的设置,网上虽然也有很多的相关的博客教程,但是自己还是写博客记录下来吧!1.首先在application.yml文件设置上传路径和静态资源访问路经#application.yml格式uploadFile: path: C:\upload\ #(注意了后面一定加“\”) staticAccessPath: /upload/**#applica...
2019-09-15 18:10:01 2343
原创 vue项目引入cdn资源及配置
1.首先在index.html加入cdn资源 <script src="//cdn.bootcss.com/vue/2.3.2/vue.min.js"></script> <script src="//cdn.bootcss.com/vue-router/2.5.3/vue-router.min.js"></script> &l...
2019-08-11 17:36:11 14882
原创 idea配置tomcat,tomcat能启动,访问项目404
1.先检查tomcat是否安装正确,能否正常启动2.检查idea,部署项目的访问路径,注意下图红框中必须是“/”
2019-07-30 09:26:32 1720
原创 apache代理phpWeb项目,tomcat,iis,共用80端口
1.首先下载安装xampp,官网地址https://www.apachefriends.org/index.html,这里是以Windows版本为例1.把apache的端口改为80端口,在xampp的根目录下apache目录的conf下,打开httpd.conf,找到Listen 80,进行修改,80表示端口号。2.在httpd.conf文件,找到以下模块,把它们的#号去掉。#Loa...
2019-06-16 18:48:36 591
原创 vue i18n实现语言切换
1.使用vue-i18n实现语言切换,需要安装vue-i18n,使用cookie记录用户选择的语言,需要安装cookienpm install vue-i18nnpm install js-cookie2.新建lang文件,然后在该文件夹新建lang.js,封装setLang()和getLang()方法,用来把用户选择的语言存取到cookieexport default {...
2019-05-30 20:53:54 795
原创 vue接通后端api以及部署到服务器
1.打开项目工程,找到config文件夹下index.js,进行以下修改dev: { // Paths assetsSubDirectory: 'static', assetsPublicPath: '/', proxyTable: { '/api':{ target: 'http://www.baidu.com',//后端api地...
2019-05-29 13:56:33 3346 3
【Mybatis-Plus学习笔记三】——Mybatis-Plus实现乐观锁.zip
2021-06-10
【Mybatis-Plus学习笔记二】——Mybatis-Plus进阶使用.zip
2021-06-09
【Mybatis-Plus学习笔记一】——Mybatis-Plus快速使用.zip
2021-06-08
【MyBatis学习笔记八】——MyBatis缓存.zip
2021-06-05
【MyBatis学习笔记六】——MyBatis一对一,一对多,多对一,多对多.zip
2021-06-03
【MyBatis学习笔记五】——MyBatis注解的简单使用.zip
2021-05-30
【MyBatis学习笔记四】——MyBatis分页.zip
2021-05-30
【MyBatis学习笔记三】——MyBatis使用Log4j.zip
2021-05-29
【MyBatis学习笔记二】——MyBatis配置说明.zip
2021-05-28
【MyBatis学习笔记一】——MyBatis入门demo.zip
2021-05-28
springboot-mybatis-plus.zip
2019-12-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人