- 博客(39)
- 资源 (4)
- 收藏
- 关注

原创 SpringMVC的配置和执行流程
要想成功的配置和调试springmvc,了解掌握它的执行流程是必不可少的,话不多说,看下图:我们边说执行边讲配置,首先,想要使用springmvc,依赖是必不可少的,在pom里边加入如下依赖:<!--spring mvc-json依赖--> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-dat
2020-07-22 09:16:20
296
1

原创 SpringAop的三种配置方法:基于ProxyFactoryBean、基于AspectJ的xml,基于AspectJ的注解
面向切面编程,是面向对象编程的一中拓展,将各个对象中的同级共性代码块提取出来进行方法封装。解耦,使得代码更加的简洁高效;其底层应用的原理是动态代理。可以增强方法,书写日志。Springxml头部声明:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XML
2020-07-19 14:57:56
597

原创 Mybatis链接过程
首先来说一下Mybatis链接的注意事项:要想成功链接mybatis,必须要遵循以下几点规则:1、在Mybatis中把持久层的操作接口名称和映射文件叫做:Mapper,其实userDao和userMapper是一样的。2、在idea中创建目录的时候,和创建包是不一样的。包在创建的时候,com.aaa.Dao是三级结构但是在创建目录的时候,com.aaa.Dao是一级结构3、mybatis的映射配置文件位置必须和dao接口的包结构相同。4、映射配置文件的mapper标签的nam
2020-07-11 08:15:55
774
原创 广搜的用法
今天想说一说个人对于这两个搜索方法的见解。在我看来,DFS与BFS是算法道路上最基础最容易掌握的,同时,又能提供巨大助力的方法之一。我这里斗胆用方法二字来形容DFS以及BFS,用搜索思想来囊括二者。方法是死的,而思想是活的,我们应该通过对这两种方法的剖析来获得这种思想,因为无论是在现实问题还是算法题目上,问题模型都是多变的,我们要着重于理解思想而后针对特定问题能用最佳的方法去解决。话不多说,我们先从DFS说起。1.DFS(深度优先搜索)深度优先搜索的步骤分为 1.递归下去 2.回溯上来。顾名思义,深度
2021-07-26 21:44:42
356
原创 深搜的用法
聊这个话题之前,我们先聊聊什么是树形结构和递归树形结构:像这种带分支的有父子关系的结构就是树形结构;既然聊起了树形结构,就不得不说数据结构中的** ‘树’ ** ;让我们看一下数据结构中** 树 ** 的概念:** 在计算器科学中,树(英语:tree)是一种抽象数据类型或是实现这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>0)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:*
2021-07-26 21:42:10
417
原创 ojdbc
当我们用springboot链接oracle的时候,我们在pom文件中引入依赖后,会发现一个恐怖的问题:我们的oraclejdbc依赖是爆红的,而且阿里云镜像也是搜索不到这个文件的!!![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mZydGlUV-1619769234983)(/open.file/download?fileNo=104)]具体的原因呢,就是oracle的jdbc包是不开源的,所以我们没办法这样子用。。。呢怎么办呢???** 别急~~~ 方法总多于
2021-04-30 15:54:29
1941
1
原创 quartz动态增删改查
四、略微复杂的quartz的使用:动态添加修改定时任务设想一个项目场景:在一个项目中,我需要动态的向项目中添加或者修改定时任务,还有暂停和启动的操作,相当于动态的添加定时任务,如果有这种需求 的话呢?你打算怎么做?4.1、quartz的固化(本案例不使用,仅作为学习)这样的话,我们就需要将定时任务集成到数据库中了,在这方面,quartz给我们做了固化,具体的操作很简单:在项目的配置文件(application.yml)中加入如下配置;其中,always,代表每次启动项目都会给数据库添加quart
2021-04-30 15:53:19
735
1
原创 quartz简单入门
一、 quartz:在学习quartz之前,我们先来认识一下quartz,它到底是个什么东西,我们为什么要学它;看一下官方的解释:再来看一些比较通俗一点的解释:说的比较通俗一点,quartz就是一个定时器,用来完成复杂一点的定时任务的,它的使用也是非常的简单,下边我们将由浅入深的介绍quartz这个框架;二、quartz的一些使用属性和概念的介绍:要了解一个框架之前,我们首先要知道它里边最基本的一些类的属性是什么:说的比较通俗一点:job:就是你的定时器需要完成的任务是什么;jobD
2021-04-30 15:51:57
1478
2
原创 一个项目多个实例
在我们后端人员与前端人员调试的时候,有的时候会遇到特别令人苦恼的问题,比如说我后端要进行debug,打断点,这个时候呢,前端界面就会出现不了数据,会出现接口调用失败,因为进程卡到我们后端这里了 。呢么这个问题应该怎么解决呢??????下边就解决他!!!我们一般来说,打开项目的service窗口,只有一个springboot实例启动:这样非常的不方便:第一步:第二步:第三步:然后就是apply,ok,之后你在你的service中就可以看到两个实例 了:启动它!!:这样就可以一个端口
2021-04-30 15:48:09
217
1
原创 查询全科慕名
今天想说一说个人对于这两个搜索方法的见解。在我看来,DFS与BFS是算法道路上最基础最容易掌握的,同时,又能提供巨大助力的方法之一。我这里斗胆用方法二字来形容DFS以及BFS,用搜索思想来囊括二者。方法是死的,而思想是活的,我们应该通过对这两种方法的剖析来获得这种思想,因为无论是在现实问题还是算法题目上,问题模型都是多变的,我们要着重于理解思想而后针对特定问题能用最佳的方法去解决。话不多说,我们先从DFS说起。1.DFS(深度优先搜索)深度优先搜索的步骤分为 1.递归下去 2.回溯上来。顾名思义,深度
2021-04-30 15:46:04
107
1
原创 aop配合自定义注解玩法
package com.chinasnow.framework.interrector;/* 类名称:UsersDataFilter 功能描述: 作者: 创建时间:2021/4/14 16:07*/import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.serializer.SerializerFeature;import com.alibaba.fastjson.support.config.FastJsonCon
2021-04-30 15:41:56
131
1
原创 zTree的使用:
<ul id="selectTree" class="ztree" style="max-height:600px;overflow:auto;padding-right: 30px;border-right: 1px solid #ccc;"></ul>var setting = { view: { // addHoverDom: addHoverDom, // removeHoverDom: removeHove
2021-04-30 15:39:09
247
1
原创 上传下载文件
上传下载文件: private static String makeFileName(String filename){ //2.jpg //为防止文件覆盖的现象发生,要为上传文件产生一个唯一的文件名 return UUID.randomUUID().toString() + "_" + filename; } public String uploadLocalFile(FileItem fileItem,String realPath){
2021-04-30 15:35:26
140
1
原创 利用pdfjs实现pdf预览
首先下载pdfjs:https://hub.fastgit.org/mozilla/pdf.js然后下载里边的东西;前端: function setpreview(fileno) { window.open('${path}/bower/pdfJs/web/viewer.html?file=${path}/protect.file/getPdfPreView/'+fileno,'PDF','width:50%;height:50%;top:100;left:100;');
2021-04-30 15:33:35
350
1
原创 利用jodconverter将office文件转为pdf文件
首先引入pom文件:<!-- pdf工具--> <dependency> <groupId>org.openoffice</groupId> <artifactId>juh</artifactId> <version>4.1.2</version> </dependency>
2021-04-30 15:27:32
826
2
原创 quartz由浅入深学习:简单的quartz,动态添加修改任务和触发器quartz;扫盲必备
Qrartz学习---基于springboot从入门到实现对于触发器定时任务的动态增删改查;一、 quartz: 在学习quartz之前,我们先来认识一下quartz,它到底是个什么东西,我们为什么要学它;看一下官方的解释:再来看一些比较通俗一点的解释: 说的比较通俗一点,quartz就是一个定时器,用来完成复杂一点的定时任务的,它的使用也是非常的简单,下边我们将由浅入深的介绍quartz这个框架;二、quartz的一些使用属性和概念的介绍: 要了解一个框架之前,我...
2020-12-27 22:29:35
4233
原创 单点登录--微服务的登录解决方案
既然聊到了单点登录,呢么我们就来看看到底什么是单点登录。看一下官方的解释:单点登录又称为sso(Single Sign On) ,就是通过用户的一次鉴别登录。当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,同时这种实现是不需要管理员对用户的登录状态或其他信息进行修改的,这就意味着在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。这种方式减少了由登录产生的时间消耗。其实说的简单点,就是将用户的信息存储起来,然后在访问一个系统中别的.
2020-09-18 19:18:53
3597
原创 自定义异常和全局异常处理
自定义异常:// 虽然java已经为我们创建了很多异常类,但是可能还是满足不了我们的额需求,所以我们就可以自定义异常类进行异常处理// Exception里边有很多构造方式,我们都可以自定义成员变量来继承他们// 用来抛出异常用的// 这个的话,我是里边多加了一个字段,如果全局异常用泛型的话,要么判断强转,要么就是把里边自定义的属性值// 放在自定义返回类型上@Data@NoArgsConstructorpublic class AAAException extends Runtime
2020-09-08 21:57:23
679
原创 MybatisPlus-分页和自动填充
这个过程其实mybatisplus中都有,在此做一个小笔记首先是分页,在mybatisplus的分页,要写一个配置文件,来实现分页:@Component@Configurationpublic class MybatisPageHandler { @Bean public PaginationInterceptor paginationInterceptor() { PaginationInterceptor paginationInt0erceptor =
2020-09-08 21:55:03
748
原创 MybatisPlus代码生成器
mybatisplus拥有着聘美逆向工程和通用mapper的代码一键生成器,我们只需要改动几个参数即可:首先加入依赖:<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId><version>3.4.0</version></dependency><d
2020-09-08 21:48:22
265
原创 使用easyExcel完成excel表格的导入和导出操作
引入pom依赖:<dependencies> <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel --> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version
2020-09-08 11:13:21
1968
原创 OSS整合
Oss是阿里的一个云存储服务,可以上传和下载文件。我们想使用,就要先加入依赖pom:<dependencies> <!-- 阿里云oss依赖 --> <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> </dependency>
2020-09-08 10:38:52
775
原创 分布式微服务事务--理论篇
TC(Transaction Coordinator): 事务协调器,维护全局事务的运行状态,负责协调并驱动全局事务的提交或回滚;TM(Transaction Manager): 事务管理器,控制全局事务的边界,并最终发起全局提交或者回滚的决议;RM(Resource Manager): 资源管理器,负责分支注册, 状态汇报,驱动分支事务的提交和回滚。seata分布式事务的执行过程:1、A服务的TM向TC申请开启一个全局事务,用来管理所有的分支事务,驱动回滚或提交。TC会创建一个全局事务..
2020-09-02 11:21:48
179
原创 简单搭建分布式微服务事务--实践篇
seata微服务的执行流程:其中 TM(Transaction Manager):全局事务管理器,控制全局事务边界,负责全局事务开启、全局提交、全局回滚。 RM(Resource Manager):资源管理器,控制分支事务,负责分支注册、状态汇报,并接收事务协调器的指令,驱动分支(本地)事务的提交和回滚。 TC(Transaction Coordinator):事务协调器,维护全局事务的运行状态,负责协调并驱动全局事务的提交或回滚。 下边就以最原始典型的account.
2020-09-01 10:10:17
283
原创 Redis理论以及配置
目录为什么要有Redis数据库?Redis的持久化操作---RDB&AOFRDB(Redis DataBase):Rdb 保存的是dump.rdb文件AOF(append only file):依赖于文件如果aof和rdb共存的话,优先寻找aof文件:序列化操作:在Springboot中使用Redis作为缓存:方法1、在Service层中自己书写并且配置,为什么要有Redis数据库?设想一个场景,如果上亿的用户同时访问数据库,呢么如果是mysql数据库..
2020-08-23 12:05:59
1386
2
原创 ssm链接shiro小案例
前言本文主要是对上一篇shiro整合的进一步优化,上一篇shiro主要是和springboot进行整合,唯一的缺点就是没有链接数据库,在此用ssm进行整合,并且连接数据库进行更好的说明上一篇链接:https://blog.youkuaiyun.com/qq_39949910/article/details/10771630..
2020-08-22 16:36:10
446
原创 Spring父子容器关系---解决ssm框架启动tomcat异常无法创建bean
今天在整合ssm和redis的时候,将redis的连接池bean声明文件放在了springmvc的配置文件之下,却发生了tomcat启动创建bean异常,异常如下:声明的bean如下:实验了几次后,发现只要将这个bean的声明放在别的spring配置文件中,就可以生效,非常的不理解,于是心想这个mvc和别的配置文件所对应的容器是不是作用域和范围不一样,上网查询资料终于得到了解决。原来在spring的容器中是区分父容器和子容器的。他们之间的关系是:子容器可以读取父容器中的内容,但是父容
2020-08-19 08:44:52
634
原创 数据库中的事务以及配置---基于ssm
什么是事务? 是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作;这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行;事务是一组不可再分割的操作集合(工作逻辑单元);多条sql语句,在同一个连接下,要么都执行,要么都不执行 既然说起了事务,就不得不说事务的四大特性,他们分别是: 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持久性(durability) 原...
2020-08-09 14:38:15
486
原创 Mysql索引的优化和使用原则
mysql高级特性:一、索引:分类:1、主键索引:设置为主键的列会创建主键索引,主键唯一非空如果你给一个数据表字段设置为主键,呢么他会自动创建一个主键索引,在数据库中,索引分为主键索引(聚簇索引)和非主键索引(二级索引),他们之间的区别是:非主键索引的叶子节点存放的是主键的值,而主键索引的叶子节点存放的是整行数据。任何二级索引的调用,都是先查询到叶子节点的主键值,然后再根据主键索引查询数据,这个过程也叫回表。2、单列索引:即索引中只包含一个列,一张表可以有多个单列索引。3、唯一索引:索引列..
2020-08-09 11:02:28
419
原创 ssm和springboot的pom依赖文件
首先是ssm:<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> <sp
2020-08-02 10:19:51
450
原创 shiro案例--与springboot整合--拦截器的配置--注解和xml
工程第一步:导入依赖:pom添加: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.0.RELEASE</version> </parent>
2020-07-31 20:31:25
640
1
原创 SSM整合过程
SSM 即 Spring SpringMVC Mybatis 总体的配置过程分为三步: 1、配置SpringMVC 2、配置Mybatis 3、整合读取上述两个的配置文件首先我们引入ssm的jar依赖<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compile...
2020-07-26 15:02:14
174
原创 各种注解Spring和MYBATIS
Mybatis:package com.aaa.Dao;import com.aaa.Entity.Goods;import org.apache.ibatis.annotations.*;import org.apache.ibatis.mapping.FetchType;import java.util.List;public interface GoodDao { @Select({"select * from goods"}) List<Goods>
2020-07-19 15:42:20
162
原创 Spirngbean装配
Spring–bean实例化的三种方式:构造器实例化静态工厂实例化实例工厂实例化静态工厂实例化:1、创建对应的静态实例工厂public class StaticFactoryBean { public static Student createStudent(){ Student student=new Student(); // 荣国数据库获取最新的数据 id name 再set值 // 假装 student.setStud
2020-07-17 14:45:48
147
转载 mybatis缓存机制
一级缓存失效情况(没有使用到当前一级缓存的情况,效果就是,还需要向数据库发出查询);1、sqlSession不同;2、sqlSession相同,查询条件不同(当前缓存中没有这个数据)3、sqlsesion相同,但是两次查询期间做了增删改操作。4、sqlSession相同,但是我们手动清空了缓存二级缓存:(全局缓存):基于namespace级别的缓存:一个namespace对应一个二级缓存; 工作机制: 1、一个会话,查询一条数据,这个数...
2020-07-14 08:40:07
304
原创 懒加载
懒加载的配置以及原理懒加载的配置 懒加载,就是需要使用到数据的时候才进行加载,不需要用到数据的时候就不加载。 好处:先从单表查询,需要时再从关联表去关联拆线呢,大大提高数据库的性能,因为单表查询远远高于多表查询的速度。 坏处:因为只有遇到数据的时候,才会进行数据库查询,这样在大批量数据查询的时候,因为查询工作也要消耗时间。所以可能会造成用户的等待时间变长。我们开启懒加载的步骤一共有两步: 1. 在xml文件中配置setting开启懒记载 2. 书写函数和resultMa
2020-07-13 09:47:53
1420
原创 Mybatis一对多,一对一,多对多查询,动态sql拼接
适用场景: 一对一,一对多查询主要就是为了应付从数据库中两表联查字段,但是字段又容易多变的情况,我们不能每变一种情况便重新创建一个新的实体类,所以用到了一对一和一对多查询,多对多查询,本质上就是一对多查询的集合。举例数据库结构:一对一:以上图举例的表来说,一对一的关系就是:一个商品对应一个商品种类。所以我们创建实体类的时候,可以这么创建:public class Goods { private int id; private int imgId; priva...
2020-07-10 20:02:03
902
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人