- 博客(77)
- 收藏
- 关注
原创 数据库面试总结
数据库相关mysql使用的函数字符相关:concant() 连接字符trim()去除字符的首尾空格space(n) 返回n个空格char_length() 返回字符的个数ucase()/upper()将字符串 s 的所有字母变成大写字母lcase()/lower() 将字符串 s 的所有字母变成小写字母substr/substring/mid(s, start, length)从字符串 s 的 start 位置截取长度为 length 的子字符串下标从1开始SELECT SUBS.
2024-05-13 22:07:01 977
原创 springboot之国际化
springMVC怎么做?1、编写国际化配置文件;2、使用ResourceBundleMessageSource管理国际化资源文件3、在页面使用fmt:message取出国际化内容springboot怎么做?1、编写国际化配置文件,抽取页面需要显示的国际化消息2、SpringBoot自动配置好了管理国际化资源文件的组件;@ConfigurationProperties( prefix = "spring.messages")public class MessageSourceAu
2020-07-11 17:51:06 231
原创 springboot之修改默认配置
springboot配置原理1、SpringBoot在自动配置很多组件的时候,先看容器中有没有用户自己配置的(@Bean、@Component)如 果有就用用户配置的,如果没有,才自动配置;如果有些组件可以有多个(ViewResolver)将用户配置的和自己默 认的组合起来;2、在SpringBoot中会有非常多的xxxConfigurer帮助我们进行扩展配置3、在SpringBoot中会有很多的xxxCustomizer帮助我们进行定制配置参考资料:尚硅谷springboot课程本文若有错误请
2020-07-05 12:53:26 343
原创 springboot之springMVC
自动配置springbootmvc的说明springboor在启动时就自动配置了很多的组件其中就包括springMVC的自动配置 以下是SpringBoot对SpringMVC的默认配置:(WebMvcAutoConfiguration)Inclusion of ContentNegotiatingViewResolver and BeanNameViewResolver beans. 自动配置了ViewResolver(视图解析器:根据方法的返回值得到视图对象(View),视图对象决定如何 渲染
2020-07-05 12:49:29 344
原创 springboot之thymeleaf的使用
源码使用规则@ConfigurationProperties( prefix = "spring.thymeleaf")public class ThymeleafProperties { private static final Charset DEFAULT_ENCODING = Charset.forName("UTF-8"); private static final MimeType DEFAULT_CONTENT_TYPE = MimeType.valueOf("t
2020-07-04 16:49:41 165
原创 springboot对静态资源的映射规则
源码解析静态资源的设置 public void addResourceHandlers(ResourceHandlerRegistry registry) { if (!this.resourceProperties.isAddMappings()) { logger.debug("Default resource handling disabled"); } else { Integer c
2020-07-04 10:40:11 273
原创 springboot之切换日志框架
可以按照slf4j的日志适配图,进行相关的切换;slf4j+log4j的方式;<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring‐boot‐starter‐web</artifactId> <exclusions> <exclusion> <artifactId>logback‐classic<
2020-06-29 17:19:25 243
原创 springboot日志文件配置
默认配置使用示例//记录器 Logger logger = LoggerFactory.getLogger(getClass()); @Test public void contextLoads() { //System.out.println(); //日志的级别; //由低到高 trace<debug<info<warn<error //可以调整输出的日志级别;日志就只会在这个级别以以后的高级别生效 logger.trace("这是trace日
2020-06-29 17:07:35 697
原创 springboot日志关系
文章目录日志依赖底层实现日志依赖<dependency> <artifactId>spring-boot-starter-logging</artifactId> <groupId>org.springframework.boot</groupId></dependency>底层实现总结:1)、SpringBoot底层也是使用slf4j+logback的方式进行日志记录2)、SpringBoot也把其他的日志都替
2020-06-24 17:27:07 236
原创 SLF4J官方选择
文章目录使用关系图小问题使用关系图最下面是提示1.日志门面(抽象)2.日志实现3.适配器小问题在实际开发中会依赖各种框架,使用的日志各不相同,可以同一使用日志么?可以的 SLF4J给我们了一个解决方案,使用中间的一个包替换,原理其实就是适配器模式如何让系统中所有的日志都统一到slf4j?1、将系统中其他日志框架先排除出去;2、用中间包来替换原有的日志框架;3、我们导入slf4j其他的实现参考资料:尚硅谷springboot课程本文若有错误请指正,互相学习,加油!...
2020-06-24 17:19:57 419 1
原创 日志框架分类和选择
文章目录市面上的日志框架;日志抽象日志实现如何选择?市面上的日志框架;JUL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j…日志抽象JCL Apache下的jakarta小组开发SLF4jjboss logging日志实现Log4jJULLog4j2Logback如何选择?jboss logging使用场景少JCl最后一次更新时间为2014年日志抽象层选择SLF4jLog4j没有Logback先进,性能还没Logback好JUL(
2020-06-24 13:26:36 215
原创 springboot之@Conditional派生注解(Spring注解版原生的@Conditional作用)
看源代码发现的,所以就去找了找所有的这些注解
2020-06-24 11:40:53 225
原创 springboot核心技术之自动配置原理
自动配置原理1.加载主配置类,开启了自动配置注解@EnableAutoConfiguration@EnableAutoConfiguration作用按住Ctrl+鼠标左键发现有这个注解,导入了这个组件@Import({EnableAutoConfigurationImportSelector.class})它的父类 AutoConfigurationImportSelectorpublic class EnableAutoConfigurationImportSelector extends
2020-06-24 11:36:18 157
原创 springboot之外部配置加载顺序
文章目录SpringBoot也可以从以下位置加载配置; 优先级从高到低;高优先级的配置覆盖低优先级的配置,所有的配置会 形成互补配置1.命令行参数 所有的配置都可以在命令行上进行指定2.来自java:comp/env的JNDI属性3.Java系统属性(System.getProperties())4.操作系统环境变量5.RandomValuePropertySource配置的random.*属性值 由jar包外向jar包内进行寻找; 优先加载带profile6.jar包外部的application-{pro
2020-06-21 09:59:51 441
原创 springboot之配置文件加载位置
配置文件位置1.–file:./config/2–file:./3–classpath:/config/4–classpath:/加载顺序及机制优先级由高到底,高优先级的配置会覆盖低优先级的配置;SpringBoot会从这四个位置全部加载主配置文件;互补配置;改变加载的默认文件配置使用命令行改变spring.config.location项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定配置文件的新位置;指定配置文件和默 认加载的这些配置文件共同起作用形成互补配置;j
2020-06-21 09:28:40 167
原创 springboot之Profile
文章目录为什么使用使用多个Profile文件yml支持多文档快激活指定profile为什么使用实际生产中常常会使用不同的环境来保证数据的稳定性、安全性且不易丢失使用创建对应环境的文件1.application-dev.properties内容server.port=80822.application-prod.properties内容server.port=803.application.yml内容server: port: 8081spring: profiles
2020-06-20 19:57:21 143
原创 centos安装java环境
yum语法首先需要root权限su 输入你的密码即可1、查看yum库中都有哪些jdk版本[root@lyh:] # yum search java|grep jdk2、选择指定的版本安装,注意最后的 * 以及yum源安装的是openjdk,注意openjdk的区别。[root@lyh:] # yum install java-1.8.0-openjdk*3、安装完成后查看版本信息[...
2020-04-16 18:28:06 167
原创 Redis之主从复制
概念逐级数据更新后,根据配置和策略,自动同步到备机的master/slaver机制,master以写为主,slaver以读为主用途1.读写分离2.容灾恢复如何使用1.配置从机(备机) 命令slaveof 主库ip 主库端口号2.每次与master断开之后,都需要重新连接,除非配置修改入redis.confredis.conf修改不同机器的配置文件1.vim 撇脂文件名字2...
2020-04-16 14:09:41 244
原创 Redis的发布订阅
概念进程间的一种通信模式:发送者(pub)发送消息,订阅者(sub)接收消息发送者通过命令将消息传送给订阅者常用命令案例1 可以一次性订阅多个,SUBSCRIBE c1 c2 c32 消息发布,PUBLISH c2 hello-redis3 订阅多个,通配符*, PSUBSCRIBE new*4 收取消息, PUBLISH new1 redis2015先订阅后发布后才能收到消息...
2020-04-15 12:16:47 166
原创 乐观锁与悲观锁
文章目录悲观锁优势劣势应用场景乐观锁优势劣势应用场景悲观锁悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁优势由于加锁 在操作过程中数据无法被其他线程访问...
2020-04-15 11:50:59 141
原创 Redis的事务
概念可以一次执行多个命令,本质上是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其他命令插入,不许加塞
2020-04-15 11:50:36 158
原创 Redis数据恢复的细节和选择
文章目录rdb文件是否可以和aof文件共存?rdb文件和aof文件,先读取哪一个?如何选择?性能建议rdb文件是否可以和aof文件共存?可以rdb文件和aof文件,先读取哪一个?先读取aof文件,在读取rdb文件如何选择?1.如果只做缓存,那么可以不开启任何的持久化2.考虑做持久化数据,建议开启两种持久化数据方式为什么?首先redis启动先读取aof文件,因为aof文件比rdb文...
2020-04-14 16:38:38 191
原创 Redis持久化之AOF
文章目录概念如何触发aop文件修复Rewrite(重写)触发机制优势劣势概念以日志的形式记录每个写操作保存文件是appendonlyaof如何触发1.将配置文件redis.conf中的appendonly 改为yes2.重启开始写操作触发读取appendonlyaofaop文件修复redis-check-aof --fix appendonly.aofRewrite(重写)ao...
2020-04-14 16:29:30 165
原创 Redis持久化之RDB
文章目录概念原理恢复设置持久化策略优势劣势如何停止备份操作概念RDB(Redis DataBase)隔一段时间将内存中的数据写入snapshot快照中恢复数据就是读取snapshot快照文件到内存中原理Redis会单独创建一个fork子进程进行持久化,会将内存数据写入临时文件中每次持久化的过程结束,会替换上次的临时文件,保持数据的即时性主进程不进行io操作,性能很高如果对于数据完...
2020-04-14 15:22:28 124
原创 常见配置redis介绍
参数说明redis.conf 配置项说明如下:Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程daemonize no当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定pidfile /var/run/redis.pid指定Redis监听端口,默认端口为637...
2020-04-14 14:15:57 106
原创 Redis的配置文件redis.conf详解
inclouds和我们的Struts2配置文件类似,可以通过includes包含,redis.conf可以作为总闸,包含其他generaldaemonized 出厂默认设置为nodaemonize:yes:redis采用的是单进程多线程的模式。当redis.conf中选项daemonize设置成yes时,代表开启守护进程模式。在该模式下,redis会在后台运行,并将进程pid号写入至re...
2020-04-14 14:15:01 269
原创 redis的常用五大数据类型
Key-ValueKV键值对若设置重复的key,那么对应的value将被覆盖常用命令keys * 返回当前数据库的所以有key的集合exists key 判断key是否存在move key db 移动key到其他数据库expire key 秒 为key设置过期时间ttl key 查看key还有都少秒过期 -1永不过期 -2过期 返回的数字为多少秒过期type key...
2020-04-13 14:28:23 157
原创 redis启动研究
单进程单进程模型处理客户端请求通过epoll函数包装做到的,redis的实际处理速度完全依靠朱金城的处理效率epoll函数是linux内核为处理大批量文件,多路的io复用操作默认数据库启动使用第一个数据库总共有16个数据库,第一个数据库从0开始可以使用select 数字 切换数据库查看当前数据库key的数量redis-cli -p 6379 进入控制台后DBSIZE返回key...
2020-04-12 10:51:12 184
原创 linux命令学习
权限su root转为root用户文件操作vim ‘文件名’查看文件i某个位置需要修改按下即可:wq!保存并退出cp 文件 路径复制某个文件到某个路径这一命令出错时加上用户路径即可 示例:~用户名/xx文件目录操作cd xx转换目录ls -l查看当前目录的所有文件下详细pwd查看当前目录本文章将持续更新,欢迎互相学习...
2020-04-11 21:15:13 126
原创 搭建虚拟机安装linux
下载相关文件VW Ware 虚拟机管理文件linux(1810)镜像文件安装1.打开VM Ware,文件–>新建虚拟机 选择典型,然后下一步。可以自定义,为了方便没研究2.选择下载好的镜像文件.iso,点击下一步3.创建你的linux名字 用户名和密码 点击下一步4.为你的虚拟机起个名字,还有选个你的虚拟机的位置5.选择将虚拟磁盘拆分为多个文件,点击下一步6.,点...
2020-04-11 21:05:13 139
原创 Redis之概念
概念Redis:REmote DIctionary Server(远程字典服务器)完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(Key/Value)分布式内存数据库,基于内存运行并支持持久化的NoSql服务器,是当前最热门的NoSql服务器之一,也被人们称为数据结构服务器特点Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用R...
2020-04-11 10:36:49 113
原创 CAP原理+BASE
CAPC:Consistency(强一致性)A:Availability(可用性)P:Partition tolerance(分区容错型)关系型数据库可以满足传统的关系ACID非关系型数据库只可以满足两种特性CAP理论就是说在分布式存储系统中,最多只能实现上面的两点。而由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容忍性是我们必须需要实现的。所以我们只能在一致性和可用性之间...
2020-04-11 10:21:20 185
原创 NoSql数据库四大分类及比较
KV键值对使用KV的大厂新浪:BerKeleyDB+redis美团:redis+tair阿里百度:memcache+redis文档数据库(bson)CacheDBMongoDBMongoDB介绍:MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的...
2020-04-10 14:46:27 1555
原创 RDBMS vs NoSQL
RDBMS高度组织化结构化数据结构化查询语言(SQL)数据和关系都存储在单独的表中。数据操纵语言,数据定义语言严格的一致性基础事务NoSQL代表着不仅仅是SQL没有声明性查询语言没有预定义的模式-键 - 值对存储,列存储,文档存储,图形数据库最终一致性,而非ACID属性非结构化和不可预知的数据CAP定理高性能,高可用性和可伸缩性...
2020-04-09 20:31:03 184
原创 多线程面试题
synchronized锁定的是什么?对象的锁只有一个,线程1拿到,其他线程就无法操作这个对象。进入阻塞状态,直到synchronized(){}执行结束.synchronized(this)、synchronized(.class)、synchronized(任意对象)区别synchronized (this)代码块是锁定当前对象,所得是用一个对象synchronized(任意...
2020-03-24 10:22:36 244
原创 线程安全的单例模式
使用内部类ublic class Singleton { public Singleton() { super(); System.out.println("single"); } private static class Inner{ private static Singleton s=new Singleton();...
2020-03-21 09:21:15 113
原创 Spring Cloud组件config之使用
概述config包括服务器和客户端,还需要git和一个远程http仓库客户端读取配置,服务器从http远程仓库读取配置,此文件用于项目来使用,十几个配置文件可以交给远程仓库来管理更新配置,可以使用git向远程http仓库上传配置文件使用1.注册gitee账号,建立远程仓库.将远程仓库下拉到本地 使用 git clone https/ssh地址上传配置文件到远程仓库git add 文...
2020-03-14 20:59:40 164
原创 Spring Cloud典型面试题
1.什么是微服务?微服务的核心技术就是将传统的一站式应用,根据业务拆分成一个一个的服务彻底的耦合,每一个微服务提供单一业务功能的服务,一个服务做一件事。从技术角度看就是一种小而独立的处理过程,类似进程概念,能够自行单独启动或销毁,拥有自己独立的数据库2.微服务之间是如何建立通讯的?3.Spring Cloud和Dubbo有哪些区别?Dubbo的通信是通过rpc建立的,SpringClou...
2020-03-14 20:17:53 590
原创 Spring Cloud组件Config之概述
前言微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的配置管理设施是必不可少的。可以想想,上百个配置文件,给开发人员和运维人员带来的巨大压力可想而知概述spring cloud想到了这个问题,为我们提供了分布式配置中心Config这个分布式配置中心是什么呢?Spri...
2020-03-11 15:04:47 165
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人