自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (7)
  • 收藏
  • 关注

原创 Mybatis框架--1 Mybatis概念与基本使用

mybatis 框架一、什么是ORM?称为对象关系映射,O是对象,R是关系,M是映射。对象可以理解为java中的Bean(PO),关系指存放关系型数据库表中的数据库或结果数据。java程序与数据库程序是两个独立的进程,它们各种的任务不同,更大的问题在于Java面向对象的数据结构与关系表这种二维结构的数据差异很大,因为数据结构不同,设计的思维就不同,把两者结合在一起会给设计造成麻烦。如果能够在对象与关系表之间建立一个桥梁,在Java中我们只需要与对象打交道而不与关系型的数据打交道,会让程序设计变的

2021-06-29 20:51:51 139 2

原创 Spring AOP 框架支持的声明式事务管理

Spring AOP 框架支持的声明式事务管理1、建立数据库,作为学习的样例account表,表示用户的书卡,存储用户的余额。book表,记录书号及价格stock表,记录书本的库存量2、实现的功能基本功能:(1)售书,针对单一用户所选择的多本书分别扣减书本的库存量,用户书卡的余额。(2)售书过程中要考虑库存量不足以及卡余额不足的情况,保证事务的完整性,也就是不允许库存量出现负数,也不允许卡余额出现负数。(3)底层使用jdbctemplate来操作数据库。(4)遵循MVC架构要求来实现功能

2021-06-29 14:16:38 318

原创 IDEA 中查看maven项目中所有jar包的依赖关系图

打开 Maven 工程 的 窗口点击显示依赖的 按钮包之间的各种依赖关系,就显示出来了参考博客https://lixuekai.blog.csdn.net/article/details/69226949?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-3.base&depth_1-utm_source=distribute

2021-06-29 01:37:27 1116

原创 在项目中使用Spring提供的jdbc模板来操作数据库

四、在项目中使用Spring提供的jdbc模板来操作数据库      它是Spring框架提供的一个基础组件,它基于jdbc之上,对一些常用的数据库的操作进行了封装,提供了JdbcTemplate来调用这些功能。1、引入MySQL的驱动,连接池,spring-jdbc的依赖 <dependency> <groupId>com.alibaba</groupId>

2021-06-27 19:33:36 281

原创 Spring 利用`AspectJ`模板实现AOP的功能-jdk代理技术-Cglib代理技术

AOP一、什么是AOP称为 面向切面编程,这也是一种编程思想,它是建立在面向对象编程(OOP)的思想之上。面向对象编程采用的思路是自顶向下的思路,所有的类和接口都处于某种继承或实现的关系之上。二、AOP的实现原理1、理解代理设计模式(23中设计之一,结构型)(1)生活中的代理为了喝牛奶,难道要养牛吗? 买车票找12306,等等,例子非常多,都是为了方便,快捷的干事情。(2)项目中的例子,在实现功能时,经常会使用其它的类和接口,可是这些类可能不在身边,它在其它服务器上面,也就是要使用的类与当前

2021-06-27 01:11:59 212 1

原创 Spring 基于Java的配置 实现DI/IOC

这里写目录标题十五、基于Java的配置1、基于xml的配置出现于spring1.02、基于注解的方式出现于spring2.0.原因在于jdk1.5中出现了注解的新特性。3、基于Java的配置方式出现于spring3.0,此时spring新增了两个注解,分别是`@Configuration`,`@Bean`。4、5、什么是Java配置?6、总结:十五、基于Java的配置1、基于xml的配置出现于spring1.02、基于注解的方式出现于spring2.0.原因在于jdk1.5中出现了注解的新特性。3、

2021-06-26 11:07:26 132 1

原创 Spring基于注解实现DI的相关功能

十四、基于注解实现DI的相关功能1、实现DI的基本要素(1)目标Bean,当前需要使用的或正在工作的对象。(2)Bean需要使用的对象(属性)。(3)spring容器的配置文件。(4)在配置文件中的Bean配置,指定当前的Bean(被容器实例化并管理的对象),某个Bean所需要依赖的另外的Bean(被注入的对象)。(5)Bean的配置内容中的一些属性及子结点等。2、通过注解实现DI(1)依据以上的分析,实现DI可以分为两个主要部分,第一被注入的对象,第二需要注入的对象。(2)利用注解让s

2021-06-26 00:04:10 271 1

原创 Spring 自动装配Bean--Bean的作用域--Bean的生命周期--在容器中使用外部文件

十、自动装配Bean1、昨天学习的给Bean的属性值注入值,都是采用的是手动的方式,也就是明确地指定注入的值,如果值不存在就会出错。2、自动装配就是在定义一个Bean时,针对需要注入的属性不直接指定要使用的值或引用的对象,而是让容器按照spring制定的一些规则来完成。3、在Bean节点中提供了一个属性 autowire,该属性的取值有几个最重要的是两个分别是“byType”,但是“byName”,但是“byType”又是最常用的,也是默认的。4、byType表示按照类型来执行自动装配,此处的类型指

2021-06-25 17:03:59 134 1

原创 Spring IOC与DI的基本概念--手动装配Bean--spring如何创建容器并初始化的概述

七、spring的IOC <bean id="hello" class="com.wang.bean.Hello" scope="singleton" init-method="init" autowire="byType" destroy-method="destroy"> <property name="userName" value="spring"></property&gt

2021-06-25 13:01:07 196

原创 java 并发包的基石 原子变量和CAS

这里写目录标题16.1 原子变量和CAS16.1.1 AtomicInteger1.基本用法2.基本原理和思维3.实现锁16.1.2 ABA问题16.1.3 小结参考目录16.1 原子变量和CAS        什么是原子变量?为什么需要它们呢?我们从synchronized说起。 在15.2节,我们介绍过Counter类,使用synchronized关键字保证原子更 新操作,代码如下:  &nbsp

2021-06-25 00:11:42 170 1

原创 Spring 基本介绍 创建一个Spring 项目

spring 框架一、什么是软件框架1、它符合某种业界的规范和标准,springmvc框架,严格按照mvc设计模式以及JavaWeb的技术标准。2、框架也是软件,它在项目中的开发和运行、部署等环节都会起到作用。也可以理解为一个软件平台,使用框架也就是使用相当于平台的基础作用。所以,框架也可以按照层次分为基础功能(核心功能),可复用的组件,面向应用的功能。3、现在的软件开发有充分的理论依据,它散布在开发的各个层面和各个角落,因此只要开发软件就离不开框架。4、使用框架可以让软件的开发变得标准化,可以

2021-06-24 16:58:21 2910

原创 java 线程的中断

这里写目录标题15.4 线程的中断15.4.1 取消/关闭的场景15.4.2 取消/关闭的机制15.4.3 线程对中断的反应1.RUNNABLE2.WAITING/TIMED_WAITING3.BLOCKED4.NEW/TERMINATE15.4.4 如何正确地取消/关闭线程15.4.5 小结参考目录15.4 线程的中断       本节主要讨论一个问题,如何在Java中取消或关闭一个线程?我们 先介绍都有哪些场景需要取消/关闭线程,

2021-06-23 23:21:55 446 1

原创 java 线程的基本协作机制

这里写目录标题15.3 线程的基本协作机制15.3.1 协作的场景15.3.2 wait/notify15.3.3 生产者/消费者模式15.3.4 同时开始15.3.5 等待结束15.3.6 异步结果15.3.7 集合点15.3.8 小结参考目录15.3 线程的基本协作机制       多线程之间除了竞争访问同一个资源外,也经常需要相互协作,怎 么协作呢?本节就来介绍Java中多线程协作的基本机制wait/notify。 

2021-06-23 17:42:26 371

原创 java 理解synchronized

15.2 理解synchronized上一节,我们提到,共享内存有两个重要问题,一个是竞态条件, 另一个是内存可见性,解决这两个问题的一个方案是使用synchronized 关键字,本节就来讨论这个关键字。我们先来了解synchronized的用法 和基本原理,然后再从多个角度进一步理解,最后介绍使用 synchronized实现的同步容器及其注意事项。15.2.1 用法和基本原理synchronized可以用于修饰类的实例方法、静态方法和代码块,我们分别介绍。1.实例方法上节我们介绍了一个计数的

2021-06-23 11:32:28 392

原创 java 线程的基本概念

这里写目录标题15.1 线程的基本概念15.1.1 创建线程1.继承Thread2.实现Runnable接口15.1.2 线程的基本属性和方法1.id和name2.优先级3.状态4.是否daemon线程5.sleep方法6.yield方法7.join方法8.过时方法15.1.3 共享内存及可能存在的问题1.竞态条件2.内存可见性15.1.4 线程的优点及成本参考目录15.1 线程的基本概念       本节,我们介绍Java中线程的一

2021-06-22 20:05:13 261

原创 Java 静态/动态代理----AOP的实现

第23章 动态代理本章,我们来探讨Java中另外一个动态特性:动态代理。动态代理是一种强大的功能,它可以在运行时动态创建一个类,实现一个或多个接口,可以在不修改原有类的基础上动态为通过该类获取的对象添加方 法、修改行为,这么描述比较抽象,下文会具体介绍。这些特性使得它广泛应用于各种系统程序、框架和库中,比如Spring、Hibernate、 MyBatis、Guice等。动态代理是实现面向切面的编程AOP(Aspect Oriented Programming)的基础。切面的例子有日志、性能监控、权限检

2021-06-20 16:25:53 705

原创 Spring AOP的实现图解

   Spring AOP就是基于动态代理的,如果要代理的对象,实现了某个接口,那么Spring AOP会使用JDK Proxy,去创建代理对象,而对于没有实现接口的对象,就无法使用JDK Proxy去进行代理了(为啥?你写一个JDK Proxy的demo就知道了),这时候Spring AOP会使用Cglib,生成一个被代理对象的子类,来作为代理,放一张图出来就明白了:  好,上面讲的是AOP的第一种实现,运行时织入。  但是不是所有AOP的

2021-06-19 22:53:16 166

原创 VUE--vant 中调用本地图片

https://vant-contrib.gitee.io/vant/#/zh-CN/image#ru-he-yin-yong-ben-di-tu-pian

2021-06-18 19:31:10 1433 1

原创 VUE--VANT 自定义 Less 变量,可用于自定义样式 主题定制

本人vue 版本为 2的 vue首先,安装一个库包npm install less-loader@5.0.0 --save-dev这个 的安装,可能会造成版本的问题,我当初安装的时候,会因为这个版本高了报错Module build failed: TypeError: this.getOptions is not a function,最后,安装了这个5的版本,就好了。在 main.js 中// 引入全部样式import 'vant/lib/index.less'因为,vue的版本是2的

2021-06-14 16:22:37 2454

原创 SQL语句,多个 LEFT JOIN 语句的 写法

似乎是,left join 一次,就要马上 on 一次select c.*,u.housetype,b.image from comment c left join house u on c.houseId=u.houseId left join user b on c.userId=b.userId where c.touser='koma'

2021-06-12 22:25:17 2261

原创 VUE 在运行时,提示方法不存在,或者 根本就没有执行方法

本人脑子还是有坑的,遇到这个错,奥了半天 gethouse(){ this.axios.get("house/getInfo?houseid="+this.houseid).then((response)=>{ this.house=response.data; //获取数值,持有者 姓名,持有者 头像 this. this.isAttention(); }); 出错时: isAttention(); 方法的执行依赖于gethouse() 方

2021-06-10 19:51:58 1626 1

原创 认为的文字可编辑的 pdf和图片展示的 pdf 做笔记的方式

对于,文字可直接编辑的 pdf,在上面直接让文字 高亮 就可以做笔记了。对于,是图片展示的pdf,似乎只能,划线 做笔记了。假如,把图片pdf,来转化成 文字可编辑的 pdf的话,清晰度似乎是有点损伤的。...

2021-06-08 09:19:50 519

原创 JavaScript--DOM--JavaScript--DOM里常用的一些方法和属性

DOM的原子是元素节点 (element node)。文本节点 (text node)。属性结点用来对元素做出更具体的描述。<p title="a gentle reminder">Don't forget to buy this stuff.</p>在DOM中,title=“a gentle reminder” 是一个属性节点 (attribute node),继承 (inheritance)是CSS技术中的一项强大功能。类似于DOM,CSS 也把文档的内容视为一棵节

2021-06-08 00:05:20 519 5

原创 JavaScript--DOM--nodeType 属性

4.4.2 nodeType 属性根据gallery.html 文件的结构,body 元素应该只有3个子元素:一 个h1 元素、一个ul 元素和一个img 元素。可 是,countBodyChildren() 函数给出来的数字却远大于此,这是因为 文档树的节点类型并非只有元素节点一种。由childNodes 属性返回的数组包含所有类型的节点,而不仅仅是元素 节点。事实上,文档里几乎每一样东西都是一个节点,甚至连空格和换行符都会被解释为节点,而它们也全都包含在childNodes 属性所返回的数组当中。

2021-06-07 15:55:18 672 1

原创 JavaScript--DOM--通过DOM-style属性来设置样式,并由此获取样式

通过style 属性获取样式有很大的局限性。style 属性只能返回内嵌样式。换句话说,只有把CSS style 属性插入到标记里,才可以用DOM style 属性去查询那些信息:<p id="example" style="color: grey; font: 12px 'Arial',sans-serif;">这可不是使用样式的好办法——表现信息与结构混杂在一起了。更好的 办法是用一个外部样式表去设置样式:p#example { color: grey; font: 12p

2021-06-07 00:02:07 2116 1

原创 JavaScript--DOM--当你需要引用一个中间带减号的CSS属性时,DOM要求你用驼峰命名法

如果像下面这样去 访问名为font-family 的属性,就会收到一条出错信息:element.style.font-familyJavaScript将把减号前面的内容解释为“元素的style 属性的font 属 性”,把减号后面的内容解释为一个名为family 的变量,把整个表达式 解释为一个减法运算。这完全违背了我的本意!减号和加号之类的操作符是保留字符,不允许用在函数或变量的名字里。这同时意味着它们也不能用在方法或属性的名字里(别忘了,方法 和属性其实是关联在某个对象上的函数和变量)。当你需

2021-06-06 22:56:34 282

原创 JavaScript--DOM--对于动态创建标记,说的很漂亮的话。

DOM是文档的表示。DOM所包含的信息与文档里的信息一一对应。你 只要学会问正确的问题(使用正确的方法),就可以获取DOM节点树 上任何一个节点的细节。DOM是一条双向车道。不仅可以获取文档的内容,还可以更新文档的内容。如果你改变了DOM节点树,文档在浏览器里的呈现效果就会发 生变化。你已经见识过setAttribute 方法的神奇之处了。用这个方法 可以改变DOM节点树上的某个属性节点,相关文档在浏览器里的呈现 就会发生相应的变化。不过,setAttribute 方法并未改变文档的物理 内容,如果用文本

2021-06-06 16:57:50 182

原创 JavaScript--DOM--HTML 的 innerHTML 属性

7.1.2 innerHTML 属性现如今的浏览器几乎都支持属性innerHTML ,这个属性并不是W3C DOM标准的组成部分,但现已经包含到HTML5规范中。它始见于微软 公司的IE 4浏览器,并从那时起逐渐被其他的浏览器接受。innerHTML 属性可以用来读、写某给定元素里的HTML内容。要了解它 如何工作,请把下面这段代码插入test.html 文档的 部分:用DOM 的眼睛看testdiv 内的标记,是如图7-2所示的结构。div 元素的id 是testdiv 。它包含一个元素节点(

2021-06-06 16:50:07 485 1

原创 JavaScript--DOM--在使用键盘选中标签时,照样能够触发onclick事件

小心onkeypress我最后的决定是不添加onkeypress 事件处理函数。原因是这个事件处 理函数很容易出问题。用户每按下一个按键都会触发它。在某些浏览器 里,甚至包括Tab键!这意味着如果绑定在onkeypress 事件上的处理 函数上返回的是false ,那些只使用键盘访问的用户将永远无法离开当前链接。我的图片库网页就存在这样的问题——只要图片切换成功,showPic 函数就将返回false 。那这些只使用键盘的人可怎么办?幸运的是,onclick 事件处理函数比我们想象得更聪明。虽然它的名

2021-06-06 16:31:25 255

原创 JavaScript--DOM--nodeName 属性总是返回一个大写字母的值,即使元素在 HTML文档里是小写字母

比如说,检查placeholder 元素是否存在,但需要假设那是一张图 片。为了验证这种情况,可以用nodeName 属性来增加一项测试:if (placeholder.nodeName != "IMG") return false;请注意,nodeName 属性总是返回一个大写字母的值,即使元素在 HTML文档里是小写字母。参考目录绝大多数内容来自于:JavaScript DOM编程艺术 (第2版) 作者:作者:[英] Jeremy Keith [加] Jeffrey Sambel

2021-06-06 16:26:14 294

原创 JavaScript--DOM--共享onload 事件

6.3.2 共享onload 事件我必须执行prepareGallery 函数才能对onclick 事件进行绑定。如果马上执行这个函数,它将无法完成其工作。如果在HTML文档完成加载之前执行脚本,此时DOM是不完整的。具体到prepareGallery 函数,它的第3行代码将测试"imagegallery" 元素是否存在,如果 DOM不完整,这项测试的准确性就无从谈起,事态的发展就会偏离我 的计划。应该让这个函数在网页加载完毕之后立刻执行。网页加载完毕时会触发 一个onload 事件,这个事件与win

2021-06-06 16:20:38 400 2

原创 JavaScript--DOM--给相关标签添加点击事件触发匿名函数

for ( var i=0; i < links.length; i++) { links[i].onclick = function() { showPic(this); return false; }}这条语句定义了一个匿名函数。这是一种在代码执行时创建函数的 办法。具体到上面这条语句,它把links[i] 元素的onclick 事件 处理函数指定为这个匿名函数。这个匿名函数里的所有语句将 在links[i] 元素所对应的链接被点击时执行。参考目录绝大

2021-06-06 16:03:13 320

原创 JavaScript--DOM--压缩脚本

5.6.3 压缩脚本在写完了脚本,做了优化,而且也将它放到文档中的适当位置之后,还有一件事可以加快加载速度:压缩脚本文件。所谓压缩脚本,指的是把脚本文件中不必要的字节,如空格和注释,统统删除,从而达到“压缩”文件的目的。好在,有很多工具都可以替你来 做这件事。有的精简程序甚至会重写你的部分代码,使用更短的变量 名,从而减少整体文件大小。比如,假设你有如下代码:压缩之后的代码就会变成下面这样:精简后的代码虽然不容易看懂,却能大幅减少文件大小。多数情况下, 你应该有两个版本,一个是工作副本,可以修

2021-06-06 15:55:17 337

原创 JavaScript--DOM--关于HTML文档中,引用JavaScript的<script> 标签的 位置的建议

脚本在标记中的位置对页面的初次加载时间也有很大影响。传统上,我 们都把脚本放在文档的<head> 区域,这种放置方法有一个问题。位于 <head> 块中的脚本会导致浏览器无法并行加载其他文件(如图像或其 他脚本)。一般来说,根据HTTP规范,浏览器每次从同一个域名中最 多只能同时下载两个文件。而在下载脚本期间,浏览器不会下载其他任 何文件,即使是来自不同域名的文件也不会下载,所有其他资源都要等 脚本加载完毕后才能下载。按照本章前面讨论的渐进增强和分离JavaScript观点,把&l

2021-06-06 15:50:12 154

原创 JavaScript--DOM--当DOM树结构完整时,调用指定方法 -- window.onload

如果把这段代码存入外部JavaScript文件,它们将 无法正常运行。因为这段代码的第一行是:var links = document.getElementsByTagName("a");这条语句将在JavaScript文件被加载时立刻执行。如果JavaScript文件是 从HTML文档的<head> 部分用<script> 标签调用的,它将在HTML文 档之前加载到浏览器里。同样,如果<script> 标签位于文档底部 </body> 之前,就不能保证

2021-06-06 00:47:20 200

原创 JavaScript--DOM--渐进增强 的概念

所谓“渐进增强”就是用一些额外的信息层去包裹原始数据。按照“渐进 增强”原则创建出来的网页几乎(如果不是“全部”的话)都符合“平稳退 化”原则。

2021-06-05 10:46:51 137

原创 JavaScript--DOM-- “javascript:”伪协议

5.2.1 “javascript:”伪协议“真”协议用来在因特网上的计算机之间传输数据包,如HTTP协议 (http://)、FTP协议(ftp://)等,伪协议则是一种非标准化的协 议。“javascript:”伪协议让我们通过一个链接来调用JavaScript函数。下面是通过“javascript:”伪协议调用popUp() 函数的具体做法:<a href="javascript:popUp('http://www.example.com/');">Example</a>

2021-06-05 10:40:28 533

原创 JavaScript--DOM-- window对象的open()方法的使用

JavaScript使用window 对象的open() 方法来创建新的浏览器窗口。这 个方法有三个参数:window.open(url,name,features)这三个参数都是可选的。第一个参数是想在新窗口里打开的网页的URL地址。如果省略这个 参数,屏幕上将弹出一个空白的浏览器窗口。第二个参数是新窗口的名字。可以在代码里通过这个名字与新窗口 进行通信。最后一个参数是一个以逗号分隔的字符串,其内容是新窗口的各种 属性。这些属性包括新窗口的尺寸(宽度和高度)以及新窗口被启 用或禁用

2021-06-05 10:31:54 959

原创 JavaScript--DOM--平稳退化 的 概念

记住,网站的访问者完全有可能使用的是不支持JavaScript的浏览器,还 有一种可能是虽然浏览器支持JavaScript,但用户已经禁用它了(比如, 因为讨厌看到弹出广告)。如果没有考虑到这种情况,人们在访问你们 的网站时就有可能遇到各种各样的麻烦,并因此不再来访问你们的网 站。如果正确地使用了JavaScript脚本,就可以让访问者在他们的浏览器不支 持JavaScript的情况下仍能顺利地浏览你的网站。这就是所谓的平稳退化 (graceful degradation),就是说,虽然某些功能无法使用,

2021-06-05 10:25:12 121

原创 JavaScript--DOM-- firstChild 和lastChild 属性

4.4.6 firstChild 和lastChild 属性数组元素childNodes[0] 有个更直观易读的同义词。无论何时何地, 只要需要访问childNodes 数组的第一个元素,都可以把它写 成firstChild :node.firstChild这种写法与下面的写法完全等价:node.childNodes[0]这不仅更加简短,还更加具有可读性。DOM还提供了一个与之对应的lastChild 属性:node.lastChild这代表着childNodes 数组的最后一个元素。

2021-06-05 10:17:17 602

VSCodeUserSetup-x64-1.46.0.exe

VS Code(Visual Studio Code)

2021-04-13

mysql-installer-community-8.0.23.0.msi.7z

window MySQL数据库 安装器

2021-04-13

pandoc-2.13-windows-x86_64.msi

Typora 上传 功能的 直接 安装 程序

2021-03-31

pandoc-2.13-windows-x86_64.zip

Typora 的导入功能的,配套软件

2021-03-31

C:\Windows\System32 中 cmd丢失,cmd.exe 下载

C:\Windows\System32中cmd文件丢失,如果打开cmd,显示不存在,那么你的电脑里面的cmd.exe可执行文件丢失了,需要重新添加,打开我的电脑,搜索如下路径:C:\Windows\System32 ,将下载下来的cmd.exe文件添加到这个路径下的文件夹中即可。(免费下载)

2020-10-22

7Zip_20.00_32位.exe

32位7-zip解压软件(最好用的解压软件)可以支持非常多的压缩格式给予解压原网站比较难以进入和下载,所以在此分享此软件。

2020-03-26

空空如也

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

TA关注的人

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