web
文章平均质量分 80
摘星喵Pro
蜡笔小新.com
展开
-
JSON序列化/反序列化,指定自定义字段名key转换注解配置
输出结果: 可以看到直接输出key也是自定义的,但这里用的是alibaba.fastjson注解完成的,和上面使用场景不一样,因为springboot使用fastjson序列化对象。在springboot请求接口返回对象得到的结果:(因为springboot使用fastjson序列化对象)实体类属性上增加@JSONField(name = “属性名”)注解(alibaba.fastjson)实体类的属性上面增加@JsonProperty(“字段名”)注解(fastjson)原创 2023-01-13 15:40:39 · 6296 阅读 · 0 评论 -
【微服务技术10】Docker
镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成。Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。每一个指令都会形成一层Layer。语法说明请参考官网文档: https://docs.docker.com/engine/reference/builder指令说明示例FROM指定基础镜像ENV设置环境变量,可在后面指令使用COPY拷贝本地文件到镜像的指定目录RUN。原创 2022-12-27 09:56:35 · 205 阅读 · 1 评论 -
【微服务技术09】统一网关Gateway
全局过滤器对所有路由都生效的过滤器,并且可以自定义处理逻辑实现全局过滤器的步骤实现GlobalFilter接口添加@Order注解或实现Ordered接口编写处理逻辑。原创 2022-12-16 17:06:32 · 669 阅读 · 0 评论 -
【微服务技术08】基于Feign远程调用
Feign是一个声明式的http客户端,其作用就是帮助我们优雅的实现http请求的发送,解决上面提到的问题。1、引入依赖 < dependency > < groupId > org.springframework.cloud < artifactId > spring-cloud-starter-openfeign原创 2022-12-14 14:06:21 · 393 阅读 · 0 评论 -
【微服务技术07】Nacos配置管理
解决服务部署实例越来越多,需要逐个修改微服务配置的问题Nacos一方面可以将配置集中管理,另一方可以在配置变更时,及时通知微服务,实现配置的热更新。从微服务拉取配置微服务要拉取nacos中管理的配置,并且与本地的application.yml配置合并,才能完成项目启动。但如果尚未读取application.yml,又如何得知nacos地址呢?因此spring引入了一种新的配置文件:bootstrap.yaml文件,会在application.yml之前被读取,流程如下:首先,在user-servic原创 2022-12-14 11:21:55 · 237 阅读 · 0 评论 -
【微服务技术06】Nacos注册中心
Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式临时实例心跳不正常会被剔除,非临时实例则不会被剔除Nacos支持服务列表变更的消息推送模式,服务列表更新更及时Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;Eureka采用AP方式原创 2022-12-14 09:47:17 · 369 阅读 · 0 评论 -
【微服务技术05】Ribbon负载均衡
1、Ribbon负载均衡规则规则接口是IRule默认实现是ZoneAvoidanceRule,根据zone选择服务列表,然后轮询2、负载均衡自定义方式代码方式:配置灵活,但修改时需要重新打包发布配置方式:直观,方便,无需重新打包发布,但是无法做全局配置3、饥饿加载开启饥饿加载指定饥饿加载的微服务名称。原创 2022-12-13 16:55:49 · 428 阅读 · 0 评论 -
【微服务技术04】Eureka注册中心-服务注册与发现
在Eureka架构中,微服务角色有两类:**EurekaServer:**服务端,注册中心记录服务信息心跳监控**EurekaClient:**客户端**Provider:**服务提供者,例如案例中的 user-service注册自己的信息到EurekaServer每隔30秒向EurekaServer发送心跳**consumer:**服务消费者,例如案例中的 order-service根据服务名称从EurekaServer拉取服务列表。原创 2022-12-13 15:18:22 · 118 阅读 · 0 评论 -
springboot kafka配置与使用
可以根据情况只配置生产着或消费者;每个groupId都可以完整消费指定topic的所有数据,要想重新消费所有数据可以更换groupid组原创 2022-11-25 16:53:07 · 3489 阅读 · 0 评论 -
lambda stream流处理异常的方法/Either不终止stream流处理异常
当你在使用一个抛出checkedException的函数式,如果你想要在lambda里使用它,你需要做一些额外的工作,比如将异常包装成RuntimeException是一种可行的方案。这种方法非常适合创建一个简单的工具包装函数,然后每次你只需要调用这个检查函数而不必再写try/catch。如果你想进一步控制异常并在不终止stream的需求下,可以使用Either来再对函数包装,把异常和正确执行结果分开处理。原创 2022-11-12 13:51:56 · 1579 阅读 · 0 评论 -
swagger-bootstrap-ui Api接口文档
之前配置过swagger的话直接再引入swagger-bootstrap-ui就可以使用了, 不需要额外配置,如果没配置过swagger还需要引入swagger核心包。跟swagger区别把最后的页面换成doc.html。ip:端口/[应用程序上下文]/doc.html。原创 2022-10-24 13:14:23 · 662 阅读 · 0 评论 -
【微服务技术03】服务拆分--远程调用RestTemplate
1.单一职责:不同微服务,不要重复开发相同业务562.数据独立:不要访问其它微服务的数据库3.面向服务:将自己的业务暴露为接口,供其它微服务调用。原创 2022-10-21 10:46:07 · 438 阅读 · 0 评论 -
推荐一个Chrome插件--JSON数据格式解析编辑插件--JSON-handle
对JSON格式的内容进行浏览和编辑,以树形图样式展现JSON文档,并可实时编辑插件:hl=zh-CN。原创 2022-10-21 10:25:20 · 498 阅读 · 0 评论 -
【微服务技术02】认识微服务--架构演变/技术对比/SpringCloud
单体架构特点简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统分布式架构特点松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝微服务一种良好的分布式架构方案优点:拆分粒度更小、服务更独立、耦合度更低缺点:架构非常复杂,运维、监控、部署难度提高。原创 2022-10-19 20:04:20 · 591 阅读 · 0 评论 -
【微服务技术01】微服务技术栈--模块组成
微服务是分布式架构的一种,分布式架构就是要把服务做拆分,而拆分的过程中会产生各种问题,而SpringCloud只是解决了服务拆分过程中的服务治理问题,其他的一些服务拆分更复杂问题没有给出完整的解决方案,所以一个完整的微服务技术要包含的不仅仅是SpringCloud。原创 2022-10-19 15:44:30 · 701 阅读 · 0 评论 -
Spring Cloud Netflix 知识整理
APIHTTP,RPC注册与发现熔断机制一切问题的原因:网络不可靠!什么是微服务?微服务(Microservice Architecture) 是近几年流行的一种架构思想,关于它的概念很难一言以蔽之。究竟什么是微服务呢?我们在此引用ThoughtWorks 公司的首席科学家 Martin Fowler 于2014年提出的一段话:原文:https://martinfowler.com/articles/microservices.html。原创 2022-09-16 17:33:33 · 643 阅读 · 1 评论 -
SpringBoot异步任务、邮件任务、定时任务
在springboot启动类上增加@EnableAsync // 开启异步注解功能在要调用的异步方法上增加@Async注解[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zw1TyTNB-1662639933309)(/Users/cat/Library/Application Support/typora-user-images/image-20220908191920110.png)]直接调用即可,完成异步处理任务。原创 2022-09-08 20:27:17 · 706 阅读 · 0 评论 -
Spring/SpringBoot注解用法解析/案例
After 在方法执行之后执行(方法上) @Before 在方法执行之前执行(方法上) @Around 在方法执行之前与之后执行(方法上)比如,公司使用bean.xml文件生成配置bean,然而你为了省事,想继续复用bean.xml,@ImportResource粉墨登场。@Configuration 声明当前类为配置类,其中内部组合了@Component注解,表明这个类是一个bean(类上)@Bean 注解在方法上,声明当前方法的返回值为一个bean,替代xml中的方式(方法上)原创 2022-09-08 17:43:54 · 194 阅读 · 0 评论 -
SpringBoot整合Redis/自定义Redis配置和工具类
可以自定义一些对象序列化操作等配置/**// 编写自己的redisTemplate @Bean @SuppressWarnings("all") public RedisTemplate < String , Object > redisTemplate(RedisConnectionFactory factory) throws UnknownHostException {原创 2022-09-08 13:43:01 · 403 阅读 · 0 评论 -
Java将base64字符串保存为图片/图片转base64字符串
Base64 编码普遍应用于需要通过被设计为处理文本数据的媒介上储存和传输二进制数据而需要编码该二进制数据的场景。这样是为了保证数据的完整并且不用在传输过程中修改这些数据。Base64 也被一些应用(包括使用。(binary-to-text)的编码规则,使得二进制数据在解释成 radix-64 的表现形式后能够用 ASCII 字符串的格式表示出来。中储存复杂数据时使用。...原创 2022-08-09 10:54:40 · 2983 阅读 · 0 评论 -
Java web/springboot上传word/doc/docx文档(含图片)与HTML富文本导入/导出互相转换解析!附项目源码
当导出word文件时,先对HTML文档img的src进行解析,增加服务器的静态资源访问位置路径,这样就能访问到图片输出为word。上传word文件,解析出HTML内容,图片存储到定义好的静态资源目录,主题HTML文档中img的src存储的是相对路径。注意target/classes/word/image目录和content.docx模版文档要存在。利用刚刚解析出来的HTML导出为Word。可以根据需求可以替换成图片资源服务器~用于定义图片存储和模版文件等。访问导出接口即可下载文档。.............原创 2022-08-08 15:25:47 · 3648 阅读 · 1 评论 -
Java web 富文本内容生成转为word格式并导出下载
思路:Word是完全支持html标签的,但是富文本内容并不是完整的html代码,需要先补全html标签,然后转码输出依赖包```xml org.apache.poi poi 4.1.2```上代码```java /** * 导出 word 文档 * * @para.........原创 2022-08-02 16:21:40 · 1559 阅读 · 0 评论 -
RESTful api接口设计规范
严格地说,有些网址最后的".html"后缀名是不必要的,因为这个后缀名表示格式,属于"表现层"范畴,而URI应该只代表"资源"的位置。rel表示这个API与当前网址的关系(collection关系,并给出该collection的网址),href表示API的路径,title表示API的标题,type表示返回类型。在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。REST的名称"表现层状态转化"中,省略了主语。.....原创 2022-07-29 16:29:03 · 1050 阅读 · 0 评论 -
SpringBoot知识复习
RequestMapping配置请求路径可以修饰类、方法@GetMappingget请求一般是获取信息、下载链接业务请求@PostMappingpost请求一般是新增或复杂查询的业务请求@PutMappingput请求修改请求全量修改@PatchMappingpatch请求修改请求put的一种增量修改@DeleteMappingdelete请求删除请求注意也可以方法使用@RequestMapping(value=“/abc”,method=RequestMethod.XXX),...原创 2022-07-29 16:23:57 · 147 阅读 · 0 评论 -
RabbitMQ知识学习
Server:服务connection:与Server建立连接channel:信道,几乎所有操作都在信道上进行,客户端可以建立多个信道message:消息,由properties和body组成virtual host:虚拟主机,顶层隔离。同一个虚拟机下,不能有重复都交换机和queueExchange:交换机,接受生产者的消息的,然后根据指定的路由器去把消息转发到绑定的队列上binding:绑定交换机和队列routing key:路由健,路由规则,虚拟机可以用它来确定这个消息如何进......原创 2022-07-27 19:56:18 · 201 阅读 · 0 评论 -
Zookeeper基础知识
例如多个client把redis的client和端口号信息存到zookeeper上,如果没有watcher,只能不断轮询,比如几秒钟查一次,不可靠且开销大;可以利用临时节点方便的进行集群管理,比如每一个临时节点代表一个服务实例,服务宕机时临时节点被删除,维护服务发现的功能。顺序节点持久节点和临时节点都可以是顺序的或非顺序的,如果创建一个持久或临时的顺序节点,会生成一个10位的分布式唯一ID。使用zookeeper自带的客户端实现是临时的用过一次后销毁,使用apache客户端的可以永久性。.........原创 2022-07-18 16:20:48 · 550 阅读 · 0 评论 -
SpringBoot集成ElasticSearch操作案例
测试环境http://localhost:5601/app/dev_tools#/consolehttps://github.com/medcl/elasticsearch-analysis-ik可以自定义分词配置config下的IKAnalyzer.cfg.xmlpom引入依赖,注意对应版本创建配置类,注入Bean对象原创 2022-07-13 20:27:01 · 593 阅读 · 0 评论 -
Spring Cloud基础知识与案例功能演示
成熟的微服务架构,定位为开发人员提供工具,以快速构建分布式系统IDEA新建Spring Initializr项目,填写好项目信息后,先选择一个Spring Boot版本,之后可以修改,等待Maven导入包完成项目初始化成功后,可以删除不需要的src目录之后在项目根目录新建模块,选择Maven项目填写你要创建的模块名,注意父级模块要选择确认Netflix的核心子模块之一完成服务注册与发现的作用正常一个服务对另一个服务进行调用时,需要知道对方的IP地址和开放的端口号,但是当服务较多的时候,IP地址又经常发生变化原创 2022-07-03 20:24:55 · 204 阅读 · 0 评论 -
Nginx服务器:搭建静态文件服务/反向代理与负载均衡配置
使用代理服务器进行安全管理通常位于服务端开发中,客户端访问时不直接访问到服务器,而是访问到反向代理服务器,在后端多个服务器之间提供负载均衡,为服务慢的服务器提供缓存Nginx提供反向代理的原理不分离会变慢静态资源无需经过Tomcat,Tomcat只负责处理动态请求例如:当后缀为gif的时候,Nginx会直接获取到当前请求文件并返回Nginx本身作为静态资源服务器例如当网站不大时不需要经常修改的静态网站,只需要直接利用Nginx访问即可,不需要运行Tomcat,拥有较好的性能高并发、高性能可扩展性好高可靠性热原创 2022-06-20 12:43:21 · 2393 阅读 · 0 评论 -
Docker应用
联合文件系统,UnionFS镜像类似于Java中的类,而容器就是实例容器的这一层是可以修改的,而镜像是不可以修改的同一个镜像可以生成多个容器独立运行,而他们之间没有任何的干扰hub.docker.com公有、私有client提供给用户一个终端,用户输入Docker提供的命令来管理本地或远程的服务器deamon:服务端守护进程,接受Client发送的命令并执行相应的操作重点:Linux系统安装Mac和Windows直接下载软件安装…docker images #查看本地镜像docker pull nginx镜原创 2022-06-19 22:18:49 · 483 阅读 · 0 评论 -
分布式、CAP定理、集群/微服务区别
利用物理架构形成多个自治的处理元素,不共享主内存,但是通过发送信息合作C(Consistency,一致性):读操作是否能读到前一个写操作的结果A(Availability,可用性):非故障节点应该在合理的时间内作出合理的响应(但可能不是最新的数据)P(Partition tolerance,分区容错性):当出现网络分区现象后,系统能够继续运行在CAP定理中,三个条件只能同时选择二者,并且不能同时选择三者。火车票,买票必须保证一致性,当前只剩余最后一张车票银行转账 ,数据一定要可靠,但允许网络延迟从分布式的角原创 2022-06-06 18:06:34 · 196 阅读 · 2 评论 -
ThreadLocal详解
ThreadLocal详解两大使用场景每个线程需要一个独享的对象(通常是工具类,典型需要使用的类有SimpleDateFormat和Random)每个线程内需要保存全局变量(例如在拦截器中获取用户信息),可以让不同方法直接使用,避免参数传递的麻烦场景1:每个线程需要一个独享的对象当只有2个线程时,每个线程可以分别用自己的SimpliDateFormat当线程延伸到10个时,也可以接受但当任务为1000 时,必然使用线程池来管理,可是每个任务都会经历SimpliDateFormat对象的创建和销原创 2022-05-30 13:33:11 · 213 阅读 · 0 评论 -
JAVA 线程池
线程池线程池介绍软件中的"池"可以理解为计划经济如果不使用线程池,每个任务都新开一个线程处理:例如使用for循环创建线程,当任务数量上升到1000时开销就会很大了(如报内存不足异常),我们希望有固定数量的线程来执行这1000个线程,避免反复创建并销毁线程带来的开销问题使用线程池解决:反复创建线程开销大;过多的线程会占用太多内存解决思路:使用少量线程避免内存占用过多;让这部分线程都保持工作,且可以反复执行任务,避免生命周期的损耗线程池的好处:加快相应速度;合理利用CPU和内存;统一管理资源;适用原创 2022-05-26 11:52:43 · 324 阅读 · 0 评论 -
Mac运行‘Tomcat x.x.x‘时出错,无法打开调试器端口(127.0.0.1:x):java.net.SocketException “Socket closed“
Mac运行’Tomcat x.x.x’时出错,无法打开调试器端口(127.0.0.1:x):java.net.SocketException “Socket closed”问题: Mac使用IDEA运行web项目无法启动Tomcat,开始以为是端口被占用,但是翻译一下报错信息"permission denied"可以看出是权限被拒绝!解决方案: 使用终端进入Tomcat的bin目录,执行命令"chmod 777 *.sh"特别注意: 一定看好了千万要在tomcat目录执行给权限的命令!!!!!!如果在原创 2022-05-18 19:49:17 · 2205 阅读 · 0 评论 -
电商生鲜网站开发(四)——后台开发:商品模块-图片上传/多条件拼接sql
电商生鲜网站开发(四)——后台开发:商品模块-图片上传/多条件拼接sql增加商品上传图片更新商品删除商品批量上下架图片上传功能文件名UUID通用唯一识别码(Universally Unique Identifier)防止重名、防止发图生成规则:日期和时间、MAC地址、HashCode、随机数配置application.properties# 上传文件的路径,根据部署情况自行修改 该值注入到Constan类中file.upload.dir=/Users/cat/Documents/p原创 2022-03-24 19:57:54 · 1715 阅读 · 0 评论 -
电商生鲜网站开发(三)——后台开发:商品分类模块-Redis/Swagger/统一身份校验/IDEA技巧
电商生鲜网站开发(二)——后台开发:商品分类模块-Redis/Swagger/统一身份校验/IDEA技巧分类层级在商品分类上需要继续做归类操作分类设置成三级层级太深的弊端:对用户不友好,不利于查找;后台管理部方便分类模块主要功能分类数据的设置根据分类的父级目录递归查找接口与表设计https://blog.csdn.net/a2272062968/article/details/123385857分类接口开发跟用户接口类似参数校验注解说明@Valid需要验证原创 2022-03-23 18:49:27 · 2062 阅读 · 0 评论 -
电商生鲜网站开发(二)——后台开发:用户模块
电商生鲜网站开发(二)——后台开发:用户模块文章目录电商生鲜网站开发(二)——后台开发:用户模块接口设计开发任务与知识点案例:注册接口统一处理异常Java异常体系案例:登录接口接口设计https://blog.csdn.net/a2272062968/article/details/123385857开发任务与知识点登录注册重名校验 @Override public void register(String userName, String password) throws M原创 2022-03-14 21:10:07 · 955 阅读 · 0 评论 -
电商生鲜网站开发(接口文档)
Spring Boot 生鲜电商项目接口文档用户模块注册新用户请求地址/register请求方式POST参数参数参数含义示例备注userName用户名xiaomupassword密码12345678请求示例/register?userName=xiaomu&password=12345678返回示例{ "status": 10000, "msg": "SUCCESS", "data":原创 2022-03-09 20:01:44 · 1699 阅读 · 0 评论 -
电商生鲜网站开发(一)——Spring Boot项目开发准备
Spring Boot项目开发准备IDEA web开发必备插件Maven Helper 与Maven一起工作的必备插件Free Mybatis Tool 帮助我们跳转和识别Mapper中的一些语法错误Postman安装——接口自测帮助我们开发时接口自测的调试工具,免费MySQL可视化工具——mac平台Sequel pro for mac是Mac os平台上的一款帮助用户快速连接SQL数据库的开源免费Mac软件http://sequelpro.com/test-builds在连接MySQL原创 2022-03-09 19:10:11 · 1437 阅读 · 5 评论 -
Spring Boot简介与案例
Spring Boot简介与案例https://spring.io/概述Spring的缺点:配置过于繁琐Spring Boot开发团队:PivotalSpring Boot简介简化初始搭建以及开发过程不再需要定义样板化的配置快速应用开发领域Spring、Spring MVC和Spring BootSpring最初利用IOC和AOP解耦按照这种模式搞了MVC框架写很多样板代码很麻烦,就有了Spring BootSpring Cloud是在Spring Boot基础上诞生的Sprin原创 2022-03-02 19:59:36 · 295 阅读 · 0 评论