Spring学习笔记(一) 一、什么是Spirng框架?Spring框架为java提供了一个综合的基础性开发支持的平台。包含ioc 容器、数据访问、数据集成、aop、测试等模块。二、什么是IOC(控制反转)容器?什么DI(依赖注入)?控制权从开发人员转变为容器,叫控制反转。依赖注入指有依赖关系的类按照依赖关系放入容器中。三、什么是Bean?作用域是什么?生命周期又是什么?四、什么叫自动装配?有几种装配方法?五、Bean的实例过程六、BeanFactory和ApplicationContext的区别七、什么是AOP?
【redis】哨兵模式 redis的单机安装:【redis】liunx安装redis_蜂蜜柚子茶-CSDN博客哨兵模式是redis高可用的一种解决方案。哨兵必须用三个实例取保证自己的高可用,但是哨兵+主从模式是不能保证消息不丢失的。为什么用三个来保证呢?假设现在有两个服务器,第一台有redis主节点M1,和哨兵S1,第二台有redis从节点S2,哨兵S2。如果M1宕机,S1和S2中只要有1个哨兵认为master宕机就可以还行切换,此时哨兵大多数(我理解的大多数的过半)还在运行,那么S1,S2能通过选举,拿出
网页请求复制为curl,然后导入postman调用 一、复制为curl我使用的是谷歌浏览器,首先按F12进入开发者模式,点击Network查看网络请求然后右击请求 -> copy -> Copy as cURL(bash)然后会复制到如下内容二、导入postman首先打开postman,点击import之后会弹框,选择弹框中的Raw text,将复制内容复制到下方,然后点击continue然后点击import即可导入之后就可以使用postman调用啦...
随笔-集合家族 Java 集合框架上面的图展示了整个集合大家族的成员以及他们之间的关系。下面就上面的各个接口、基类做一些简单的介绍(主要介绍各个集合的特点。区别),更加详细的介绍会在不久的将来一一讲解。一、Collection 接口Collection 接口是最基本的集合接口,它不提供直接的实现,Java SDK提供的类都是继承自 Collection 的“子接口”如 List 和 Set。Collection 所代表的是一种规则,它所包含的元素都必须遵循一条或者多条规则。如有些允许重复而有些则不能重复、.
Springboot集成netty实例 一、简介netty是jboss提供的一个java开源框架,netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可用性的网络服务器和客户端程序。也就是说netty是一个基于nio的编程框架,使用netty可以快速的开发出一个网络应用。netty的核心是支持零拷贝的bytebuf缓冲对象、通用通信api和可扩展的事件模型;它支持多种传输服务并且支持HTTP、Protobuf、二进制、文本、WebSocket 等一系列常见协议,也支持自定义协议。netty的模型是基于reac
Springboot集成websocket实例 一、简介WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。 WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。 在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。WebSocket
SpringBoot整合security的登录问题 依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>之后我们启动项目,打开我们的swagger页面,发现自动跳转到以下界面这是由于securi
我对软件设计原则的理解 1. 开闭原则软件实体(class,模块,功能或业务,微服务etc)对修改关闭,对拓展开放。抽象构建框架,实现拓展细节。面向抽象编程,而不是面向具体实现编程。因为抽象相对来说是稳定的,让类去依赖于固定的抽象,所有对于修改来说就是封闭的,通过OO的继承,多态机制就可以实现对抽象体的拓展,通过重写改变固有的方法或者实现新的拓展方法。2. 依赖倒置原则高层实现不应该直接依赖于低层实现,它们应该依赖于共同的抽象(低层接口)。越基础的模块发生变化影响的范围越大。3. 单一职责原则不要存
SpringBoot定义统一的controller返回格式 一.定义接口返回包装类package com.example.auth.filter;import com.fasterxml.jackson.annotation.JsonInclude;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import lombok.experimental.Accessors;@Data@NoArgsConstructor@All
mysql-索引-笔记 为什么用?通过创建唯一索引,保证数据库表的每一行的唯一性。 大大加快数据的检索速度。(创建索引最主要的原因) 帮助服务器避免排序和临时表 将随机IO编程顺序IO 可以加速表和表之间的连接。优点很多,为什么不对表中的每一个列创建一个索引当表中数据增加,删除和修改。索引也要动态维护。降低数据的维护速度。 索引占物理空间,除了数据表占据空间之外,每个索引也要占据物理空间。如果建立聚簇索引,需要的空间会很大。 创建索引和维护需要耗费时间,随着数据量增加而增加。使用索引的注意事项:在经常需
Spring事务--笔记 事务是逻辑上的一组操作,要么都执行,要么不执行。事务能否生效数据库引擎是否支持事务的关键。比如常用的mysql数据默认的使用支持事务innodb引擎。但是,数据引擎变为mysiam,那么程序也就不再支持事务了。事务特性(ACID):原子性:事务是最小的执行单位,不允许分割。要不全部成功,要不全部回滚。一致性:事务执行前后,数据保持一致。隔离性:并发访问数据库时,一个用户的事务不被其他事务所干扰。也就是说多个事务并发执行时,一个事务的执行不影响其他事务的执行。持久性:一个事务被提.
mysql-sql优化--笔记 https://www.jianshu.com/p/663b8f38db9f分析慢查询1.查看慢SQL是否启用,查看命令:show variables like 'log_slow_queries';如果结果为ON则是开启了,如果为OFF则表示禁用了。2.开启慢查询命令:set global log_slow_queries = on; 3.查看是否开启:show variables like 'log_slow_queries';4.查看慢查询参数,即设置超过多...
Zookeeper --笔记 分布式应用程序可以基于 Zookeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。Zookeeper 一个最常用的使用场景就是用于担任服务生产者和服务消费者的注册中心(提供发布订阅服务)。服务生产者将自己提供的服务注册到Zookeeper中心,服务的消费者在进行服务调用的时候先到Zookeeper中查找服务,获取到服务生产者的详细信息之后,再去调用服务生产者的内容与数据。如下图所示,在 Dubbo架构中 Zook..
Mybatis问题解释? 1.什么是Statement对象?Statement对象,用于执行不带参数的简单SQL语句2.什么是Mybatis?1.半ORM,内封装JDBC,只关注sql语句。不需要处理加载驱动,创建连接,创建statement等繁杂的过程。直接编写sql,灵活度高。2.使用xml和注解来映射原生信息。将POJO映射成数据。几乎避免了所有的JDBC代码和手动设置参数和获取结果集。3.通过xml和注解将要执行的各种statement配置起来,通过java对象和statement中的sql的动态参数进行