自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 RocketMQ详解

RocketMQ简介如图所示为RocketMQ基本的部署结构,主要分为NameServer集群、Broker集群、Producer集群和Consumer集群四个部分。大致流程:Broker在启动的时候会去向NameServer注册并且定时发送心跳,Producer在启动的时候会到NameServer上去拉取Topic所属的Broker具体地址,然后向具体的Broker发送消息为了消除单点故障,增加可靠性或增大吞吐量,可以在多台机器上部署多个nameserver和broker,并且为每个broke

2022-04-01 19:24:58 2910

原创 linux项目部署、Nginx详解

Linux环境部署远程连接工具在实际开发中,Linux服务器都在其他的地方,我们要通过windows客户端工具远程去连接Linux并操作它,连接Linux的windows客户端工具有很多,企业中常用的有secureCRT、Putty、xshell、SSH Secure等。​ 我使用secureCRT客户端工具进行连接Linux操作系统,该工具是图形化界面和命令行窗口集一身客户端工具。Linux软件安装介绍Linux上的软件安装有以下常见的几种方式1. 二进制发布包(相当于压缩包)

2022-03-29 22:29:22 4148

原创 SpringBoot详解(1)

微服务阶段javase:oopmysql:持久化html+css+js+jquery+框架:视图(框架不熟练)javaweb:独立开发mvc三层架构网站(较为原始)ssm:简化了我们的配置流程。(但是随着项目迭代,配置文件臃肿复杂,依赖管理混乱影响项目部署上线速度)上边的技术框架项目都是打war包部署到tomcat中(而springboot打jar包,且内置tomcat)于是就有了接下来的spring再简化,诞生了springboot微服务架构。服务越来越多——>便有了SpringC

2022-03-16 00:33:23 784

原创 RabbitMQ详解

消息中间件MQ(Message Queue)简介  消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。对于消息中间件,常见的角色大致也就有Producer(生产者)、Consumer(消费者)。  消息队列中间件是分布式系统重要组件,主要解决应用解耦、异步消息、流量削峰等问题,实现高性能,高可用,可伸缩和最终一致性架构。数据库: mysql orcale      redis   

2022-03-14 20:12:52 3238

原创 Mybatis逆向工程、Quartz框架的定时任务管理详解、Cron表达式

Mybatis逆向工程  mybatis是目前很流行的持久层框架,很多企业都在采用。但是其复杂繁琐的配置,重复性的实体类创建等等,消耗了程序员大量的精力,同时有些地方如果一个细小的疏忽,可能导致最终功能运行失败。例如:在几十个字段的表中,某一列的列名配置疏忽。  基于此,mybatis推出了一套jar包,可以依据我们设计好的数据库表,自动生成pojo、mapper以及mapper.xml。有了逆向工程,便大大缩减了我们的开发时间。本章节将介绍借助idea的方式实现mybatis的逆向工程。环境搭建(

2022-03-11 18:44:10 409

原创 集群和分布式的区别,软件架构的演化过程,Apache Dubbo详解

集群和分布式的区别  集群是通过提高单位时间内执行的任务数来提升效率,分布式是以缩短单个任务的执行时间来提升效率的。 举个例子:&emsp: 例如: &emsp: 一个数据库里边有用户表、订单表、支付表。这几张表我放在一个数据库里。但是我怕存放着数据库的这台服务器挂了。于是我从这台主库里拷贝所有的数据到了另外几台服务器里。(主从数据库里的数据是一样的。)当主表的服务器挂了立马启用从表的服务器,这是集群。 &emsp: 又比如我用户表、订单表、支付表里各有1亿条数据。这时访

2022-03-10 19:10:58 1723

原创 声明式事务、SpringMVC详解

声明式事务  开发者采用配置的方式来实现事务的控制,业务代码和事务代码实现解耦合,使用的就是上一篇的AOP思想。  都需要定义一个事务管理器,都需要导入spring-aop和aspectjweaver两个jar包事务的传播行为事务传播行为指的就是当一个业务方法被另一个业务方法调用时,应该如何进行事务控制。业务层A方法,调用业务层B方法【主要角色】* REQUIRED【必须】默认值 运行的时候必须有事务 A方法调用B方法,如果A方法没有事务,B方法创建一个事务,如果A方法有事务,那么B方法直

2022-03-09 17:41:31 493

原创 JDK、CGLIB动态代理,SpringAOP详解。

SpringAOP介绍aop:面向切面编程,跟上篇的IOC一样它也不是一种技术而是一种思想,解决:在不破坏源代码的情况下,实现对业务方法的增强.可以减少重复代码,提高代码重用性,让我们开发者只关心核心业务逻辑的代码常见的应用场景:性能测试事务管理日志输出…aop思想底层实现技术:JDK、CGLIB根据是否有接口选择使用其中一种技术.相关术语* target:目标对象 * proxy:代理对象 * joinPoint:连接点,目标对象的所有方法* pointcut:切点,需要

2022-03-08 16:19:31 425

原创 Sring-IOC控制反转(详解)

Sring IOC介绍控制反转(inverse of control) 这个不是什么技术,而是指的一种思想。它的目的是直到我们设计出更加松耦合的程序。控制:在java中指的是对象的控制权限(创建、销毁)反转:指的是对象控制权由原来 由开发者在类中手动控制 反转到由Spring容器控制一句大白话:bean的创建和销毁交给spring容器管理IOC大概的原理pom.xml:<dependency> <groupId>dom4j</groupId>

2022-03-07 19:12:30 551 1

原创 Linux详解

Linuxwindows问题个人用户正版windows需要收费系统长时间运行不稳定,变慢,容易死机windows常招到病毒攻击linux优点个人用户正版Linux不需要收费(centos所有都是免费)系统长时间运行稳定,不会变慢,不容易死机Linux不常招到病毒攻击,也很难攻击  总之,做为一个后端程序员,在windows中开发完程序后,得部署到一个相对比较安全稳定的服务器中运行,Linux就是最佳的选择。Linux介绍  Linux是基于Unix的开源免费的多用户

2022-03-06 21:08:09 537

原创 redis击穿、雪崩、穿透解决方案

Redis击穿redis缓存击穿是指某一个非常热点的key(即在客户端搜索的比较多的关键字)突然失效了,这时从客户端发送的大量的请求在redis里找不到这个key,就会去数据里找,最终导致数据库压力过大崩掉。解决方案:1.将value的时效设置成永不过期这种方式非常简单粗暴但是安全可靠。但是非常占用空间对内存消耗也是极大。个人并不建议使用该方法,应该根据具体业务逻辑来操作。2.使用Timetask做一个定时任务使用Timetask做定时,每隔一段时间对一些热点key进行数据库查询,将查询出的结

2022-03-05 22:37:29 5404 3

原创 Redis、Redis持久化、Jedis详解

Redis将一些常用的且不常改变且不敏感的数据放入redis(缓存).可以减少和关系型数据库的交互.提供程序的效率 。1 NoSqlNoSQL,泛指非关系型的数据库,NoSQL即Not-Only SQL,它可以作为关系型数据库的良好补充。互联网特点:高并发、高性能、高可用、海量数据传统的关系数据库就出现了性能和扩展的瓶颈,非关系型数据库应时而生,解决了互联网三高和海量数据的问题NoSQL和关系型数据库是互补关系,在各自的应用场景都有自己特点,一般情况下我们使用关系数据库来持久化数据,对一切热

2022-03-05 17:04:55 560

原创 lombok配置、svn版本控制软件详解

lombok配置通过注解的方式给实体类添加get/set方法,构造器(无参或者全参),生成toString(还可以设置那些字段不生成到toString方法)@Data : 给实体类添加get/set方法,构造器(无参),生成toString(全部字段)了解:@AllArgsConstructor //生成全参构造器 只有全参构造器了解:@NoArgsConstructor //生成无参构造器这个玩意我不推荐使用,存在代码污染问题.只有团队中有一个人使用了lombok插件,所有人就必须使用.

2022-03-04 17:25:59 493

原创 Maven详解

Maven简介什么是MavenMaven在美国是一个口语化的词汇,代表专家、内行的意思。一个对maven比较正式的定义是这样讲的Maven 是一个项目管理工具,它包含了一个项目对象模型 (POM: Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段中插件(plugin)目标的逻辑 。maven能解决什么问题可以用更通俗的方式来说

2022-03-03 22:02:36 3245

原创 MyBatis嵌套查询、加载策略-延迟加载(懒加载)、一级二级缓存

嵌套查询为了解决查询时候带来的问题#多表查询SELECT * FROM tbl_user tuLEFT JOIN tbl_account ta ON ta.uid=tu.id#内连接 外连接 子查询 : 嵌套查询其实跟子查询差不多#得到用户信息SELECT * FROM tbl_user;#还希望得到账户信息SELECT * FROM tbl_account WHERE uid = 2;#嵌套查询其实就是将sql语句分开成两条sql语句执行即可一对一嵌套查询查询账户 将与之相

2022-03-03 16:13:01 453

原创 MyBatis详解(二)模糊查询#{}和${}区别、动态sql、多表关系

模糊查询#{}映射文件:<!-- //根据名称模糊查询 public List<TUser> findByName(); parameterType="" 一个参数可省略不写 写的话 全限定类名 SELECT * FROM USER WHERE username LIKE '%王%'; --> <select id="findByName" resultType="com.llz.domain.TUser" parame

2022-03-02 20:31:15 1123

原创 MyBatis详解(一)

MyBatis概述jdbc问题代码冗余,操作复杂需要执行指定的sql,传入执行的参数即可。mybatis的作用:简化我们操作数据库的代码什么是框架框架: 其实就是对java代码的一些封装 (骨架-人家已经写好一部分代码)所谓的框架, 百分之九十基本都是 半成品框架( 拿到框架的代码 不能直接使用 还需要自己做简单的修改 )SSM: spring springmvc mybatis 非常重要(开发要用的东西)ORM映射ORM :对象关系映射对象关系映射(Object Re

2022-03-02 14:50:01 495

原创 jdbc、PreparedStatement预处理对象、连接池详解

jdbc概念操作数据库有三种方式cmd 操作工具操作(sqlYog ,navicate )通过java的方式操作 数据库jdbc :java中用来操作数据库的 一种技术 Java DataBase Connectivity (java的数据库连接)JDBC由来jdbc的含义 :接口概念1.jdbc的接口中api是什么2.导入驱动jar包jdbc快速入门1.数据库CREATE DATABASE day06;USE day06;CREATE TABLE `user

2022-03-01 22:48:24 922

原创 MySQL优化

SQL优化插入数据时的sql优化(insert优化)1.执行insert语句时,如果需要插入大量数据。需采用批量插入的方式。(如果是大量数据我们需要插入,选择了单条数据的插入方式,每一次insert我们都需要跟数据库建立连接,进行网络传输。这样太损耗其性能,效率低下。所以大量数据插入我们采用批量插入的方式传输数据。)#notes:就算是批量插入建议每次插入的数据在500-1000条是合适的insert into tb_test values(1,'tom'),(2,'cat'),(3,'jerry

2022-03-01 18:21:14 166

原创 MySQL事务、MySQL索引、MySQL索引数据结构详解

事务DDL : 操作表,库 DCL : 授权 DML : 增删改数据 DQL : 查询TCL : 数据库事务语言#前期准备CREATE TABLE account( #账户id INT PRIMARY KEY AUTO_INCREMENT ,username VARCHAR(32) ,money INT);INSERT INTO account VALUES(NULL , ‘jack’ , ‘1000’);INSERT INTO account VALUES(NULL ,

2022-02-27 21:36:58 681

原创 mysql多表查询、子查询、函数详解

多表查询交叉查询##########交叉查询(没用)或者笛卡尔积查询:多个表的数据的乘积#问题:大量数据的冗余 , 在多表查询中 多表查询建立在笛卡尔积的基础上##语法:select * from A , B, C,D.....SELECT * FROM dept , emp;SELECT COUNT(*) FROM dept , emp;内连接###########显示内连接#语法: select * from A inner join B on 连接的条件 #

2022-02-25 16:50:05 431

原创 mysql详解(2)

高级查询(重要)排序(重要)#2.排序查询(将查询出来的数据 进行排序)#desc 降序 asc 升序 默认值 可以不写#语法: select * from 表名 order by 排序的字段 排序的方式,排序的字段 排序的方式# 2.1 查询所有数据,使用年龄降序排序SELECT * FROM student3 ORDER BY age DESC;# 2.2 查询所有数据,在年龄降序排序的基础上,如果年龄相同再以数学成绩降序排序SELECT * FROM student3 ORDER B

2022-02-24 20:46:05 304

原创 mysql基础语法(1)

mysql概念数据保存的仓库软件安装启动mysql1.windows版本2.命令行版本(管理员身份)net start mysql 启动mysqlnet stop mysql停止mysqlSQL概念使用一种全新的语法(语言) ,操作数据库 操作数据库表 操作数据库中的数据sql : 是有方言的 , 每个数据库都有自己的独立的特点, 但是大部分的内容是一致的官方规定四种sql语言DDL(Data Definition Language) 数据定义语言 用来定义数据库对象:数

2022-02-24 16:58:14 243

原创 mvc中web层filter过滤器和listener监听器的详解

web层FilterWeb核心中一共涉及的三大技术Servlet : server applet 服务器端的小程序(主要处理请求响应的部分)Filter: 过滤器 , 过滤: 将自己所需要的内容留下 不需要的内容剔除Listener : 监听器概述需要配置web.xml(重点)filter创建步骤创建类实现javax.servlet.Filter的规范(接口)/** * 1. 创建类 * 2. 实现javax.servlet.Filter的规范(接口) * 3. 通知tom

2022-02-23 17:47:39 575

原创 jstl中if语句和for循环语句、mvc三层粗讲

jstljstl其实是取代了脚本元素中的逻辑操作 例如 - 循环 分支(if)el + jstl 取代了脚本元素jsp中 html代码 和java代码不可以混搭 必须分开 (编写的难度复杂)jstl: 标签标签库 , 就是一套接口 , 定义的是方法重要:接口是sun公司定义的 , 需要导入接口的jar包 , 还需要导入实现类的jar包。在jsp中引入jstl的jar包<%-- taglib 专门用来引入第三方类库 prefix=“别名 , 取值无所谓(建议都取名为c)” uri

2022-02-22 19:28:02 577

原创 jsp和el表达式详解

jsp&elJSP(JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。访问servlet的问题: 页面出现白板 , 我们希望让页面更好看 , 需要修改响应体, 代码及其复杂jsp用来替换html存在 , jsp当作html一模一样使用 也可以编写html代码 , jsp用来作为servlet的响应体部分

2022-02-22 15:49:56 1307

原创 会话&cookie&session详解、域对象区别

会话会话: 当浏览器打开,访问到服务器 表示会话开始会话进行中: 浏览器和服务器之间进行通信(一次通信 多次通信)会话结束:当浏览器关闭 , 会话结束会话的问题:会话中产生的数据 需要保存会话指的是浏览器和服务器之间交互的一个过程, 会话中必然会产生数据,有效数据和无效数据, 有效数据可能需要保存 , 保存的位置内存, 硬盘. 我们可以存在浏览器端 或者 服务器端会话技术会话技术:​ 作用:保存数据​ 浏览器端的技术: cookie​ 服务器端的技术: sessioncookie会

2022-02-21 15:32:42 578

原创 Request对象详解,重定向和请求转发区别,BeanUtils用法

Request对象行GET http://localhost:8080/day04/a_form.html?username=jack&nickname=1234HTTP/1.1POST http://localhost:8080/day04/a_form.html HTTP/1.1protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,

2022-02-20 19:26:27 544

原创 ServletContext,Response详解

ServletContextServletContext官方叫servlet上下文。服务器会为每一个工程创建一个对象,这个对象就是ServletContext对象。这个对象全局唯一,而且工程内部的所有servlet都共享这个对象。所以叫全局应用程序共享对象。(项目一启动,servletcontext初始化)ServletContext :1.获得项目下的资源 获得get 赋值setprotected void doGet(HttpServletRequest request,

2022-02-20 15:49:15 706

原创 servlet详解

servletserv let:server服务器 applet应用(小程序)servlet表示服务器中的小程序。普通的Java类和servlet的区别在哪儿:一个普通的Java类是不可以被访问的 只有servlet程序才可被访问。servlet程序必须实现一个接口(Servlet)Java类任何时候都可执行,servlet必须放在tomcat容器才可执行。servlet2.5版本创建JavaEE的应用(JavaSE没有前台页面)JavaEE(WEB程序 含有前端页面)创建servl

2022-02-19 15:57:01 1352

原创 tomcat概述,http协议简述

浏览器和服务器之间交互服务器:其本身就是一台电脑(机器)只不过安装了特殊程序。Tomcattomcat是一款服务器软件,只要安装了tomcat这台机器就是服务器。tomcat是一个绿色版本程序(解压即安装),基于Java(前提,设置Java的jdk)1.windows的安装2.idea中的安装软件架构B/S :browser/server :浏览器服务器模型 ,京东 , 淘宝, 百度网站C/S : client / server :客户端服务器模型 , 王者荣耀, LOL 穿越火线

2022-02-17 17:42:04 1001

原创 Ajax异步通信

Ajax概述1.作用介绍(理解)Ajax 即"Asynchronous Javascript And XML"(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用 Ajax)如果需要更新内容,必须重载整个网页页面。2.适用场景(理解)检查用户名是否已经被注册省市二联下拉框联动内容自动补全3.同步请求和异步请求

2022-02-15 21:52:57 704

原创 Base64j加密解密、动态代理、正则表达式、单例多例设计模式、枚举、工厂设计模式

Base64的加密和解密(jdk8新特性)(重点)/* java.util.Base64 该类仅由用于获得Base64编码方案的编码器和解码器的静态方法组成。 作用: 使用Base64里边的编码器对数据进行编码(加密) 使用Base64里边的解码器对数据进行解码(解密) 静态成员方法: static Base64.Encoder getEncoder​() 获取加密器 static Base64.Dec

2022-02-13 17:18:42 598

原创 XML介绍

XML什么是XMLXML 指可扩展标记语言(EXtensible Markup Language)标记:也叫标签,有固定的使用格式<开始标签>标签体</结束标签>可扩展:标签的名称自己定义,随意<Person>aaa</Person><afdsafdsafdsafsa>adfadsfads</afdsafdsafdsafsa><a>aaaa</a>XML 是 W3C (万

2022-02-11 15:58:32 1315

原创 反射&注解

反射类加载器类的初始化创建类的实例类的静态变量,或者为静态变量赋值类的静态方法使用反射方式来强制创建某个类或接口对应的java.lang.Class对象初始化某个类的子类直接使用java.exe命令来运行某个主类/* 类的初始化(类什么时候进入到内存中) */public class Demo01 { public static void main(String[] args) { //1.使用java.exe运行某个类的时候 //

2022-02-10 16:53:10 277

原创 TCP通信的 BIO(同步阻塞),NIO(同步非阻塞),AIO(异步非阻塞)三种通信方式

Channel(通道)ServerSocketChannel和SocketChannel创建连接同步阻塞实现/* 实现同步非阻塞的服务器 相关的类: java.nio.channels.ServerSocketChannel:针对面向流的侦听套接字的可选择通道。 获取对象的方式: static ServerSocketChannel open() 打开服务器套接字通道。 成员方法: ServerSocketChannel

2022-02-09 20:39:56 835

原创 Junit单元测试,BIO、NIO、AIO概念、Buffer类,Channel通道

单元测试Junit介绍Junit是一个Java语言的单元测试框架,简单理解为可以用取代Java的(部分)main方法。Junit属于第三方工具,需导入jar包后使用。Junit基本使用/* Junit的作用:可以单独的运行某一个方法 Junit的使用步骤 1.导入junit的jar包 2.在要执行的方法上添加一个@Test注解 3.选择方法左边的绿色三角或者右键选择方法,选择run 方法名称,运行方法 选择类左边的绿

2021-09-01 00:50:19 185

原创 网络编程、TCP通信文件上传

网络编程入门软件结构C/S结构:全称为Client/Server结构,是指客户端和服务端结构。常见的程序有QQ、迅雷等软件。B/S结构:全称为Browser/Server结构,是指浏览器和服务器结构。常见的有谷歌、火狐等软件。这两种架构各有优势,但无论哪种架构,都离不开网络的支持。网络编程:就是在一定的协议下,实现两台计算机的通信的程序。网络通信协议udp:面向无连接的协议,通信的双方不用建立连接,可以直接发送数据。好处:效率高弊端:不安全,容易丢失数据tcp:面向连接的协议,客户端和服

2021-08-30 00:54:41 465

原创 缓冲流、转换流、序列化流、装饰设计模式、comms-io工具包

缓冲流概述BufferedInputStream:字节缓冲输入流/* java.io.BufferedInputStream:字节缓冲输入流 extends InputStream 继承自父类共性的成员方法: - public void close() :关闭此输入流并释放与此流相关联的任何系统资源。 - public abstract int read(): 从输入流读取数据的下一个字节。 - public int read(byte

2021-08-21 22:25:03 127

原创 字符流、IO资源异常处理、Properties集合、ResourceBundle工具类,打印流

字符流使用字节输入流去读包含中文的文件/* 使用字节输入流读取含有中文的文件 文件的编码GBK:一个中文占用2个字节 文件的编码UTF-8:一个中文占用3个字节 */public class Demo01FileInputStream { public static void main(String[] args) throws IOException { FileInputStream fis = new FileInputStrea

2021-08-17 00:24:51 161

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除