- 博客(53)
- 收藏
- 关注
原创 七:分布式
Dockerfile是一个文本格式的配置文件,用户可以使用Dockerfile快速创建自定义的镜像。示例:【1】编写镜像#基础镜像#维护者#启动容器运行命令【2】构建镜像docker build -t 镜像名:版本 .注意: .代表当前目录去找Dockerfile1)基础命令-helpdocker network connect 将容器连接到网络docker network create 创建一个网络docker network disconnect 断开容器的网络。
2024-03-19 22:00:55
1001
原创 九:day01_ 消息队列01
特点:一个生产者对应一个消费者,通过队列进行消息传递。该模式使用direct交换机,direct交换机是RabbitMQ默认交换机。【1】说一下什么是MQ答:MQ是消息队列容器,常见的MQ技术有RabbitMQRocketMQ。解决微服务异步通信问题抢票、秒杀类场景:目的只有一个将并行场景转为串行场景来缓解并发压力。消息分发促销活动,需要将商品短链发送各个平台,需要时效不高,但数据量大,可以交给消息队列处理。数据同步:redis、es与mysql数据同步异步处理。
2024-01-16 23:18:22
932
原创 八:分布式锁
可以使用缓存代替数据库实现分布式锁,性能根号。同时多数缓存服务时集群部署,可以避免单点问题。很多缓存服务提供了实现分布式锁的方法和对数据过期自动删除的支持,如Tair的put方法,redis 的setnx方法(Redisson是Redis官方推荐的Java版的Redis客户端)。可以设置超时时间控制锁的释放。使用缓存实现分布式锁的优点:性能好,实现起来较为方便。使用缓存实现分布式锁的缺点通过超时时间来控制所得失效时间不靠谱。优点:有效的解决单点问题、不可重入问题、非阻塞问题、锁无法释放问题。
2024-01-14 15:38:20
951
原创 七:Day07_redis进阶02
Redis事务是一组命令的集合,一个事务中的所有命令都将被序列化,按照一次性、顺序性、排他性的执行一系列的命令。单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断;没有隔离级别的概念:队列中的命令没有提交(exec)之前都不会实际的被执行,也就不存在”事务内的查询要看到事务里的更新,在事务外查询不能看到”。不保证原子性:redis同一个事务中如果有一条命令执行失败,其后的命令仍然会被执行,没有回滚;Redis事务执行的三个阶段开启。
2024-01-14 11:42:38
977
原创 七:Day08_任务调度
Quartz是开源组织在领域又一个开源项目,完全由Java开发,可以用来执行定时任务,类似于。但是相较于Timer, Quartz增加了很多功能:持久性作业 - 就是保持调度定时的状态;作业管理 - 对调度作业进行有效的管理;需要实现的任务类,实现execute()方法,执行后完成任务。包括和。调度器Scheduker:任务调度器,负责基于Trigger触发器,来执行 Job任务。1】简述一下什么是任务调度?任务调度就是按照特定时间规则执行系统某个固定的业务逻辑。
2024-01-14 11:42:23
883
原创 分布式面试题总结
【1】简述一下什么是Nginx,它有什么优势和功能?Nginx 是高性能的 HTTP 和反向代理的服务器,处理高并发能力是十分强大的,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数。Nginx主要提供功能有http服务器反向代理服务器负载均衡服务器动静分离配置缓存数据【2】简述一下什么是正向代理,什么是反向代理正向代理代理的是客户端访问服务端,比如防火墙,反向代理代理的是服务端,等待客户端访问代理服务。具体配置如下:【3】解释一下什么是Nginx的负载均衡。
2024-01-06 18:29:48
1396
原创 七:Day06_redis高级01
redis是远程词典服务器,是一个基于内存的键值型NoSQL数据库。其主要特征如下:键值(key-value)型,value支持多种不同数据结构,功能丰富;单线程,每个命令具备原子性;(6以前只有单线程,之后有多线程)低延迟,速度快(基于内存、IO多路复用、良好的编码);支持数据持久化;支持主从集群、分片集群;支持多语言客户端;RedisTemplate可以接收任意Object作为值写入Redis。只不过写入前会把Object序列化为字节形式,默认是采用JDK序列化。@Bean。
2024-01-03 21:57:27
1090
1
原创 七:Day01_Java9—16新特性
模块系统Java9最大特性。它提供了类似于OSGI框架的功能,模块之间存在相互的依赖关系,可以导出一个公共的API,并且隐藏实现的细节。作用为减少内存的开销。JShell和JlinkJShel是交互式Java编程环境。允许开发者在命令行界面中快速编写和测试Java代 码。Jlink用于生成自定义的Java运行时映像,可以包含或排除特定的模块。不可变集合类工厂方法可以更方便地创建不可变集合。接口中的私有方法接口可以包含私有方法。try-with-resources改进。
2023-12-31 19:54:24
803
原创 六:Day06_Spring Security02
PreAuthorize:表示访问方法或类在执行之前先判断权限,大多情况下都是使用这个注解。注意:必须在启动类@EnableGlobalMethodSecurity中设置prePostEnabled = true在Spring Security 的 自定义配置类( WebSecurityConfigurerAdapter )中使用HttpSecurity 提供的 exceptionHandling() 方法用来处理异常。
2023-12-14 08:57:55
148
原创 六:Day05_Spring Security01
认证:Authentication验证某个用户能否访问该系统。一般要求用户提供用户名和密码,手机号验证码等,系统通过校验来完成认证过程。授权:Authorization用户认证通过后去访问系统的资源,系统会判断用户是否拥有访问资源的权限,只允许访问有权限的系统资源,没有权限的资源将无法访问。两个主要区域是“认证(authentication)”和“授权(authorization)”。这两点也是Spring Security重要核心功能。
2023-12-14 08:57:34
126
原创 六:Day03_Mybatis-Plus
MyBatis-Plus(简称 MP,是由baomidou(苞米豆)组织开源的)是一个基于 MyBatis 的增强工具,它对 Mybatis 的基础功能进行了增强,但未做任何改变,Mybatis-Plus 其实可以看作是对 Mybatis 的再一次封装。ActiveRecord属于ORM(对象关系映射)层,由Rails最早提出,遵循标准的ORM模型:表映射到记录,记录映射到对象,字段映射到对象属性。配合遵循的命名和配置惯例,能够很大程度的快速实现模型的操作,而且简洁易懂。
2023-12-09 17:31:45
645
原创 六:Day02_Spring Boot02
必须定义在application配置文件所在目录中,即只能是 classpath、classpath/config、 root、 root/config 等四个目录之一。配置文件命名是application-xxx。其中xxx即环境名称,如: application-dev、application-test、application-prod等。application配置文件中需要激活相应的环境配置,使用spring.profiles.active=环境名称来激活。或者在启动时,增加启动参数。
2023-12-09 17:31:22
274
原创 六:Day01_Spring Boot01
Spring Boot是Spring公司的一个顶级项目,和Spring Framework是一个级别的。Spring Boot实际上是利用Spring Framework 4 自动配置特性完成。编写项目时不需要编写xml文件。Spring Boot的启动器实际上就是一个依赖。这个依赖中包含了整个这个技术的相关jar包,还包含了这个技术的自动配置,以前绝大多数XML配置都不需要配置了。
2023-11-30 21:57:25
356
原创 Mabitys总结
MyBatis会根据句映射关系把查询到的结果填充到指定结果集类型中。支持方式:auto mapping:自动映射。当列名或列的别名与实体类属性名相同时不需要做额外配置。resultMap:手动定义映射关系。camel case:驼峰命名规则。在学习MyBatis多表查询时其实就是在学习标签和标签。1.如果一个实体类关联另一个实体类的一个对象使用。2.如果一个实体类关联一个实体类的List集合对象,需要使用。这两个标签根据编写的SQL,分为N+1查询和联合查询两种方式。
2023-11-08 20:13:42
366
原创 Spring和SpringMVC总结
Spring: IOC、DI、单例设计模式、循环依赖问题、BeanFactory和ApplicationContext、动态代理设计模式、AOP、Sping声明式事务、Bean的生命周期(非常重要)Springmvc: @RequestMapping注解、Spring MVC 中的转发和重定向(重要)、视图解析器(重点)、静态资源放行、控制单元的参数、@ResponseBody和@RequestBody注解、Spring MVC文件上传和下载、拦截器、SpringMVC运行原理(常见面试题)
2023-11-04 17:29:45
367
原创 五:Day11_SpringMVC03
SpringMVC运行原理(常见面试题)、Spring MVC中包含哪些组件、Spring MVC数据校验、Spring MVC异常处理、跨域、拦截器。
2023-11-04 17:29:09
364
原创 五:Day10_SpringMVC02
Rest(Representational State Transfer:表现层状态转移)是一种软件架构风格,其核心是面向资源的一种设计。何为面向资源,意思是网络上的所有事物都可以抽象为资源,而每个资源都有唯一的资源标识,对资源的操作不应该改变这些标识。通俗讲就是每个资源都有一个url地址,而不是不同的操作有不同的url地址,比如我们对用户信息的增删改查,用户就是资源,增删改查是操作,以前我们是一个操作一个url地址,现在按照Restful的说法,url地址只能有一个。
2023-10-28 11:48:05
55
原创 五:Day09_SpringMVC01
目前我们所写的项目,持久层、业务层的类都放入到Spring容器之中了。他们之间需要注入非常方便,只需要通过@Autowired注解即可。但是由于Servlet整个生命周期都是被Tomcat进行管理的,一个功能对应一个Servlet并且无法把Servlet放入到Spring容器中。所以每次编写Servlet时都需要编写init方法先获取到Spring容器,然后从Spring容器中取出需要使用的Bean。本质为Spring 框架的一个扩展,在Spring官方ZIP包就是一个的jar包。
2023-10-27 20:44:39
54
原创 五:Day07_Spring02
Spring Test 模块整合了一些常见的单元测试工具,例如Junit。整合后可以在测试类中直接使用Spring容器中的内容,把测试类也放入到Spring容器中,测试类里面可以直接使用注解注入容器中的bean对象。同时也可以通过@ContextConfigration注解指定配置文件路径,让测试方法在启动的时候直接加载配置文件。JDK动态代理机制是委托机制,只能对实现了接口的类生成代理,底层通过反射机制实现。(重点)
2023-10-22 16:57:52
70
原创 五:Day05_Mybatis03
在MyBatis框架中只有两种情况:当前表对应另外表是一行数据还是多行数据。转换到实体类上:当前实体类包含其它实体类一个对象还是多个对象。转换到MyBatis的映射文件上:在标签里面使用还是标签就可以。如果一个实体类关联另一个实体类的一个对象使用。如果一个实体类关联一个实体类的List集合对象,需要使用。这两个标签根据编写的SQL,分为N+1查询和联合查询两种方式。两种方式优缺点:联合查询方式:优点:一次查询。缺点:SQL相对复杂。不支持延迟加载。业务装配优点:手动实现,灵活度高。
2023-10-21 17:30:12
125
原创 五:Day04_Mybatis02
实体类定义别名,sql返回结果类型中可以指定为别名1.一个类可以指定多个别名2.使用别名时,不区分大小写1.别名为类名2.使用别名时,不区分大小写MyBatis会根据句映射关系把查询到的结果填充到指定结果集类型中。:自动映射。当列名或列的别名与实体类属性名相同时不需要做额外配置。resultMap:手动定义映射关系。camel case:驼峰命名规则。
2023-10-21 11:36:54
99
原创 五:Day03_Mybatis01
按照面向对象思想对Java SE和Java EE里面的内容进行封装,把一些重复性的代码进行深度封装,在封装同时还添加了一些额外功能,这样可以写更少的代码,实现更强的功能,程序员可以将更多的精力放在业务上。这些封装随着不停的更新更迭就形成了框架(Framework),很多的框架也是开源的。MyBatis 是一款优秀的ORM框架,MVC分层开发中的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。
2023-10-18 09:26:05
43
原创 五:Day06_Spring01
Spring Framework是由Spring团队研发的模块化、轻量级开源框架。其主要目的是为了简化项目开发。Spring Framework前身是interface21,由Rod Johnson于2002年研发,主要是为了不使用EJB下依然能够构建高质量Java EE项目。EJB是当年横行一时的Java EE框架,目前已经属于淘汰技术。1. Spring IoC/DI(常见面试题)IoC控制反转。也被称为DI依赖注入。属于同一件事情的两个名称。容器(Container):放置所有被管理的对象。
2023-10-18 08:35:55
64
原创 五:Day01—Linux虚拟机
Linux是一款操作系统。和Windows操作系统类似。但Linux系统经常用作服务器的操作系统,而Windows作为个人PC的操作系统。
2023-10-08 20:20:02
64
原创 四:Day01_JavaEE:Servlet01
JavaEE(Java Enterprise Edition),Java企业版,是一个用于企业级web开发(不需要使用控制台)平台。最早由Sun公司定制并发布,后由Oracle负责维护。JavaEE平台规范了在开发企业级web应用中的技术标准。在JavaEE平台共包含了13个技术规范(随着JavaEE版本的变化所包含的技术点的数量会有增多)。它们分别是:JDBC、JNDI、EJB、RMI、Servlet、JSP、XML、JMS、Java IDL、JPA、JTA、JavaMail和JAF。
2023-10-07 22:10:40
123
原创 四:Day09—Ajax
概念: Ajax(Asynchronous Javascript And XML)是由浏览器解析运行的基于JavaScript实现的网页局部刷新的技术。作用: 实现了在当前网页中显示新的响应内容。(不会覆盖掉原有内容)特点:使用ajax发起的请求,响应结果不会自动的覆盖原有内容,而是可以在原有页面内容上继续显示Ajax是一门基于JavaScript的技术,由浏览器解析运行,所以是一种前端(客户端)技术简单易用。
2023-10-02 22:38:40
41
原创 四:Day08—jQuery02
一、DOM编程1. 操作文本html() 相当于innerHTMLhtml() 获取文本节点(标签+文本)html(标签) 添加标签,会覆盖原有的所有内容text() 相当于innerTexttext() 获取文本节点(文本)text(文本内容) 添加文本,会覆盖原有的所有内容<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> &
2023-10-02 19:08:49
54
原创 四:Day07—jQuery01
一、jQuery入门1. 定义和特点目前最流行的JavaScript函数库之一,对JavaScript进行了封装。并不是一门新语言,而是将常用的、复杂的JavaScript操作进行函数化封装,封装后可以直接调用,大大降低了使用JavaScript的难度,改变了使用JavaScript的习惯。2. 第一个示例实现隔行变色的效果,在使用jQuery实现效果之前,先使用在HTML中使用class属性直接标记、使用JavaScript来实现动态隔行变色,然后再采用jQuery来实现,可以明显体现到
2023-09-26 20:40:11
67
原创 四:Day05—JSP
指令标签是JSP页面上的一种特殊标签,JSP指令可以用来设置整个JSP页面相关的属性,如网页的编码方式、网页使用的脚本语言、导包等。指令标签的语法: 指令描述定义网页依赖属性,如脚本语言、error页面、缓存需求等等包含其他文件引入标签库的定义因为JSP的本质是Servlet,在JSP文件经过转译之后,生成JAVA代码,在运行时,JSP给我们准备好了九个可以直接使用而不用我们自己去new的对象,这九个对象我们称之为内置对象。
2023-09-21 08:42:02
37
原创 四:Day04_JavaEE_Servlet04
域对象有效范围作用生命周期request域(请求对象)一次请求有效流转业务数据创建:浏览器每次请求,服务器都会重新创建。使用:在请求的Servlet中或者请求转发后的Servlet中使用。销毁:请求响应结束后,该请求对象就会被销毁。Session域(HttpServlet对象)单次会话内有效,多次请求一般用来存储用户状态数据。创建:从第一次发出请求,会话开始使用:一次会话内,浏览器和服务器之间发生多次请求都有效销毁:会话结束,比如:达到最大不活动时间、手动销毁Application域。
2023-09-20 11:58:35
33
原创 四:Day03_JavaEE_Servlet03
区别转发重定向浏览器地址栏发生是否改变否是请求与响应的次数1次请求,1次响应2次请求,2次响应是否共享Request和Response对象是否是否可以通过Request对象传递数据是否速度相对较快相对较慢行为类型服务器内部行为非服务器内部行为适合的操作查询请求增删改请求一个浏览器在服务器中只会创建一个Session对象。不同用户(浏览器)的Session对象之间是互相独立的。
2023-09-17 18:17:20
52
原创 四:Day02_JavaEE:Servlet02
Idea中编写了Servlet,并成功访问后,Tomcat的webapps目录中并没有部署当前访问的项目。项目部署到了idea保存项目的文件夹中。赋值了Tomcat必要文件,并会指定Tomcat到指定的目录中加载项目。好处:每个项目单独管理,单独配置,不相互影响。通过web.xml配置了Servlet所在类的全路径,配置了访问Servlet的映射路径。在服务器启动的时候完成web.xml文件的加载。Servlet接口init()创建Servlet对象后立即调用该方法完成一些初始化工作。
2023-09-12 21:50:10
73
原创 三—04:JDBC
JDBC(Java Data Base Connectivity),是 Java连接数据库的技术。是一种执行SQL的API, 可以为多种关系型数据库提供统一的访问。它是由一组用java语言编写的类和接口组成, 是Java访问数据库的标准规范。//1. 注册驱动(使用反射)//2. 获取数据库连接//3. 获取SQL语句执行对象//4. 执行SQL语句得到结果//5. 遍历ResultSet结果集对象//6. 释放资源。
2023-09-09 14:20:26
120
1
原创 三—03:Mysql03(子查询,TCL,索引,视图等)
索引类似图书的目录,一种数据结构,通过索引可以快速的找到需要查询的内容。索引和数据都是存储在.idb文件(InnoDB引擎)。索引和数据存储在不同的文件中(MyISAM引擎)。索引的级别:const(主键查询) > ref > range > index(扫描全部索引) > all(全表扫描)不要在where后的条件中进行列的运算和函数操作模糊查询时,like‘%xxx%’,放弃使用索引二进行全表扫描。like‘xxx%’,可以使用索引索引级别为range。类型转换会导致索引无效。
2023-09-07 21:59:51
280
1
原创 三—02:Mysql02(DQL、SQL执行流程、多表)
一、DQL查询表中数据二、SQL执行流程1. SQL语句执行流程1.1 执行流程图示1.2 各个组件介绍
2023-09-05 22:01:15
108
1
原创 三—01:MySQL01(DDL、DML、约束)
DDL主要用针对是数据库对象(数据库、表、索引、视图)进行创建, 修改和删除操作。主要包括:CREATE: 创建ALTER: 修改DROP: 删除SHOW:查看。
2023-09-05 21:26:43
125
1
原创 二—18:Java新特性
对象引用::实例方法名类名::静态方法名类名::实例方法名类名::new (也称为构造方法引用)类型[]::new (也称为数组引用)Stream是对容器对象功能的增强,它专注于对容器对象进行各种非常便利、高效的聚合操作或者大批量数据操作。它提供串行和并行两种模式进行汇聚操作,并发模式能够充分利用多核处理器的优势,使用fork/join并行方式来拆分任务和加速处理过程。所以说,Java8中首次出现的 java.util.stream是一个函数式语言+多核时代综合影响的产物。
2023-09-02 11:35:33
249
原创 二—19:JVM虚拟机
垃圾回收器(,简称GC)负责回收JVM运行时数据区的堆内存和方法区中数据。而虚拟机栈、程序计数器、本地方法栈都是根据线程创建而创建,随着线程销毁而销毁,所以不需要进行回收。Launcher作为JAVA应用的入口,根据双亲委派模型,Launcher是由JVM创建的,它的类加载器是启动类加载器(Bootstrap ClassLoader)。ClassLoader是Java中提供的类加载器父类。所有的类加载器都是这个类的子类或子孙类。提供了全局属性parent,这意味着。
2023-09-02 11:12:04
49
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人