- 博客(31)
- 收藏
- 关注
原创 springCloud-day08
一:了解搜索技术1.搜索引擎搜索引擎的功能主要是三部分:①:爬行和抓取数据(爬虫多用Python来编写)②:对数据做预处理(提取文字,中文分词、建立倒排索引)③:提供搜索功能(用户输入关键词后,去索引库搜索数据)在上述三个步骤中,java要解决的往往是后两个步骤:数据处理和搜索。2.数据库搜索的问题①:数据库数据单表存储能力有限,无法存储海量数据解决大数据,可以进行分库分表。但是分库分表会增加业务复杂度②:搜索只能通过模糊匹配,效率极低模糊搜索可能导致全表扫描,效率非常差3.什么
2022-05-01 16:27:28
222
原创 springCloud-day04
一:搭建项目1.网关(zuul)2.注册中心(eureka)3.用户微服务(user)4.搜索微服务(searcher)6.rcp微服务7.定时微服务(task)8.web微服务(pc和app客户端)9.admin微服务(后管)10.common微服务(公共工具服务)二:通用工具模块(工具类)1.BeanHelper:实现Bean属性的拷贝,把一个Bean的属性拷贝到另一个Bean,前提是其属性名一致或部分一致2.CookieUtils:实现cookie的读和写3.IdWorke
2022-04-21 12:49:33
784
原创 springCloud-day03
一:Zuul网关(集成ribbon和hystrix)1.网关的核心功能是:过滤和路由①:过滤身份认证,权限校验,限流②:路由转发,路由规则2.来自于客户端(PC或移动端)的请求,一切对服务的请求都会经过Zuul这个网关,然后再由网关来实现 鉴权、动态路由等等操作。Zuul就是我们服务的统一入口。3.快速入门(新建一个服务)①:新建工程(添加Zuul依赖)<dependencies> <dependency> <grou
2022-04-16 12:57:03
383
原创 springCloud-day02
一:Ribbon(消费者调用多个提供者时-负载均衡)1.实际环境中,我们往往会开启很多个service的集群。此时我们获取的服务列表中就会有多个,到底该访问哪一个呢?一般这种情况下我们就需要编写负载均衡算法,在多个实例列表中进行选择。不过Eureka中已经帮我们集成了负载均衡组件:Ribbon,简单修改代码即可使用。2.开启负载均衡①:因为Eureka中已经集成了Ribbon,所以我们无需引入新的依赖。直接修改代码:②:在RestTemplate的配置方法上添加@LoadBalanced注解:@B
2022-04-14 19:49:58
203
原创 springCloud-day01
一:系统架构演变1.集中式架构:各种模块都放在一起,并发高,耦合代码2…垂直拆分:解决并发流量分担,不同模块进行优化,系统相互独立重复开发,影响效率3.分布式服务:提高了代码复用,互相之间调用太多关系错综复杂,难以维护4.微服务:相对分布式优势就是有模块之间的管理–eureka注册中心①:单一职责–就是不同模块不同功能②:独立–五脏俱全(有各自的功能表现层–业务层–持久层–数据库以及cache)③:面向服务:提供rest风格服务接口API(基于http协议)④:自治:a.团队
2022-03-20 15:59:29
516
原创 Elasticsearch基础1
一:Elasticsearch(搜索引擎)1.概念:①:综合搜索网站:百度、谷歌等②:电商网站:京东、淘宝的商品搜索这些搜索业务有一些可以使用数据库来完成,有一些却不行。因此我们今天会学习一种新的搜索方案,解决海量数据、复杂业务的搜索。2.倒排索引:倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。①:传统查找流程例如,
2022-02-20 23:04:42
886
原创 SpringSecurity+JWT框架项目前后端分离(实战)
SpringSecurity一:简介1.Spring Security 是 Spring 家族中的一个安全管理框架。相比与另外一个安全框架Shiro,它提供了更丰富的功能,社区资源也比Shiro丰富。一般来说中大型的项目都是使用SpringSecurity 来做安全框架。小项目有Shiro的比较多,因为相比与SpringSecurity,Shiro的上手更加的简单。2.一般Web应用的需要进行认证和授权。①:认证:验证当前访问系统的是不是本系统...
2022-01-23 00:28:41
1423
原创 SpringSecurity
SpringSecurity一:springSecurity(认证+授权)1.springSecurity和shiro类似–aop思想(面向切面编程)2.springBoot整合springSecurity框架二:实战1.仅需引入依赖spring-boot-start-security进行少量的配置,即可实现强大的安全管理<dependency> <groupId>org.springframework.boot&...
2022-01-09 21:49:32
2509
原创 mysql+orcle(sql实现递归查询子节点所有数据)
一:MySQL(本人亲测)话不多说直接上代码:1.创建表格CREATE TABLE `treenodes` ( `id` int , -- 节点ID `nodename` varchar (60), -- 节点名称 `pid` int -- 节点父ID); 2.插入测试数据INSERT INTO `treenodes` (`id`, `nodename`, `pid`) VALUES('1','A','0'),('2','B','1'),('3','C','1'),('4','
2021-11-20 22:37:52
724
原创 web知识4(filter+listener)
一:filter(过滤器)1.概念:过滤器(Filter)是一个能够拦截客户端与服务端请求和响应的web组件2.web组件:servlet,filter,listener3.作用:①:拦截请求:在请求到达客户端要访问的web资源前拦截请求;②:拦截响应:在响应到达客户端之前拦截响应;4.应用场景:①:过滤论坛中的非法字符②:登录权限检查③:统一处理项目中的中文乱码5.过滤器开发入门第一步:编写一个普通java类,实现Filter接口,重写doFilter方法;第二步:在doFilte
2021-10-17 22:42:56
82
原创 web知识4(filter+listener)
一:filter(过滤器)1.概念:过滤器(Filter)是一个能够拦截客户端与服务端请求和响应的web组件2.web组件:servlet,filter,listener3.作用:①:拦截请求:在请求到达客户端要访问的web资源前拦截请求;②:拦截响应:在响应到达客户端之前拦截响应;4.应用场景:①:过滤论坛中的非法字符②:登录权限检查③:统一处理项目中的中文乱码5.过滤器开发入门第一步:编写一个普通java类,实现Filter接口,重写doFilter方法;第二步:在doFilte
2021-10-17 22:28:52
101
原创 web知识3(cookie+session)
一:会话技术概述1.概述:会话就是由多次请求和响应组成的一次网络上的活动;2.会话过程中要解决的问题:多次请求和响应之间需要存储数据;3.会话期间存储数据的技术:会话技术①:Cookie:将数据存储在浏览器端②:Session:将数据存储在服务器端4.会话技术存储数据的特点:在多次请求和响应之间共享二:Cookie技术1.概述:Cookie指的是少量信息;2.Cookie的产生:①:创建:由web服务器创建,并发送给浏览器;②:保存:保存在浏览器端(硬盘上);3.应用场景:①:自动
2021-10-17 12:08:38
117
原创 web知识2(request+response)
一:URL(Uniform Resource Locator)1.概念:是对互联网上资源位置的一种表示,互联网上的每个资源都有一个唯一的URL2.如图:①:协议:http、https、ftp②:域名/ip: 能够帮我们定位到互联网上的某一台服务器③:端口号:端口号是一个应用程序在一台服务器上的编号。http协议的默认端:80④:资源位置:用于描述WEB资源在服务器上的位置⑤:参数: 浏览器和服务器交互传递的数据二:HTTP请求(Hyper Text Transfer Protocol)
2021-10-16 17:32:39
182
原创 web知识1(服务器+servlet)
**一: 软件架构**1:CS架构Client-Server架构模式客户端-服务器架构模式通过特定的软件访问网络资源2:BS架构Browser-Server架构模式浏览器-服务器架构模式通过浏览器去访问网络资源二:服务器1.服务器概述:可以提供服务的一台机器2.服务器硬件:服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。3.服务器软件:服务器软件本质上是
2021-10-16 12:26:50
86
原创 防止表单重复提交几种方法+实测
1.前端处理(场景:用于网络延迟情况下用户点击多次submit按钮导致表单重复提交)①:通过一个标识来控制表单提交之后,再次提交会直接返回处理。Var isCommitted = false; //表单是否应提交标识,默认为falsefunction dosubmit() { //start hzj If(isCommitted == false){ //提交表单后,将表单是否已经提交设置为true isCommitted = true; //返回true让表单正常提交 ret
2021-09-11 13:45:29
5735
2
原创 Spring事务基础知识+实操
1.事务了解:①:事务处理位于业务层(service)②:spring框架为我们提供了一组事务控制的接口③:spring的事务控制是基于AOP的④:事务的分类(1.编程式事务 2.声明式事务 3.xml配置事务)2.spring中事务控制的API介绍①:PlatformTransactionManager(平台事务管理器,是Spring真正管理事务的对象,是一个接口):以下为2个实现类: ②:DataSourceTransactionManager(针对JDBC和mybatis事务管理)③:
2021-09-05 21:38:47
134
原创 Redis的基础知识以及实操应用
一:非关系型数据库二:Redis支持的数据类型字符串类型 string(常用:json/xml)(缓存)散列类型 hash(key–value)map列表类型 list集合类型 set有序集合类型 sortedset(排行榜)三:Redis应用场景1、缓存(数据查询(高并发以及长时间固定不变的数据),端链接,新闻内容,商品内容等等);–使用最多2、聊天室的在线好友列表;3、任务队列;(秒杀,抢购,12306等等)4、应用排行榜(微波热搜);5、网站访问统
2021-08-21 19:06:50
152
原创 RPC(远程过程调用Hessian、Dubbo、springCloud等)一
一一:今天主要介绍dubbo框架1.软件架构的演进过程①:单体架构②:垂直架构③:SOA架构(面向服务的架构-dubbo)④:微服务架构2.Dubbo①:RPC全称为remote procedure call,即远程过程调用。比如两台服务器A和B,A服务器上部署一个应用,B服务器上部署一个应用,A服务器上的应用想调用B服务器上的应用提供的方法②:Java中的RPC框架比较多,广泛使用的有Hessian、Dubbo、springCl...
2020-08-07 23:44:59
458
原创 一个简单-定时任务组件(quartz)-demo
一:定时任务组件(quartz)1.应用场景(相当于闹钟,可以开发一个或者多个定时任务)①:每天晚上12点生成当天的报表,第二天要看②:订单超时③:延时发送短信2.定时任务组件Quartz(概念和demo)1.Quartz既可以单独使用也可以跟spring框架整合使用,在实际开发中一般会使用后者。(demo)①.引入依赖org.quartz-schedulerquartz2.2.1org.quartz-schedulerquartz-jobs2.2.1②.自定义一个MyJ
2020-07-28 23:11:48
271
原创 第三方服务(文件,图片存储)
一:第三方服务有:阿里云,七牛云(存储服务器)1:在实际开发中,我们会有很多处理不同功能的服务器。例如:应用服务器:负责部署我们的应用 数据库服务器:运行我们的数据库 文件服务器:负责存储用户上传文件的服务器分服务器处理的目的是让服务器各司其职,从而提高我们项目的运行效率。2:常见的文件,图片存储方案:方案一:使用nginx搭建图片服务器方案二:使用开源的分布式文件存储系统,例如Fastdfs、HDFS等方案三:使用云存储,例如阿里云、七牛云等3.阿里云,七牛云
2020-07-26 16:04:24
1926
原创 数据库设计工具PowerDesigner的强大
一:powerDesigner的使用1.①:Power Designer 是能进行数据库设计的强大的软件,是一款开发人员常用的数据库建模工具。它直观的反映了数据模型间的关系,有助于人们全面理解数据之间关系,便于设计人员快速发现数据库的设计的不足,优化数据库设计。②:Power Designer 可以通过数据模型快速生成数据库脚本,也可以通过数据库表结构逆向生成数据模型。2.创建物理模型①:打开PowerDesigner,File–>New–>physical Data Model创建物理
2020-07-26 11:55:39
1806
原创 用SpringBoot手把手教你写出优雅的后端接口
一个后端接口大致分为四个部分组成:接口地址(url)、接口请求方式(get、post等)、请求数据(request)、响应数据(response)。如何构建这几个部分每个公司要求都不同,没有什么“一定是最好的”标准,但一个优秀的后端接口和一个糟糕的后端接口对比起来差异还是蛮大的,其中最重要的关键点就是看是否规范!本文就一步一步演示如何构建起一个优秀的后端接口体系,体系构建好了自然就有了规范,同时再构建新的后端接口也会十分轻松。所需依赖包这里用的是SpringBoot配置项目,本文讲解的重点是后端接口,
2020-07-23 23:16:12
535
原创 阿里云~简单发送短信
简单三步骤:轻松发送短信一:阿里云1.创建一个阿里云账号2.创建一个签名,创建模板3.创建一个秘钥(用自己的id,以及密码)二:代码1.引入俩个依赖 <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-core --><dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-j
2020-07-22 22:24:23
763
原创 Orcle与Mysql分页详细整理
数据库分页SQL语句:废话不多说,直接上代码,Orcle和Mysql的分页公式 ①:MySQL分页,select * from emp limit m,n;(m表示查询数据的起始索引,n表示的从m+1条 查询n条) 1.分页需求 每页3条,查询第2页 page = 2; pageSize =3; 2.公式 起始索引 startIndex = (page-1)*pageSize 每页最大数
2020-07-20 22:36:25
1633
原创 线程状态(计时等待,锁阻塞,无限等待(重点))
一:线程状态1.线程状态概述(有6中线程状态)①:new(新建)–线程刚被创建,但是并未启动。还没调用start方法。②:Runnable(可运行) --线程可以在java虚拟机中运行的状态,可能正在运行自己代码,也可能没有,这取决于操作系统处理器。③:Blocked(锁阻塞)–当一个线程试图获取一个对象锁,而该对象锁被其他的线程持有,则该线程进入Blocked状态;当该线程持有锁时,该线程将变成Runnable状态。④:Waiting(无限等待)–一个线程在等待另一个线程执行一个(唤醒)动作时,
2020-07-20 10:35:02
1161
原创 关于多线程的基础知识
一:多线程1.并发与并行①并行:指两个或多个事件在同一时刻发生(同时执行)。②并发:指两个或多个事件在同一个时间段内发生。(交替执行)2.线程与进程①进程:是指内存中正在运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程。进程是系统运行程序的基本单位。系统运行一个程序即是一个进程从创建、运行到消亡的过程。②线程:进程内部的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程(主线程)。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。
2020-07-19 23:36:55
194
原创 后台对参数的非空以及是否存在判断
1.我们正常开发一般会在前端页面进行参数的非空,以及合法性校验2.同样正常情况下,后台也同样需要对参数进行判断①:因为防止其他访问跳过页面直接访问后台,如果没有判断和合法性校验,会对后台造成一些不可预知的后果②:这样的做法对后台系统数据有保护安全的意义3.我自己总结的有俩中方法(其中一种借用同事彭于晏的方法,哈哈)①:第一种:用比较原始的方法(非空判断)例子:1.获取参数2.if(regNo == null || “”.equals(regNo)){resultMap.put(“dealR
2020-07-19 16:36:13
3592
原创 今天聊聊关于json
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2020-07-18 11:47:29
1287
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人