- 博客(27)
- 资源 (1)
- 收藏
- 关注
原创 通过mybatis-config.xml获取SqlSession
使用mybatis-config.xml文件构建SqlSessionFactory对象,从而获取SqlSession实例。由于SqlSessionFactory应该采用单例模式 ,所以这里使用单例模式去构建它。public class MybatisUtils { private final static Class<MybatisUtils> LOCK = MybatisUtils.class; //创建一个全局静态变量数据库工厂 private static S
2021-09-02 23:08:54
275
原创 Linux命令之文件目录管理
文件目录管理命令对于文件的操作有:创建、修改、复制、剪切、更名与删除等。touch:用于创建空白文件或设置文件的时间,格式为:touch [选项] [文件]touch filename:创建一个文本类型的文件。对 touch 命令来讲,有难度的操作主要是体现在设置文件内容的修改时间(mtime)、文件权限或属性的更改时间(ctime)与文件的读取时间(atime)上面。touch命令的参数和其作用:参数作用-a仅修改“读取时间”(atime)-m仅修改“修改
2021-08-19 23:52:37
213
1
原创 Linux之用户身份与文件权限
用户身份与文件权限1、Linux是一个多用户、多任务的操作心态,具有很好的稳定性与安全性。2、在Linux系统中,UID表示用户身份号码,具有唯一性。在 RHEL 7 系统中,用户身份有下面这些:① 管理员 UID 为 0:系统的管理员用户root。② 系统用户 UID 为 1~999: Linux 系统为了避免因某个服务程序出现漏洞而被黑客提权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏范围。③ 普通用户 UID 从 1000 开始:是由管理员创建的用于日常工作的用
2021-07-25 23:43:45
427
3
原创 Linux中的定时任务
计划认为分为一次性计划任务与长期性计划任务:一次性计划任务:用于满足临时的工作需求。at 时间:设置执行计划时间;交互式执行at -l:查看已经设置好但未执行的计划;atrm 任务序号:删除计划。长期性计划任务:周期性、有规律地执行某些具体的任务。crontab -e:创建、编辑计划任务。crontab -l:查看当前计划任务。crontab -r:删除某条计划任务。crontab -u:以管理员身份登录系统,使用该命令来编辑他人的计划任务。长期计划任务参数格式:* *
2021-07-25 18:34:36
103
原创 Swagger的使用
swagger接口文档1 前言Restful API文档在线自动生成工具,API文档与API定义同步更新。需要Jar包:springfox-swagger2springfox-swagger-ui<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --><dependency> <groupId>io.springfox</groupId>
2021-07-25 18:01:13
90
原创 Git版本控制工具的使用
文章目录1. 前言1.1 版本控制1.2 Git历史1.3 Git基础要点1.3.1 直接快照1.3.2 本地执行1.3.3 数据完整1.4 Git基本理论(核心)1.5 安装及配置1.5.1 安装1.5.2 配置1.6 Linux常用命令2. Git基础2.1 获取项目的Git仓库2.2 文件操作3. Git分支3.1 分支的概念3.2 Git分支中常用的命令3.3 基本的分支与合并3.3.1 基本分支3.3.2 基本合并3.3.3 冲突的合并3.4 分支管理4. 服务器上的Git1. 前言1.1
2021-07-13 20:43:55
583
原创 Vim编辑器
Vim编辑器的三种模式:命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。输入模式:正常的文本录入。末行模式:保存或退出文档,以及设置编辑环境。在每次运行 Vim 编辑器时,默认进入命令模式,此时需要先切换到输入模式后再进行文档编写工作,而每次在编写完文档后需要先返回命令模式,然后再进入末行模式,执行文档的保存或退出操作。在 Vim 中,无法直接从输入模式切换到末行模式。Vim中常用的命令命令作用dd删除(剪切)光标所在整行5dd删除(.
2021-07-11 14:27:17
151
1
原创 Linux命令之文本文件编辑
文本文件编辑命令cat:用于查看内容比较少的纯文本文件,格式为:cat [选项] [文件]-n 表示加上行号more:用于查看内容较多的纯文本文件,格式为:more [选项] [文件]head:用于查看纯文本文件的前N行,格式为:head [选项] [文件]head -n 20 index.html # 查看index.html的前20行,并且显示行号tail:用于查看纯文本文档的后N行或持续刷新内容,格式为:tail [选项] [文件]-f 用于表示持续刷新内容 ta
2021-06-23 22:24:48
921
原创 Linux命令之工作目录切换
工作目录切换命令工作目录指的是用户当前在系统中所处的位置pwd:用于显示当前所处的工作目录,格式为:pwd [选项]。cd:用于切换工作路径,格式为:cd [目录名称]。./ 当前目录。cd … 返回上一级目录。cd ~ 切换到当前用户的家目录。cd ~username 切换到其他用户的家目录ls:用于显示目录中的文件信息,格式为:ls [选项] [文件]。-a 查看包括隐藏文件的所有文件;-l 查看文件的属性、大小等详细信息。-al 上述两个的并。-d 查看目
2021-06-23 22:23:04
1265
2
原创 Java函数式接口
文章目录函数式接口四大函数式接口函数式接口只有一个方法的接口// 例如Runnable接口 //注解的含义:函数式接口@FunctionalInterface public interface Runnable { public abstract void run();}四大函数式接口1、Function:函数型接口public interface Function<T, R> { R apply(T t); // 传入参数T,返回参数R2、Predi
2021-03-17 15:11:00
70
原创 Java线程池
文章目录线程池1. 线程池的主要处理流程2. 创建线程的方法3. 线程池主要解决两个问题4. 三大方法5. 七大参数6. 四种拒绝策略7. 向线程池提交任务8. 线程池都有哪些状态?9. 关闭线程池线程池1. 线程池的主要处理流程提交一个新任务到线程池时,首先判断核心线程数是否都在执行任务:如果不是,那么需要创建一个线程来执行新提交的任务;如果所有的核心线程都在执行任务,那么 进入下一步。判断线程池中的工作队列是否已满。如果工作队列还没有满,那么新提交的任务就进入工作线程进行等待;如果
2021-03-17 12:33:57
145
4
原创 JUC包中的原子操作类
文章目录原子类操作1. 原子更新基本数据类型2. 原子更新数组3. 原子更新引用类型4. 原子更新字段类原子类操作JUC中的原子性操作类,都是使用非阻塞算法CAS实现的,相比使用锁实现原子操作在性能上有了较大的提升。Atomic原子类的底层源码://调用unsafe方法,原子性设置value值为原始值 +1,返回递增后的值public final long incrementAndGet() { return unsafe.getAndAddLong(this, valueOffset,
2021-03-17 01:11:59
401
原创 并发工具类
文章目录并发工具类1. CountDownLatch原理2. 同步屏障CyclicBarrier3. 信号量Semaphore4. 交换数据Exchanger并发工具类1. CountDownLatch原理背景: 在日常开发中会遇到这样的场景:需要在主线程中开启多个线程去执行任务,并且主线程需要等待所有子线程执行完后再进行汇总的场景。在CountDownLatch出现之前都是使用线程的join()方法来实现的,但是join()方法不够灵活,不能满足不同场景的需求,所以JDK提供了CountD
2021-03-16 20:51:22
90
1
原创 集合并发不安全问题
文章目录解决集合并发不安全问题1. List并发不安全2. Set并发不安全3. Map并发不安全解决集合并发不安全问题1. List并发不安全1、在并发环境下往list集合中添加或修改数据会出现ConcurrentModificationException异常(并发修改异常)方法一:使用vector集合List<String> list = new Vector<>();方法二:使用collections工具类List<E> list = Col
2021-03-16 20:47:26
118
2
原创 线程基础
文章目录1 进程与线程1.1 概念1.2 区别1.3 线程状态及转换1.4 常用的线程方法:1.5 什么是线程安全1.6 Java线程调度1.6.1 协同式调度1.6.2抢占式调度1.7 线程中断2 线程间通信2.1 等待—通知机制2.2 等待—通知范式2.3 管道输入 / 输出流2.4 ThreadLocal线程本地变量1 进程与线程1.1 概念进程:一个在内存中运行的应用程序。它是系统资源分配的基本单位(包括内存地址空间),因此各个进程拥有的内存地址空间相互独立。线程:进程中的一个执行任务(控
2021-03-13 00:18:53
500
3
原创 对Volatile的理解
文章目录对Volatile的理解 !!1. JMM:Java内存模型1.1 关于JMM的同步约定1.2 JMM中有八种操作(约定)1.3 JMM对上述八个指令的使用,规定了如下规则2.Volatile是jvm提供的最轻量级的同步机制2.1 保证可见性2.2 不保证原子性2.3 禁止指令重排对Volatile的理解 !!1. JMM:Java内存模型1.1 关于JMM的同步约定线程解锁前,必须把共享内存变量 立刻刷回主存。线程获取主存的变量并不是直接获取,而是拷贝一份放在自己的工作内存(每个线程拥有
2021-03-05 10:49:33
318
1
原创 Filter过滤器
文章目录1、介绍1.1 什么是Filter1.2 工作流程1.3 使用步骤1.4 生命周期1.5 拦截路径2、Filter过滤器中的类2.1 FilterConfig 类2.2 FilterChain 过滤器链1、介绍1.1 什么是FilterFilter是JavaWeb的三大组件(Servlet、Listener、Filter)之一;它是JavaEE的规范;作用是:拦截请求,过滤响应。常见的应用场景有:权限检查日志操作事务管理1.2 工作流程网页上某些页面或数据需要用户登录之后才能
2021-03-04 09:51:00
191
1
原创 Java实现邮件发送
文章目录1、电子邮件概述1.1 概述1.2 MIME2、主要构件3、代码实现3.1 简单邮件实现3.2 发送一封HTML邮件3.3 发送一封带有附件的邮件1、电子邮件概述1.1 概述电子邮件是互联网上使用最多和最受欢迎的一种应用。电子邮件把邮件发送到收件人使用的邮件服务器,并放在其中的收件人邮箱中,收件人可以在自己方便时上网到自己使用的邮件服务器进行读取。发送邮件:SMTP(Simple Mail Tranfer Protocol:简单邮件传送协议)协议接收协议:POP3协议(邮局协议Post
2021-03-01 13:29:10
404
原创 Spring Security学习
前面所学能简单实现安全的有过滤器和拦截器。需要掌握过滤器和拦截器的原理和使用(基础)1 安全简介Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。一般来说,Web 应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分。用户认证指的是验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统。用户认证一般要求用户提供用户名和密码,系统通过校验用户名和密码来完成认证过程。用户授权指的是验证.
2021-02-27 21:31:14
97
原创 Shiro框架学习
文章目录1、Shiro简介1.1 介绍1.2 功能1.3 Shiro构架(外部)1.4 Shiro构架(内部)2、快速开始Demo2.1 快速开始2.2 认证与授权流程3、集成SpringBoot3.1 环境搭建3.2 实现登录拦截3.3 实现用户认证3.4 整合Mybatis3.5 实现授权实现3.6 整合Thymeleaf【资料来源]1、Shiro简介1.1 介绍 Apache Shiro 是 Java 的一个安全框架。目前,使用 Apache Shiro 的人越来越多,因为它相当简单,对比 S
2021-02-27 20:47:41
2079
原创 Vue笔记
文章目录1、VUE概述2、前端知识体系2.1 前端三要素2.2 JavaScript框架3、前后端分离3.1 后端为主的MVC时代3.2 基于AJAX带来的SPA时代3.3 前端为主的MV*时代3.4 NodeJS带来的全栈时代3.5 总结4、第一个Vue程序4.1 MVVM模式4.2 Vue程序5、Vue基本语法5.1 基础语法5.2 Vue的七大对象5.3 Vue双向绑定5.4 Vue组件5.5 Axios异步属性1. Axios介绍2. Vue的生命周期3. Axios程序5.6 计算属性5.7 插
2021-02-23 11:47:42
1120
原创 IDEA中配置Tomcat启动项目
创建的ssm项目如何添加tomcat服务器来启动项目??1、需要在maven项目中添加web框架WEB-INF2、对服务器进行配置点击run =>Edit Configurations.或直接点击如下所示的按钮。添加tomcat服务器对添加的tomcat进行配置,配置如下:...
2021-02-07 16:55:24
414
原创 Servlet介绍
1、Servlet概念1.1 什么是Servlet概念Servlet(Server applet)是服务器的小程序,是JavaWeb的三大组件之一,它属于动态资源,也是JavaEE的规范。作用Servlet的作用是处理请求,服务器会把接收到请求交给Servlet来处理。Servlet实现动态页面的输出,需要以下三个步骤接收请求数据处理请求完成响应1.2 实现servlet的方式实现Servlet有三种方式实现javax.servlet.Servlet接口。需要
2021-02-02 22:28:52
493
原创 Spring笔记
一、IOC理论推导什么是IOCIoC : Inversion of Control (控制反转), 其本意就是将原本在程序中手动创建对象的控制权,交给Spring来管理。没有 IOC之前若调用者需要使用某个对象,其自身就得负责该对象及该对象所依赖对象的创建和组装。加入IOC之后调用者只管负责从Spring容器中获取需要使用的对象,不关心对象的创建过程,也不关心该对象依赖对象的创建以及依赖关系的组装;也就是把创建对象的控制权反转给了Spring框架。DI:依赖注入DI(依
2021-02-01 18:09:11
1034
原创 Mybatis笔记
1、认识Mybatis1.1 Mybatis简介1、什么是mybatis??1)Mybatis是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射;2)几乎免除了所有的JDBC代码以及设置参数和获取结果集的操作;3)可以通过简单的XML或注解来配置和映射原始类型、接口和Java类(POJO)为数据库中的记录2、什么是ORM??ORM(Object Relational Mapping)对象关系映射:为了解决面向对象与关系数据库存在的互补匹配的技术,即将Java程序中
2021-01-30 16:20:13
691
2
原创 网络爬虫
1、网络爬虫1.1 抓取网页1.1.1 什么是URIURI(Universal Resource Identifier):通用资源标志符。Web上每种可用的资源,如HTML文档、图像、视频片段、程序等都由URI进行定位。组成① 访问资源的命名机制② 存放资源的主机名③ 资源自身的名称,由路径表示例如:https://movie.douban.com/subject/25919408/这是一个通过https下一访问的资源位于主机movie.douban.com上通过路径 /su
2021-01-29 19:46:18
793
原创 SpringMVC 简介
1、回顾MVC1.1 什么是MVC?MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。是将业务逻辑、数据、显示分离的方法来组织代码。MVC主要作用是降低了视图与业务逻辑间的双向偶合。MVC不是一种设计模式,MVC是一种架构模式。当然不同的MVC存在差异。**Model(模型):**数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数
2021-01-15 11:45:38
909
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人