自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【阿里云服务器数据迁移】 同一个账号 不同区域服务器

假如说一台云服务器要过期了,现在新买了一台,有的人会烦恼又要将重新在新的服务器上装环境,部署上线旧服务器上的网站项目, 但是不必烦恼,本文将介绍如何快速将就旧的服务器上的数据迁移到新的服务器上. 包括所有的环境和网站项目噢!(2) 回到旧服务器实例 ,自定义镜像正在创建中,等待创建完成.(7) 完成之后, 服务器重启, 数据迁移就完成了!(3) 镜像创建完毕后, 点击右侧的复制镜像 .选择自定义镜像,在选择刚刚复制的镜像即可.(6) 进入之后 , 选择自定义镜像。(1) 创建旧服务器自定义镜像。

2024-01-24 17:33:03 1417

原创 【仿网易云H5部署】Nodejs后台 + uniapp前台 部署

编写项目过程中,使用的是本地的api,但是现在要调用服务器上的api , 所以在部署之前一定要先修改调用api 的部分代码。(1) 百度搜索宝塔面板, 复制安装脚本,我的云服务器的linux发行版是Centos ,复制第一个就可以.,根据给的username和password就可以进入宝塔面板,打开软件商店,下载PM2管理器和Nginx。连接成功之后, 输入刚刚复制的脚本安装宝塔面板.安装之后,会显示宝塔面板的登陆账号和密码。(4) 网易云音乐的API是nodeJS项目, 先下载到本地. 然后压缩一下.

2024-01-24 16:53:08 1410 1

原创 【Spring AOP】 动态代理

(SpringBoot2.x之后,默认使用的是CGlib代理 , 通过设置spring.aop.proxy-target-class=false 可以改成JDK代理 )在程序运行前,代理类的.class文件就已经存在了 (在出租房子之前,中介就已经做好了相关的工作,就等租户来租房子了)作用就是提供一个代理类,让我们在调用目标方法的时候,不再是直接对目标方法进行调用,而是通过代理类间接调用.代理模式可以在不修改被代理对象的基础上,通过扩展代理类,进行一些功能的增强.

2023-12-16 18:35:32 179

原创 【Spring】 AOP

Spring两大核心思想:1.IoC2.AOP一.AOPAOP面向切面编程。

2023-12-15 17:21:08 194

原创 【Https】工作流程

Https协议是由SSL (安全套接层) + HTTP协议 构建的可进行加密传输 , 身份认证的网络协议 , 要比HTTP协议安全 , 可有效防止数据在传输过程中被篡改. 虽然不是绝对安全的 , 但是它大幅度增加了黑客进行中间人攻击的问题.

2023-12-14 09:32:46 331

原创 【Mybatis】动态sql

使用场景:在xml映射文件中配置SQL时,有时会存在很多重复的片段,此时就会存在很多冗余的代码.此时我们可以对重复的代码片段进行收取,将其用。• prefixOverrides:表⽰整个语句块要去除掉的前缀。• suffixOverrides:表⽰整个语句块要去除掉的后缀。注意if标签中的test参数是传入对象中的属性,不是数据库字段。• prefix:表⽰整个语句块,以prefix的值作为前缀。• suffix:表⽰整个语句块,以suffix的值作为后缀。.然后再根据该<sql>标签的id,用。

2023-11-26 13:25:04 176

原创 【Mybatis】预编译/即时sql 数据库连接池

而使用数据库连接池,程序启动时,会再数据库连接池中创建一定数量的Connection对象,当客户请求数据库连接,会从数据库连接池中获取Connection对象,然后执行sql,执行完毕之后再把Connection归还给连接池.如果不适用数据库连接池,每次执行sql语句,都要先创建一个连接,然后再执行sql语句,执行完还要关掉连接对象释放资源,这种重复的创建连接,销毁连接会比较消耗资源.对于#和$,他们有不同的使用场景.有的情况下,使用#是正确的,而有的情况下,使用#却会报错.

2023-11-26 13:04:24 1159 1

原创 【Mybatis】基础增删改查

Mybatis会自动的根据数据库的字段名和Java对象的属性名,进行映射,如果名称一样就进行赋值。灰度发布:是指发布环境 . 比如发布环境有200台,发布的时候是一批一批的发布 .通常在刚开始的时候发布1台,也就是观察一段时间后,如果没有问题,继续下一批.在需要写单元测试的类中,右键点击generate,选择Test。就是返回的类型,不管返回的是对象还是list,此处定义的都是。如果只有一个参数, sql的名称可以是任意的.,比如这里返回的是UserInfo类型的数据.来进行数据库字段名和类属性的映射.

2023-11-25 21:18:45 220

原创 【Spring日志】

常见的日志框架有 log4j , logback , 一个程序常常需要不同的日志框架, 而不同的日志框架的API和配置文件不同, 如果多个日志框架共存,就要维护多套配置文件,而且如果更换日志框架,还必须修改代码 , 这个过程很容易产生冲突 .Slf4j不同于其他的日志框架,它不是一个真正的日志实现,而是一个对日志框架制定的一种规范,标准,接口. 所以Slf4j并不能独立使用,需要和具体的日志框架配合使用.这是日志的主要用途,通过查看日志,我们可以定位问题发生的位置,从而快速的发现问题,分析问题.

2023-11-24 17:39:39 250

原创 【Spring配置】properties & yml配置文件

不管是properties和yml配置文件,配置和读取不同类型的数据和null都是一样的. 只是两中配置文件的语法格式有所不同 .

2023-11-24 16:47:45 992

原创 【Spring】 IoC&DI

Controller , @Service 和 @Repository ⽤于更具体的⽤例(分别在控制层, 业务逻辑层, 持 久化层), 在开发过程中, 如果你要在业务逻辑层使⽤ @Component 或@Service,显然@Service是更 好的选择.由于层层的依赖关系,程序的耦合度非常高,此时如果我们想改变位于底层的轮胎的大小,或者增加轮胎的属性,整个调用链上的所有代码都需要修改.这当然是是一个问题.如果我们转变思路:先根据汽车的样子设计车身,再根据车身设计底盘,根据底盘设计轮子. 这个时候,

2023-11-23 21:34:31 245

原创 【SpringMVC】 三层架构

MVC模式是把整体的系统分成了 Model(模型), View(视图)和Controller (控制器)三个层次,也就是将⽤⼾视图和业务处理隔离开,并且通过控制器连接起来,很好地实现 了表现和逻辑的解耦,是⼀种标准的软件分层架构。⽬前现在更主流的开发⽅式是 "前后端分离" 的⽅式, 后端开发⼯程师不再需要关注前端的实现, 所以对 于Java后端开发者, ⼜有了⼀种新的分层架构: 把整体架构分为表现层、业务逻辑层和数据层. 这种分层⽅式也称之为"三层架构", 将交互界⾯, 业务处理和数据库操作的逻辑分开.

2023-11-23 20:24:14 647

原创 【SpringMVC】 对请求的不同响应

此时响应的数据类型conten_type是application/json , 也就是对象转化了json数据.只有加上这个注解,Spring才会帮我们管理这个代码.后续我们访问时才能访问到.@Controller 和 @RestController的区别。等同于 @Controller+ @ResponseBody。随着前后端分离,后端不处理页面,就返回页面所需要的数据。返回的数据中包含的html标签会直接被浏览器解析.本文学习如何运用不同的注解来返回不同的响应.表示这个类下的所有方法返回的都是数据 .

2023-11-23 19:33:55 660

原创 【SpringMVC】 参数传递

使用了重命名注解之后,就是一个必传的参数,否则会报错. 但是也可以设置required为false来设置该参数为。由于现在的项目都实现了前后端分离,后端开发人员不必编写前端页面,所以也就没有了view视图层.参数是请求里的内置对象.每个请求都有内置对象,如果需要就可以写,不需要就可以不写 .因此,view又有了新的解释,之前返回的是试图,现在返回的是。, 是一种轻量级的数据交互格式 , 本质是一个对象字符串.http响应成功的情况下,业务的响应分为不同的状态.它是一种思想 , 它把一个项目分成了三个部分.

2023-11-23 15:05:54 474

原创 【SpringBoot】 环境准备

由于中央仓库的下载速度较慢 , 现在一些企业为了提高下载速度. 有自己的私有服务器 , 一般是企业的. 通常具有一定权限.* 如果从私服找到了,就返回给本地仓库, 再返回给项目.如果找不到 , 本地仓库就会到中央仓库去下载,并且保存到本地仓库. 然后再返回给项目.如果项目中引入的多个相同但版本不一致的依赖. 就可以使用依赖排除删掉冲突的依赖.springboot是基于spring的一个框架,为了简化spring项目的开发.企业中说的spring,一般指的是spring全家桶 .

2023-11-17 14:33:54 231

原创 【JVM】Java虚拟机

Java程序最开始写的是一个.java文件,编程成.class文件.运行java程序的时候,JVM会读取.class文件,把文件的内容放到内存中,并且构造成.class对象(类对象) . 也就是把类从硬盘文件中,加载到内存中.有些情况,不方便重启,就可以打补丁,通过一些方法把旧版本的类给卸载掉,直接用加载好的新的类替换,不重启服务器,也可以更新代码 .而可达性分析,消耗的是时间,并不会引入额外的空间开销,但是进行上述的遍历,需要消耗时间.如果释放,就可能会破坏原有的连续性,导致有内存,但是申请不了.

2023-11-17 12:38:51 625

原创 【Linux】一

本文使用的是云服务器来获取Linux环境 (使用虚拟机同样可以学习使用命令), 并且介绍了常用的Linux 命令.获取Linux环境使用xshell连接到云服务器1.新建会话 输入主机号(云服务器的外网ip)2.输入用户名/密码centos的用户名:root密码就是在后台设置的3.成功进入~描述的当前所处的目录位置它是一个特殊的目录,表示该用户的home目录Linux命令尽管Linux命令有很多,但是日常工作中,常

2023-11-16 17:16:17 268

原创 【博客系统】 二

1.云服务器安装的mysql是8.0的版本,所以代码中引入得mysql驱动包也要是8.0的版本.2.阿里云云服务器的插件文件安装mysql的时候,安装之后无法启动,后来发现是服务器缺少插件, 使用yum命令安装了libaio之后就好了3.xshell拖动不了文件/拖入无法加载4.安装解压缩命令解压unzip 压缩文件5.ctrl+f5强制刷新浏览器缓存。

2023-11-16 10:41:16 264

原创 【博客系统】 一

后端将从数据库读取到的对象转换为json字符串,转成的json字符串就是根据Blog对象的getter方法来完成的 ,jackson会自动调用getter方法把得到的结果作为json字符串中属性的值. 因此问题出在posttime的getter方法上,当浏览器发起一个形如blog的http请求时,服务器就会调用查询数据库,并获取到数据库中的数据,然后转换为json格式的字符串,再返回给前端,前端拿到数据之后,回调函数进行遍历数据,依据返回的数据构造出html片段。不存在会话就创建,存在就查询;

2023-11-16 09:21:18 146

原创 【Servlet】 四

本文主要介绍了cookie和session的区别和联系 .一.cookie1.cookie是浏览器在本地持久化存储数据的一种机制cookie的数据从哪里来服务器返回给浏览器的cookie的数据什么样cookie中是键值对结构的数据,并且这里的键值对都是程序员自定义的cookie有什么作用cookie可以在浏览器存储一些临时性数据,其中最典型的一种是用方式,就是永存存储身份标识cookie到哪里去cookie的内容会在下次访问该网站的时候,自动被带到http请求中cookie怎么存的。

2023-11-09 11:28:50 133

原创 【Servlet】 三

当输入内容, 点击提交 , 浏览器就会根据输入的内容构造成一个js对象,然后会将js对象转换为json字符串 , 然后浏览器通过http请求将这个字符串发送给服务器;服务器会将请求中的json字符串,通过key匹配到的value赋值给对象相应的属性,转换为对象 , 接着服务器将这个对象存储到数据库.通过对象的属性,就能获取到页面的内容;3.函数可以和变量一样赋值,此处的函数,也相当于是回调函数,合适的时机才会执行。后续有页面的时候,此时就通过网络,从服务器获取到之前保存的好的内容。

2023-11-09 09:32:07 303

原创 【MySQL数据库】 七

JDBC的api其实还是有一些繁琐的,因此,在Java中,有人就对JDBC进一步封装得到了一些数据库操作的框架(ORM) , 那样就可以简单的操作数据库 .比如,MyBatis框架等。但是JDBC是提供了一套统一的api,但是数据库本身也有自己的原生api,因此这里就需要一个驱动包, 其实是每个数据库厂商提供了一些代码,把数据库原生api进行转化。删除和修改操作与上面的插入操作,代码完全相同,只是构造的SQL语句不一样 , 返回值都是一个简单的整数 ,表示受影响的行数 . (以下代码以插入为例)

2023-11-08 17:25:58 353

原创 【MySQL数据库】 六

此时每个节点上,都可以保存多个元素, 当总的元素个数固定,相比于二叉搜索树,涉及到的节点的总数就大大降低了,树的高度也大大降低了(B树的高度远远小于二叉搜索树的高度) , 因此进行查询的时候,硬盘IO的次数也随之减少了。如果中间执行到中间出错了 , 就需要自动把之前前面已经成功执行的操作,进行还原,还原会最初没有执行的模样, 本质上,这里的"一个都不执行",指的是 看起来和 没执行一样。最大的问题,在于红黑树的高度,会在元素个数比较多的时候,变得比较高,因此会引入较多的硬盘IO。

2023-11-08 15:31:32 249

原创 【MySQL数据库】 五

多表联合查询的使用,一定要克制 , 既会影响到运行效率,又会影响到开发效率 (可读性差) , 所以千万不要以写复杂sql为荣!SQL中编写条件,条件都是列和列之间进行比较 , 但是SQL无法进行行和行之间的比较, 但是 把行转换成列 就好办了。在实际开发中,可能会涉及到一些比较复杂的sql, 但是sql写复杂了其实是不好的。笛卡尔积是一个非常低效的操作,尤其是表的本身的记录比较多的情况。就是把两个表的记录,按照排列组合的方式,构造成一个更大的表。本质上是自己和自己做笛卡尔积,本质是把行之间的关系转换为。

2023-11-08 14:47:53 205

原创 【MySQL数据库】 四

允许客户端,在插入数据的时候,不手动指定主键的值,而是交给mysql自行分配,确保分配出来的这个主键的值,和之前的不重复。一旦约束好了,后续在进行增 删 改的时候,mysql就会自动的对修改的数据做出检查,如果不符合约束就会直接报错!1.插入或者修改子表中受约束的这一列的数据,就需要保证插入/修改后的数据在父表中是存在的. 如果是不存在的,就会报错。设置外键的时候,就会导致在进行的子表的时候,频繁的查询父表 ,这个操作是很耗时的,如果mysql是一个单个节点的系统,基于上述策略,是没有问题的。

2023-11-05 23:15:11 133

原创 【Servlet】 二

本文主要介绍了如何运用smart Tomcat与IDEA的结合方便地编写Servlet代码引言前面我们介绍了编写Servlet程序的七个步骤,如下:一旦有错误 , 如果需要修改代码,就需要重复上述567 ,比较麻烦...于是有大佬想出来一个办法:让idea和tomcat集成起来,直接使用idea图形化界面把代码 部署到tomcat上,达成一.smart Tomcat插件这个集成的工具就是smart Tomcat插件 , 在idea的插件市场中搜索下载即可!1.配置。

2023-11-02 13:49:05 59

原创 【MySQL数据库】 三

select * 是一个非常危险的操作 : 如果某个表的数据非常非常多,如果查询这个表所有的数据,那么服务器就会把所有记录放回给客户端,导致一瞬间这个服务器硬盘的带宽和网卡的带宽被吃满!此处客户端中显示的结果是一个临时表,select不管怎么写,都不会影响到数据库服务器上的数据。插入中文的前提是创建数据库的时候设置了utf8为字符集,否则会出现乱码/报错。insert into 表名 values( 值 ,值 , …先按前面列排,如果前面的相同,按后面的排。= 是等价的,都是表示不相等。

2023-11-02 13:24:53 95

原创 【Servlet】 一

本文主要介绍了如何在tomcat部署一个webapp 以及 如何借助maven用servlet编写一个hello world .

2023-11-02 09:01:19 162

原创 【MySQL数据库】 二

设置字符集: 后面加上character set utf8 / charset utf8. (手动设定的一个字符集很关键,mysql默认字符集是拉丁文, 不设置字符集后续如果插入中文可能会出现乱码)也是使用数字来表示汉字,在这两个表上,同一个汉字表示的数字不同;同一个数字,表示的汉字也不同。int(11)的含义是:打印的时候,显示最多占11个字符这么宽,和存储范围无关。在工作中,这是一个危险操作,一旦删掉数据库,数据库中的所有数据都没了,varchar(10) 最多是个字,哪怕是汉字,也是十个.

2023-11-01 16:39:15 103

原创 【MySQL数据库】 一

总结 : mysql客户端,只是一个用户和数据库服务器交互的窗口 , 不管是cmd还是图形化界面,我们操作的都是sql语句( 实际工作中,或许使用命令行会更多 )由于服务器是被动的一方,所以它往往是7*24小时运行,服务器编程要比客户端更复杂一些,对于稳定性/效率都是有一定要求的。注意:mysql的客户端和服务器是通过网络进行通信的,因此这两个程序可以在一个机器中,也可以在不同的机器上。手机安卓系统内置SQLite,安卓系统内置了SQLite,并且很多的安卓程序,也是使用的这个数据库。

2023-11-01 15:25:58 86

原创 【Http协议】 二

ajax是一种异步的通信方法,通过代码发出http请求,请求发出去之后,js代码就继续往下执行,当服务器的响应回来之后,就会自动的通知咱们的代码中,进一步的处理响应。https也是基于http,前面所有http的知识在https当中也同样有效,https就是在http的基础上进行了加密,同时https也是为了避免运营商劫持。此处的异步是指:js代码在执行ajax的时候,把请求发出去之后,就会立即往下执行,一直到响应回来,才调用success。实际开发中,经常需要能够手动的构造出Http协议的请求。

2023-10-31 10:44:37 82

原创 【Http协议】 一

首次访问网站,登陆成功之后,网站就会有一个sessionId,它会被服务器返回给浏览器的响应,保存在浏览器的Cookie中,服务器也会创建一个对应的Session,记录一些关键信息,服务器会用类似于hash表这样的方式,以sessionId为key,以session为value,把数组组织起来。当前网站涉及到两个域名,一个网站cookie中会存储很多键值对,其中往往会有一个很重要的键值对,用来表示用户的身份信息,标识当前请求来自哪个用户,这样登陆一个网站之后,后续再访问这个网站,就不必重新登陆。

2023-10-30 21:13:54 114

原创 【Java网络原理】 六

将手机上的内容投屏到电视上,前提是手机和电视在同一个局域网下(同一个wifi下),手机点击搜索设备,就能把所有同一个局域网下的设备都找出来,这个搜索的过程就可以基于广播IP实现。最大长度虽然只有64kb,但是IP协议自身支持拆包组包机制,如果需要携带一个比较长的数据,IP协议会自动把数据报拆成多个,接收方分用的时候,也会把多个数据报合并成一个数据报。由于路由器,无法做到理解全貌,只能认识部分网络环境,在这个前提下,进行路由转发,走一步算一步,给出的路径不一定是最优解,只能说是较优解。但是这种方法只能缓解!

2023-10-29 19:06:09 313

原创 【Java网络原理】 五

ACK是应答报文SYN申请建立连接的请求 同步报文段。

2023-10-28 19:07:16 427

原创 utf8一个字符占几个字节

一般来说,英语字母1个字节汉字3个字节。

2023-10-26 10:22:33 262

原创 【Java网络原理】 四

Java中的各种对象,是无法直接传输的>在发送的时候,就需要把对象转成二进制字符串 ---序列化>收数据的时候,也需要把二进制字符串转回对象 ---反序列化通信的要求:客户端的请求以及服务器的响应,具体的数据组织格式,是非常灵活的,程序员想怎样组织都可以,只需要保证客户端和服务器使用的相同的规格就行应用层有很多现成的协议,但是有时候需要程序员自定义协议。注意:自定义格式虽然可以任意,但是为了避免出现过于天马行空的设计,有一些大佬就搞出了一些 通用的协议格式,对我们的协议设计是有重要的指导作用的。下面

2023-10-26 08:41:31 193

原创 【Java网络编程】 三

accept是把内核中已经建立好的连接,拿到应用程序中,返回值是一个socket对象,这个对象就像一个耳麦,既可以说话,也可以听到对反的声音。hasNext()在客户端没有发请求的时候,也会阻塞,一直阻塞到客户端发了请求,或者是客户端退出,它就返回了。3.当服务器执行到accept时,此时如果客户端还没来,accept就会阻塞,直到有客户端连接成功为止。1.循环之后,服务器要做的事情不是读取客户端的请求,而是先处理客户端的连接,因为TCP是面向连接的。1.关闭当前的socket!放在finally当中。

2023-10-24 20:27:00 128

原创 【Java网络编程】二

网络编程,就是写一个应用程序,让这个程序可以使用网络通信,这里就需要调用传输层提供的api了。严格的来说,两台主机进行通信就是两台主机中的应用进程进行通信。端到端的通信是应用进程之间的通信。传输层和网络层的区别为主机之间的通信提供服务;在网络层的基础上,为应用进程提供通信服务;

2023-10-24 19:45:07 140

原创 【Java网络初识】 一

wan口连接的是互联网,负责和外部沟通,一般连接的是电信或移动的网络;lan口连接的是内部网,负责内部之间的联系,一般连接家里的电脑、手机、监控等设备。广域网:Wide Area Network(WAN)通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个地区、城市和国家,或横跨几个洲并能提供远距离通信。路由器内部有一张路由表,当它收到网络层的数据报后,会根据这张表的目的IP地址选择路径,将数据报转发给下一个路由器/交换机或者计算机。交换机的口不分wan口和lan口 所有的口都是等价的。

2023-10-24 13:12:19 93

原创 JDK JVM JRE和Java API的关系

Java SE 英文全称是Java Standared Edition,它是Java的标准版。Java SE由四部分组成:JDK JVM JRE和Java语言。

2023-10-23 22:16:28 354

空空如也

空空如也

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

TA关注的人

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