- 博客(60)
- 收藏
- 关注
原创 三、Zookeeper客户端API
三、Zookeeper客户端API1、环境搭建创建一个maven项目导入zookeeper的坐标即可<!-- 导入zookeeper的坐标--><dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.5.7</version>
2021-12-22 09:09:09
794
原创 二、Zookeeper客户端操作
二、Zookeeper客户端操作1、Zookeeper特点Zookeeper : 一个领导者(Leader),多个跟随者(Follower)组成的集群集群中只要有半数以上节点存活,Zookeeper集群就能正常服务,所以Zookeeper适合安装奇数台服务器全局数据一致 :每个Server保存一份相同的数据副本,Client无论连接到那个Server,数据都是一致的更新请求顺序执行 :来自同一个Client的更新请求按其发送顺序依次执行数据更新原子性,一次数据更新要么成功,要么失败实时性,在
2021-12-16 12:57:32
1642
原创 一、Zookeeper概述
一、Zookeeper概述1、Zookeeper安装前置条件 : 安装JDK创建一个 /opt/software 文件目录,将apache-zookeeper-3.5.7-bin.tar.gz 安装包拷贝,并解压mkdir /opt/sofrwaremkdir /opt/moduletar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/ # 将zookeeper解压到指定目录# 进入到 /opt/zookeeper给文件修
2021-12-14 20:08:43
1626
原创 八、Redis集群
八、Redis集群1、Redis集群概述Redis使用会出现哪些问题?1、容量不够,Redis如何进行扩容?2、并发写操作,Redis如何分摊?Redis中的无中心化集群Redis集群实现了对Redis的水平扩容,即启动N个Redis节点,将整个数据库分步存储在这N个节点中,每个节点存储总数的1/NRedis集群通过分区(partition)来提供一定程度的可用性(availability):即使集群中有一部分节点失效或者无法进行通讯,集群也可以继续处理命令请求2、Redis
2021-12-06 12:57:42
646
原创 七、Redis主从复制
七、Redis主从复制1、Redis主从复制简介主机数据更新后根据配置和策略,自动同步到从机的master/slaver机制,Master以写为主,Slave以读为主主从复制的目的读写分离,性能扩展容灾快速恢复效果图2、搭建主从复制使用一台服务器多个端口实现,多态服务器也是同理第一步:将redis.conf配置文件复制到myredis文件夹下,并创建三个配置文件(一主两从)[root@localhost ~]# mkdir /myredis[root@lo
2021-12-03 11:33:16
603
原创 六、Redis持久化
六、Redis持久化1、Redis的持久化方式RDB(Redis DataBase)AOF(Append OfFile)2、RDB(Redis DataBase)简介在指定的时间间隔内,将内存中的数据集快照写入磁盘,也就是Snapshot快照,它恢复时是将快照文件直接读到内存中执行流程Redis会单独创建(fork)一个子线程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的
2021-12-01 14:00:59
746
原创 四、Redis事务
四、Redis事务1、Redis对于事务的定义Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序执行。事务在执行的过程中,不会被其他客户端发送来的请求所打断Redis事务的主要作用就是串联多个命令防止别的命令插队2、Multi、Exec、discard输入multi命令之后,输入的命令就会一次进入命令队列中,但不会执行,直到输入exec后,redis会将之前的命令队列中的依次执行组队的过程中可以使用discard来放弃组队看一个例子127.0.0.1
2021-11-30 12:18:10
600
原创 三、Jedis操作
三、Jedis操作1、初次使用Jedis第一步:引入jar包若使用maven工程,则<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.2.0</version></dependency>第二步:编写测试类测试@Testpublic void
2021-11-24 12:52:52
583
原创 二、Redis配置
二、Redis配置1、redis配置文件单位(#Units#) : 配置文件的开头部分定义了一些基本的度量单位,只支持bytes,不支持bit,大小写不敏感包含(#INCLUDE#):多实例的情况,可以把共用的配置文件提取出来网络相关(#NetWord#):默认情况:bind=127.0.0.1 # 只能接收本机的访问请求不写 ,将该语句注释,可以无限制的接收任何ip地址的访问生产环境肯定要写你应用服务器的地址:服务器是需要远程访问的,所以要将其注释掉注:如果开启了protected-mo
2021-11-23 12:57:25
415
原创 一、Redis概述
一、Redis概述1、redis的安装redis是使用c语言编写的安装redis之前需要有c的运行环境查看当前是否有gcc的运行环境:gcc --version安装gccyum install gcc # 在线安装gccredis官网下载tar.gz压缩包,使用工具上传到 /opt目录下使用解压命令将压缩包解压tar -zxvf redis-6.2.1.tar.gz进入到 redis-6.2.1/目录下,使用make命令编译cd redis-6.2.1
2021-11-22 17:59:58
697
原创 九、Junit5的使用
九、Junit5的使用1、Junit5概述Junit5与之前发布Junit框架有很大的不同,由3个不同的子项目的模块组成Junit5 = Junit Platform + Junit Jupiter + Junit VintageJunit Platform :Junit Platform 是在JVM上启动测试框架的基础,不仅仅支持Junit自制的测试引擎,其他测试引擎也可以接入Junit Jupiter :Junit Jupiter提供了Junit5的新的编程模型,是Junit5新特性的
2021-11-19 12:54:11
1127
原创 八、SpringBoot的数据访问
八、SpringBoot的数据访问1、访问SQL数据库第一步:引入data-jdbc的启动器<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jdbc</artifactId></dependency>第二步:SpringBoot并不会指定数据库驱动,因为它也不知道
2021-11-17 13:00:34
905
原创 七、Web组件注入
七、Web组件注入1、Web原生组件注入(Servlet、Filter、Listener)方式一:使用 @ServletComponentScan + web3.0注解的方式在MainApplicationContext主启动类上加上ServletComponentScan("")注解@ServletComponentScan("day01.view")@SpringBootApplicationpublic class MainApplicationContext { publ
2021-11-16 12:43:41
661
原创 六、SpringBoot拦截器
六、SpringBoot拦截器1、HandlerInterceptor拦截器的使用编写一个类实现HandlerInterceptor接口/** * 实现一个拦截器: * 1.实现HandlerInterceptor接口,重写方法 * 2.在config配置文件中配置该拦截器 */public class LoginInterceptor implements HandlerInterceptor { /** * 在目标路径执行之前执行 * 可以获取到req
2021-11-15 12:30:10
459
原创 五、视图解析与模板引擎
五、视图解析与模板引擎SpringBoot默认不支持jsp,需要引入第三方模板引擎技术实现页面渲染1、Thymeleaf简介现代化、服务端Java模板引擎在SpringBoot中的使用引入starter(场景启动器) <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-bo
2021-11-11 17:47:47
638
原创 四、SpringBoot的Web场景
四、SpringBoot的Web场景1、访问静态资源只要静态资源放在类路径下:/static /public /resources /META-INF/resources #这四个目录都可以存放静态资源访问: 当前项目根路径/ + 静态资源名映射原理:请求进来,首先查看Controller能不能处理,若Controller不能处理则把请求交给静态资源处理器,若静态资源也找不到则404响应不到页面也就是说,同样的请求动态资源优先改变默认静态资源路径# 可以配置
2021-11-08 12:11:25
128
原创 三、SpringBoot配置文件
三、SpringBoot配置文件1、yaml配置文件YAML是"YAML ain’t Markup language" 不是标记语言的标记语言非常适合做以数据为中心的配置文件基本语法key: value : key-value 之间有空格大小写敏感使用缩进表示层级关系缩进的空格数不重要,只要相同层级的元素左对齐即可# 表示注释字符串无需添加引号,如果要添加,"" 双引号不会转义,’'单引号会转义2、yaml使用的示例Person.java@Component//加入到
2021-11-04 17:42:07
140
原创 二、SpringBoot自动配置
二、SpringBoot自动配置1、@Configuration注解具体的可以查看博客(https://blog.csdn.net/weixin_46203713/article/details/120941746)补充@Configuration(proxyBeanMethods = false)配置proxyBeanMethods = true : Full模式(默认)组件之间存在依赖关系的时候使用,保证容器中的组件都是单实例的,IOC容器会检查proxyBeanMethods =
2021-11-02 17:54:01
219
2
原创 一、SpringBoot概述
一、SpringBoot概述1、SpringBoot的特点创建独立的Spring应用内嵌Web服务器自动starter依赖,简化构建配置自动配置Spring以及第三方功能提供生产级别的监控、健康检查以及外部化配置无代码生成,无需编写xmlSpringBoot是整合Spring技术栈的一站式框架SpringBoot是简化Spring技术栈的开发脚手架2、快速构建SpringBoot应用创建一个普通的maven工程,导入pom.xml坐标<!--所有的boot都要引入这个父
2021-11-01 12:15:20
185
原创 五、Spring注解开发IOC
五、Spring注解开发1、Spring注解开发概述Spring是轻代码重配置的框架,配置比较繁重,影响开发效率注解代替xml配置文件可以简化配置,提高开发效率,注解开发是一种趋势SpringBoot中使用的即为注解开发2、@Configuration用来代替xml配置文件@Configuration//标志这是一个配置类//@ComponentScan(value = {"day01"})//用来代替<context:component-scan base-package="day
2021-10-24 23:49:41
85
原创 六、Spring整合Mybatis
六、Spring整合Mybatis1、domain : Student.javapackage com.mnyuan.domain;// id studentName gender classIdpublic class Student { private Integer id; private String studentName; private String gender;}2、controller : StudentController.javap
2021-10-17 20:37:31
54
原创 五、Mybatis的缓存机制
五、Mybatis的缓存机制1、缓存概述MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制Mybatis中有两级缓存一级缓存:默认是开启的,sqlSession级别的缓存,保存在sqlSession的map二级缓存:全局缓存,一个mapper.xml映射文件级别的缓存2、一级缓存与数据库同一次会话期间查询到的数据会放在本地缓存中,以后如果需要获取相同的数据,直接从缓存中获得,不会再去查询数据库一级缓存失效的情况(没有使用到当前一级缓存的情况,还需
2021-10-17 08:21:41
125
原创 四、动态sql
四、动态sql1、动态sql概述动态 SQL 是 MyBatis 的强大特性之一使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦2、if和where标签StudentMapper.java /** * 携带那个条件就根据那个条件查询 */ public List<Student> getSt
2021-10-15 21:51:41
97
原创 三、Select语句
三、Select语句1、环境:Student.javapublic class Student { private Integer id; private String name; private String gender; private Class clazz;}Class.javapublic class Class { private Integer id; private String name; private Li
2021-10-14 18:59:18
76
原创 二、Mybatis的映射文件
二、Mybatis的映射文件1、Dao层的接口public interface EmployeeMapper { /** * 根据id查询employee * @param id * @return */ Employee SelectEmpById(int id); /** * 根据id值和lastName查询employee * 方法传递多个参数时:Mybatis会做一些特殊处理 * Available
2021-10-13 22:41:02
117
原创 一、Mybatis全局配置文件
一、Mybatis全局配置文件1、Mybatis概述Mybatis是支持定制化sql,存储过程以及高级映射的优秀的持久层框架Mybatis避免了几乎所有JDBC代码和手动设置参数以及获取结果集Mybatis可以使用简单的xml或注解用于配置和原始映射,将接口和java中POJO映射成数据库中的记录2、环境搭建相关驱动jar包 <dependences><!-- 数据库驱动--> <dependency>
2021-10-12 21:15:30
76
原创 四、SpringMVC拦截器
四、SpringMVC拦截器1、拦截器HandlerInterceptorSpringMVC中的拦截器类似于ServletAPI中的filter过滤器实现步骤:编写类继承HandlerInterceptor@Componentpublic class FirstInterceptor implements HandlerInterceptor { /** * 在控制器方法执行前执行 * return true : 放行 * return fals
2021-10-12 21:09:45
104
原创 三、SpringMVC报文信息
三、SpringMVC报文信息1、HttpMessageConverterHttpMessageConverter,报文信息转换器,将请求报文转换为java对象,或将java对象转换为响应报文HttpMessageConverter提供了两个注解和两个类型:@RequestBody RequestEntity@ResponseBody ResponseEntity2、@RequestBody@RequestBody可以获取请求体,需要在控制器方法设置一个形参,使用@Request
2021-10-11 22:24:35
251
原创 二、SpringMVC视图
二、SpringMVC视图1、ThymeleafViewSpringMVC中的视图是View接口,视图的作用是渲染数据,将模型Model中的数据展示给用户SpringMVC中视图的种类有很多,默认有转发视图和重定向视图若使用的视图技术为Thymeleaf,则在SpringMVC的配置文件中配置了Thymeleaf的视图解析器,由此视图解析器解析之后所得的是ThymeleafView配置之后,当控制器方法中所设置的视图名称没有任何前缀时,此时的视图名称会被SpringMVC配置文件中
2021-10-08 20:55:54
350
原创 一、SpringMVC请求
一、SpringMVC概述1、什么是SpringMVCSpringMVC是为表述层开发提供的一套完备的解决方案注:三层架构:表述层(表示层)、业务逻辑层、数据层,表述层表示前台页面和后台Servlet基于原生的Servlet,通过功能强大的DispatcherServlet,对请求和响应进行统一处理表述层各细分领域需要解决的问题全方位覆盖,提供全面的解决方案2、搭建SpringMVC开发环境在web.xml中配置DispatcherServlet和springMVC的配置文件&
2021-10-07 21:41:10
128
原创 四、JDBC操作
四、JDBC操作1、spring配置文件<!-- 开启注解扫描--> <context:component-scan base-package="day01.jdbc"/><!-- 读取配置文件--> <context:property-placeholder location="classpath:jdbc.properties"/><!-- 配置druid数据源--> <bean id=
2021-10-06 22:33:20
69
原创 三、AOP
三、AOP1、AOP的概念面向切面编程,利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可复用性,同时提高开发效率简单来说:就是在不修改源代码的情况下,在主干功能中添加新的功能2、AOP的底层使用的是动态代理有接口的情况下,使用JDK的动态代理没有接口的情况下,使用cglb的动态代理3、AOP的相关术语连接点:类中可以被增强的方法,都称为连接点切入点:实际被增强的方法,称为切入点通知(增强):实际增强的逻辑部分被称为通知
2021-10-06 11:37:40
83
原创 二、IOC注解
二、IOC注解1、注解需要导入aop的jar包 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>5.2.12.RELEASE</version> </dependency
2021-10-03 22:30:38
47
原创 一、IOC
一、IOC1、Spring框架介绍Spring是轻量级的开源的javaEE框架Spring有两个核心部分: IOC 和 AOPIOC : 控制反转,把创建对象的过程交给Spring进行管理AOP: 面向切面,不修改源代码进行功能增强Spring特点:方便解耦,简化开发AOP编程支持方便程序测试方便和其他框架进行整合方便进行事务操作降低API开发难度2、导入Spring相关jar包 <dependencies><!-- 日志包
2021-10-01 21:36:35
80
原创 十、Redis
十、Redis1、概念redis是一款高性能的NOSQL系列的非关系型数据库什么是NoSQL?NOSQL=No Only SQL,是一项全新的数据库概念,反之非关系型数据库,解决大规模数据集合多重数据种类带来的挑战NOSQL和关系数据库的比较优点:成本:nosql数据库简单部署,基本都是开源软件查询速度:nosql数据库将数据存储于内存中,关系型数据库将数据存储在硬盘中存储数据格式:nosql是key,value形式、文档、图片形式等多种形式,关系型数据库只支持基础类型
2021-09-29 20:31:41
119
原创 九、JDBC
九、JDBC1、jdbc的概念以及作用是什么概念:Java DataBase Connectivity java数据连接,使用java语言来操作数据库java定义一套操作所有的关系型数据库的规则(接口),各个数据库厂商实现这套接口,提供数据库驱动jar包,我们面向这套接口编程即可,真正执行的代码是驱动jar包的实现类2、DriverManager对象(驱动管理对象)的作用注册驱动:告诉程序应该使用哪个数据库驱动jar DriverManager.registerDriver()Class
2021-09-26 21:43:22
96
原创 四、事务、范式
四、事务、范式1、存储引擎(了解)完整的建表语句:create table tx( id int default null)engine = InnoDB default charset=utf-8;-- 建表的时候,可以指定存储引擎,也可以指定字符集什么是存储引擎?只有mysql中存在这个名称,就是表的存储方式,mysql支持很多存储引擎(存储方式),每个存储引擎都有各自的优缺点,要在合适的时候选择合适的存储引擎查看mysql支持的存储引擎:show engines \G
2021-09-25 20:48:26
57
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人