- 博客(311)
- 收藏
- 关注
原创 jvm 多线程 公共变量 关键字 volatile (底层原理) 同步问题分析
1.jdk1.8 以前 是 总线加锁。性能很低。如果多个线程都用同一个变量,会锁定当前线程,直到变量从主内存修改后,再执行其它线程。2.mesi缓存。
2019-12-11 15:55:09 150
原创 编译springboot源码
下载https://github.com/spring-projects/spring-boot/tags?after=v2.3.3.RELEASEjdk1.8+ maven 3.5+java -versionmvn -version解压缩,然后cmd到springboot目录执行命令如下mvn clean install -DskipTests -Pfast
2022-04-24 11:23:31 522
原创 vue + jspdf
vue 页面 <el-button @click="testPdf">导出PDF文件</el-button> <div id="container" > <el-button type="danger">危险按钮</el-button> <span>{{ t1 }}</span> </div>js代码methods: { testPdf() { // this.dialogVis
2022-01-19 18:27:36 2664
转载 tomcat 启用https协议
记录:keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:\homes\tomcat.keystore -validity 36500命令解释:使用keytool为Tomcat生成证书,假定目标机器的域名是“localhost”,keystore文件想要存放在“D:\homes\tomcat.keystore”,口令为“123123”。参数简要说明:“D:\homes\tomcat.keystore”含义是将证书文件的保存路径,证书文
2021-11-06 15:03:55 906
转载 SpringBoot AOP @Pointcut 切入点表达式排除某些类
只做记录:@Pointcut("execution(* com.demo.service.*.*(..)) && !execution(* com.demo.service.dbservice.*(..)) ") @Pointcut("execution(public * com.demo.service.*.*(..))")public void serviceMethods() {}@Pointcut("execution(public * com.demo.service
2021-10-28 14:37:48 914
原创 Ant 表单中label-col和wrapper-col
:label-col='{span:5, offset:1}' :wrapper-col='{span:18}'意思如下:总共: 5+1+18 = 24 份。文字label部分占比 总共 6/24,宽度5,向右移动1.input部分占比 18/24.
2021-10-09 10:59:12 7258
原创 application.yaml 动态获取 pom.xml中的值
<build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> <plugins> <plugin>
2021-08-05 17:31:30 829
原创 SpringBoot mybatis_plus启动报错
最近在学习 springboot mybatisplus 遇到启动报错的问题。最主要的是:<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.1</version></dependency>引入 plus的包以后,其他的
2021-07-25 15:19:45 1749
原创 最近在复习springboot源码,发现问题只做记录
diea下载源码提示Sources not found for在控制台执行:mvn dependency:resolve -Dclassifier=sources
2021-07-07 10:53:44 74
原创 volatile 可见性
class Mydata { // volatile 关键字 可见性 volatile int number = 0; public void addTo60() { this.number = 60; }}/** * 1. 验证 volatile 可见性 * int number =0; number 变量之前根本没有添加 volatile关键字 */public class VolatileTest { public static
2021-04-27 13:44:02 85
原创 node 插件 nodemailer 发送邮件
node 使用插件 nodemailerconst nodemailer = require("nodemailer");// create reusable transporter object using the default SMTP transport// 创建发送邮件对象let transporter = nodemailer.createTransport({ host: "smtp.qq.com", // 发送方邮箱 node_modules\nodemailer\li
2021-04-23 10:11:20 249
原创 vue v-for form在element中如何校验
直接上例子:第一种:<template> <div> <div v-for="(item,index) in datas.realForm" :key="index"> <el-form ref="form" :model="datas" label-width="160px" :rules="rules"> <el-form-item label="名字" :rules="rules.name" :prop
2021-04-20 23:15:30 607
原创 APPLICATION FAILED TO START 错误
错误:APPLICATION FAILED TO STARTDescription:The Tomcat connector configured to listen on port 8085 failed to start. The port may already be in use or the connector may be misconfigured.直接解决方案:C:\Users\Administrator>netstat -anoTCP 0.0.0.0:8085
2021-04-08 14:13:02 2506
原创 redis 启动
1. redis-server.exe redis.windows.conf2. redis-cli.exe -h 127.0.0.1 -p 6379输入密码:3. auth 123456
2021-04-07 10:00:46 75
原创 webpack给css添加前缀自动适应浏览器
安装 postcss-loader autoprefixer 插件npm i -D postcss-loader autoprefixer配置 webpack.config.js{ test: /.styl(us)?$/, use: [ 'style-loader', 'css-loader', 'postcss-loader', // 加载一个 autofixer 的插件 'stylus-loader', // st
2021-02-19 15:04:41 416 1
原创 js ‘true‘==true ; 为什么返回false?
在转换不同的数据类型时,相等和不相等操作符遵循下列基本规则:如果有一个操作数是布尔值,则在比较相等性之前先将其转换为数值——false转换为0,而true转换为1;如果一个操作数是字符串,另一个操作数是数值,在比较相等性之前先将字符串转换为数值;如果一个操作数是对象,另一个操作数不是,则调用对象的valueOf()方法,用得到的基本类型值按照前面的规则进行比较;首先 ‘true’ == true 符合规则 1,这样就转化成了对 ‘true’ == 1 进行求值此时表达式符合规则 2如果一个
2021-02-09 14:57:24 1096
原创 js generator函数 yield
不带返回值的function *show() { alert('a'); // a let a = yield; alert('b'); // b alert(a); // 5}let fun1 = show();fun1.next(12); // 第一个next没法给yield传参fun1.next(5); // 5带返回值的function *show1() { alert('a'); yield; alert('b');
2021-02-07 15:42:55 95
原创 defineProperty,defineProperties,getOwnPropertyDescriptor,getOwnPropertyDescriptors
一个例子根据结果查看每个方法的作用。window.onload = function () { var obj = new Object(); Object.defineProperty(obj, 'name', { configurable: false, writable: true, enumerable: true, value: '张三' }) c
2021-02-06 22:57:43 169
原创 vue render函数
App.vue<!-- render 函数 --><Heading tag="ul"></Heading> // 向下传递ul 标签 与this.tag 对应<script>import Heading from './views/Heading.vue';export default { name: 'App', components: { Heading } ......}</scrip
2021-02-06 22:20:43 94
原创 vue.extend() 动态创建组件
toast.jsimport Toast from "./toast.vue";import Vue from 'vue';const ToastConstructor = Vue.extend(Toast);function showToast(text, duration=2000) { const toastDOM = new ToastConstructor({ el: document.createElement('div'), data() {
2021-02-02 20:06:45 665
原创 小白 githup上传文件步骤
直接上步骤:安装git。略过1.git bash 进入工程目录:git init2. 配置远程仓库:(注意:变成 /) git remote add origin https://github.com/mhbsoft/star_pro.git 出现问题直接删除: git remote rm origin 重新配置: git remote add origin ...
2021-01-27 11:47:40 83
原创 java,mysql 悲观锁,乐观锁
悲观锁: pessimistic lock,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁。这样别人想拿这个数据就会block直到它拿到锁。sysnchronized类似。 数据库悲观锁使用 for updateselect * from sys_role where sysId=#{sysId} for update**乐观锁:**optimistic lock, 每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在提交更新的时候会判断以下在此期间别人有没有去更新这个数据。
2021-01-27 10:37:37 162
原创 vue 中 数组劫持
vue中对象劫持:Object.defineProperty(obj, prop, descriptor)1 obj:必需。目标对象2 prop:必需。需定义或修改的属性的名字3 descriptor:必需。目标属性所拥有的特性这个介绍的比较多,就不展开了。vue中数组劫持:let state = [1, 2, 3]; // 变成响应式数据let originalArray = Array.prototype; // 数组原来的方法let arrayMethods = Object.
2021-01-26 19:29:53 790
原创 js 中 event loop
简单理解:正常代码执行顺序。带有异步调用,定时任务的代码执行顺序。(setTimeout)// 加入到 消息队列(Message Queue)中,最后执行。带有promise任务的代码执行顺序。 // promise 的 then 回调函数入队到 微任务队列(Microtask Queue)中。调用栈(call stack)消息队列(Message Queue) // 可存储 setTimeout 执行函数的内容微任务队列(Microtask Queue) // promise 的
2021-01-26 11:45:48 55 1
原创 js 闭包理解
闭包举例子:function fun1() { var a = 2; return function fun2() { // 此处为闭包 a++; console.log(a); }}var f = fun1();f(); // 3f(); // 4 再次执行,a没有被回收。
2021-01-26 11:18:47 63
原创 win10 查看 已经运行的端口与进程ID
win + r 进入 cmd输入: netstat -ano 显示所有端口与进程PID从任务管理器选择 详细信息 -> 寻找 PID 与 上面 进程PID 相同的进程,结束任务。
2021-01-18 20:22:22 690
原创 jdk8, lambda 使用
// lambda 表达式接口注解@FunctionalInterfaceinterface Foo { public int add(int x, int y); default int div(int x, int y) { System.out.println("hello, jdk8"); return x / y; }}public class LambdaDemo { public static void main(St
2021-01-11 11:32:44 71
原创 linux查看进程所在目录
[kafka@mhbtest proc]$ jps -l11754 sun.tools.jps.Jps5466 kafka.Kafka// ls -al 进程号[kafka@mhbtest proc]$ ls -al 5466total 0dr-xr-xr-x 7 kafka kafka 0 Dec 7 14:16 .dr-xr-xr-x 198 root root 0 May 3 2018 ..dr-xr-xr-x 2 kafka kafka 0 Jan 11 10:4
2021-01-11 11:18:06 898 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人