- 博客(30)
- 收藏
- 关注
原创 Swagger的基本用法
Swagger-UI的使用 1.导入依赖: <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <v
2022-03-20 22:42:11
554
原创 今天在做项目时候,遇到maven问题,记录一下
1.maven的循环依赖问题: 假如项目中是多个模块的聚合A-modules依赖B-Modules模块, B模块的有些东西需要依赖A模块,这样的话,产生了循环依赖异常 解决循环依赖的问题: 1.比方说B模块,我们可以将A需要B模块的那一部分代码 移到A上,但是当项目大了起来,这样做很不方便 2.重构:将AB模块共有的抽取出来,作为公共部分去使 用,这样既减少了代码量,又避免了一些未知的bug. 二:解决了循环依赖的问题之后,又出现了一个新的问 题,当我们在B模块导入A模块的时候,启动项目发现,有 些类找
2021-09-12 20:36:53
125
原创 通过git命令将代码推送到远程仓库的的踩坑记
记录一篇git推送代码到远程仓库的bug,首先看下bug的内容如下: fatal: Authentication failed for 'https://github.com/zaicheng123/MyCode.git/' 这个问题很明显就是推送远程仓库的时候,用户名密码认证失败。 二:如何解决呢? git config --global user.email "xxx@qq.com" git config --global user.name "zaicheng123" \ 设
2021-09-12 20:19:50
242
原创 spring-cloud-alibaba的版本选择遇到的问题
#踩坑记:分享一篇在使用spring-cloud-alibaba时,在版本选择方面踩到的坑:以便帮助一些小伙伴少走弯路啊,我被坑了一下午。 一:首先说我遇到的问题: 1.就是下载对应spring-cloud-starter-alibaba-nacos-discovery的 版本下载不出来,百度了一下,发现我的问题所在:附图如下: 2:版本对应不上,导致naocs服务启动时遇到,org.springframework.cloud.client.serviceregistry.Auto
2021-09-11 17:59:29
1987
5
原创 分享一篇jedis到springboot整合redis的流程
首先我想说的是redis是一个基于内存,可持久化,支持网络,key-value形式的缓存型的非关系型数据库,它由C语言编写。它的数据类型有:string、list、hash、set、zset,可用于的场景是:排行榜,分布式消息订阅,计数器,投票,会话,session. redis的缺点:单线程命令慢,容易造成阻塞,线程上下文切换消耗资源。 redis的优点:采用io多路复用,它安装在磁盘,运行在内存。 那么接下来我想分享的是有关于: 从jedis到spring整合redis以及springboot整合red
2020-07-26 11:25:24
218
原创 STS插件创建springboot的mvc项目遇到的问题:
前言: 今天用STS插件做了一个springboot整合mvc的web项目,用的视图是jsp,但是我程序启动成功后,报错404,说是找不到页面,依赖都引入了,观察半天我的pom.xml文件,原来是忘了加下面个依赖: 加上这个依赖重新再启动的时候,果然可以了。 还有我要提醒以下,在创建好项目之后,把启动类一定要放在所有包的外层,springboot会去扫描,不然的话,启动之后访问还是会报404 ...
2020-07-13 20:12:07
207
原创 手写mybatis思想
前言: mybatis是一个半自动的ORM框架,用于实现面向对象编程语言里的不同类型系统的数据之间转换。那么我们怎么实现一个mybatis一个框架,首先我们对mybatis要有一个深刻的认识,底层源码以及底层原理有个熟悉的掌握,那么我先说一下mybatis的大致执行流程: 我们要执行的话,首先要将磁盘上的xml文件,读到内存中,通过java文件去解析。首先通过输入 流从磁盘上读取,通过SqlSessionFactoryBuilder的build方法读取流,并创建SqlSessionFactory 对象,
2020-05-24 13:30:15
160
原创 分页
近期在做一个SSM项目的分页,由于好久都没写过分页了,今天又写了一次,并且自己也总结了一下:接下来我给大家分享下分页需要准备哪些类: 我们想我们要整成上一页下一页,首页尾页的形式,肯定在查询数据库的时候需要传入两个参数,limit index,number,index代表第一条数据的起始位置,number代表 显示记录的条数,当我们在写Mapper的时候就将这两个参数传进去。第二,就是写一个分页的工具类:那么下面给大家分享下我的思路: 1.首先写一个PageUtil的一个分页工具类: 上图就是分页工具类中
2020-05-20 14:02:16
399
原创 springIOC的核心:反射,以及我们如何用反射实现依赖注入
前言: 最近在一些腾讯课堂上看了一些大佬的讲解,就是在马士兵教育的连老师的讲完的spring源码课程对自己有很深的触动,首先我们来聊一下,我们知道springIOC的核心是java反射,是一个很基础的知识点。我们可以用反射来创建Class对象,以及获取一些类型的属性和类型,那么首先我们代码如何实现: 首先我们创建两个包: cn.jbit.service/cn.jbit.controller:对应U...
2020-05-02 10:24:30
1341
原创 java中的强软弱虚四种引用类型以及ThreadLocal内存泄漏以及源码解读
前言: 首先我们知道什么是一个引用?比方说:Object o=new Object(),这就是一个引用,一个变量指向一个new 出来的对象,引用在java里面分四种,普通引用Object o=new Object(),这也是一个强引用,强引用有什么特点呢?首先看一个小程序: 首先我们看到一个类M,重写了finalize(),这个方法已经是被废弃的方法,垃圾回收的时候会调用这个方法,当我们new出...
2020-04-30 14:39:23
247
原创 spring整合mybatis的两种扫描mapper映射文件的两种方式
注入映射器的两种实现: 1.使用mybatis-spring项目包下的MapperFactoryBean,在spring.xml的配置如下: <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface" value=...
2020-04-12 10:06:31
2707
原创 Oracle的一些基础用法
Oracle的一些用途: 优点: 1.可用性、支持多用户、大并发、大事务量、可扩展、可移植、跨平台、安全性。 2.全局数据库名:数据库实例、表空间、数据文件、控制文件、日志文件、模式和 模式对象 3.启动服务:OracleOraDb11g_home1TNSListener、OracleServiceORCL ...
2020-04-11 23:47:21
176
原创 springboot中自定义starter的实现过程
准备: idea2019.3.1 ,创建一个springboot工程: 第一步:导入依赖(spring-boot-autoconfigure和spring-boot-configuration-processor) 2.定义一个属性配置类: 3.自动配置类: 1. @EnableConfigurationProperties会将一个@ConfigurationProperties注册成 ...
2020-04-09 13:07:30
479
原创 springmvc使用@RestController和@Controller的区别
前言: 今天在做一个登录功能的时候,遇到一个特别奇怪的bug,我先给大家上一幅图,再解释说明: 然后在网上寻找一凡答案,又问了别人。原来是我在类上加了@RestController的原因。因为@RestController注解内置了@ResponseBody,他会返回一个Html页面,他返回的是个json数据, 加的@Controller会返回一个视图,所以说有以下两种解决方式: 1.@Res...
2020-04-09 12:20:37
604
原创 自身volatile的底层实现原理的理解
概念: volatile关键字,是一个变量在多个线程间可见。 比如说A,B,线程共享一个变量,java默认是A线程中保留一份copy, 这样如果B 线程修改了该变量,则A线程未必能看的见。使用该关键字就可以使所有线程 能够读到变量修改的值。 比如下面的小例子,running变量存在jvm堆内存的t对象中,当线程t1开始工作的时候,会把running变量从堆内存中读取到线程t1工作区,在运行过程中...
2020-04-07 14:12:04
295
原创 java.lang.UnsupportedClassVersionError: org/apache/ibatis/session/SqlSession : Unsupported major.min
描述: ssm框架的搭建:SqlServer数据库,spring的jar包,mybatis-3.5.2的jar,MyEclipse编译器。 然后我在进行测试的时候报了如下错误: 我仔细看了一下貌似是jar包版本的问题,他说的是SqlSession的问题,我这里用 @Mapper注解的UserMapper.因为@Mapper注解在mybatis-3.4.0就引入了。于是 我想到是不是版本过高的...
2020-04-06 14:12:51
1114
原创 com.microsoft.sqlserver.jdbc.SQLServerException: 关键字 'User' 附近有语法错误的解决方式
前言: 我在UserMapper映射文件中看了半天都感觉没错,平常连mysql数据库都没有报错,我现在练了一个SqlServer数据库。 于是在网上看到了答案,他说User是关键字,必须加中括号[User],如下设置了一下: 报错前: 报错后解决: ok,问题解决! ...
2020-04-06 14:00:02
1016
原创 ssm连接mysql数据库出现端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“connect timed out。
1.右击计算机,点击管理: 2.打开服务和应用程序–>SQL Server配置管理器—>SQL Server网络配置—>SQLEXPRESS的协议 3.检查TCP/IP是否启用 4.右击TCP/IP选择属性: 5.点击IP地址: 6.检查IPALL的动态端口号是否为1433: 至此,我们就完成,直接远程就可以连接到数据库,也许我和其它的小伙伴的不一样,如果未连接成功就...
2020-04-06 00:24:42
572
原创 Myeclipsed打开Tomcat出现Could not create the view: An unexpected exception was thrown.的问题
问题描述: myeclipse一打开的时候突然tomcat服务器弹出一个框框,显示了一堆错误,并且我设置的两个服务器都没有了: 看了别人的博客说: Server部署了两个项目,分别是SeNT-DL,SeNT-b11M,然而实际上只存在一个部署文件SeNT-DL,另外一个被删除了,而Myeclipse中的Servers部署配置文件没有更新,所以会出现这种情况。 解决方法: 1.直接在myeclis...
2020-04-05 15:16:01
204
原创 CAS(自旋)原理解析,及ABA问题
概念: CAS(比较并且交换)是无锁优化,或者叫自旋,还有自适应自旋,我们通过Atomic类(原子的)。常常配合循环使用,由于这些操作,老是来回的加锁,减锁,加锁情况特别多,我们java提供了这样常见操作的一个类,这些类的内部就自动带了锁,这些锁不是synchronized重量级锁,而是CAS操作来实现(无锁)。 凡是以Atomic开头的类都是用CAS来保证线程安全的。AtomicInteger里...
2020-04-05 14:29:55
1281
原创 synchronized锁竞争、锁升级过程、可重入锁
前言: 在我的上篇文章中讲到了,synchronized的实现的底层原理,以及它是如何加锁的。 那么当我们给对象头的markword加锁之后,它是如何一步步的进行锁升级的呢? 我们说到了,锁的四种状态:无锁态,偏向锁,轻量级锁,重量级锁。那么它到底是怎样一步步的升级为重量级锁的呢? jdk早期的时候,这个synchronized的底层实现是重量级的,重量级到这个synchronized要找操作系统...
2020-04-05 13:21:09
884
原创 zookeeper的单机和集群搭建详解
简述: 什么zookeeper?zookeeper是一个分布式的服务注册和发现中心,当服务器端接收到来自客户端的一个服务的时候,通过zookeeper将其注册到注册中心去。那么接下来分别介绍zookeeper的单机搭建和集群搭建: 首先我们要下载zookeeper的安装包:我这里用的是.tar.gz结尾的安装包: 一开始下载的是3.6.0版本的,但是老是启动失败,换了版本成功。 2.通过she...
2020-04-04 13:10:14
250
原创 synchronized的底层实现原理
简述: 什么是synchronized?sysnchronized就是同步的意思,故名思意是用来保证线程安全的。 synchronized(同步):当一个或者多个线程同时访问一个临界资源的时候,只允许有一个 线程访问,其他线程排队等候。当这个线程彻底把锁释放之后,才允许下个线程去访问 该临界资源,并且再次获取该锁,执行下面操作,直至把锁释放。下图可以清楚的展示该结 论。 图一:没有加s...
2020-04-04 11:30:08
434
原创 Windows系统下,mysql表插入数据中文乱码解决方式
建好表之后,插入中文数据乱码: 1.查看数据库的编码集: show variables like 'character_%'; 显示如下编码字符集信息: mysql> show variables like 'character_%'; ±-------------------------±--------------------------------------...
2020-04-01 09:06:52
279
原创 Linux系统下MySQL的表插入数据乱码解决方式
前言 首先来说一下,我们在平常开发中,经常会遇到一些乱码问题,相信这些一定会对大 家有困扰,那么今天我来列举一下我解决乱码的几种方式: 1.首先从我们从配置文件去看:cd /usr/local/mysql/my.cnf,看是否调整为下面的格式 将client,mysql,mysqld的character_set_server属性设置为utf8.如果那还出现错误,请看第二种解决方式: 2.查看字...
2020-03-31 15:14:34
264
原创 synchronized的锁消除以及锁粗化
准备工作 首先下载Linux版本的MySQL(官网下载,我这里下载包是以.tar.gz结尾的): 1.下载压缩包: 2.进行拷贝到/usr/local/目录下: 3.解压: 4.删除安装包: 5.修改MySQL文件名为mysql(文件名太长,建议修改): 6.切换到mysql目录:cd /usr/local/mysql,检查是否有mysql用户组和my...
2020-03-31 12:59:55
371
springboot实现多数据源切换.md
2023-05-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人