项目问题记录
文章平均质量分 58
后端技术那点事
这个作者很懒,什么都没留下…
展开
-
Mybatis如何解决循环依赖问题
mybatis的循环依赖,即是mapper.xml里面的A查询的resultMap包含了B属性(B属性是通过子查询得到的),而B属性中又包含了A(B查询的resultMap中又包含了A的查询),就会造成A-B-A的情况。原创 2023-06-25 14:49:17 · 1131 阅读 · 0 评论 -
生产项目中基于springboot项目解决循环依赖的三种方式
在生产项目中,可以使用Spring Boot框架来快速开发Spring应用程序。Spring Boot提供了一种方便的方式来创建独立的,基于Spring的应用程序,并且有着高度的自动化配置和开箱即用的特性。可以使用@Lazy注解来控制Bean的延迟初始化,同时可以使用AOP切面编程来解决循环依赖问题。原创 2023-06-25 14:44:32 · 1638 阅读 · 0 评论 -
java实现JavaBean与xml互转方式以及工具类
1、jaxb2实现JavaBean与xml互转1.1、工具类package com.example.springsecuritydemo.jaxb2;import java.io.StringReader;import java.io.StringWriter;import javax.xml.bind.JAXBContext;import javax.xml.bind.Marshaller;import javax.xml.bind.Unmarshaller;/** * Jaxb2原创 2021-04-21 22:39:50 · 321 阅读 · 0 评论 -
Hutool 读取csv文件和输出csv文件
pom <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>4.1.2</version> </dependency>实体package com.example.csvdemo.bea原创 2021-04-15 22:44:09 · 10671 阅读 · 0 评论 -
解决跨域问题:
解决跨域问题:1、什么是跨域跨域是指跨域名的访问,以下情况都属于跨域:跨域原因说明示例域名不同www.jd.com 与 www.taobao.com域名相同,端口不同www.jd.com:8080 与 www.jd.com:8081协议不同http://www.jd.com:8080 与 https://www.jd.com:8080如果域名和端口...原创 2019-08-29 16:03:38 · 251 阅读 · 0 评论 -
域名解析
使用域名访问本地项目:一个域名一定会被解析为一个或多个ip。这一般会包含两步:本地域名解析浏览器会首先在本机的hosts文件中查找域名映射的IP地址,如果查找到就返回IP ,没找到则进行域名服务器解析,一般本地解析都会失败,因为默认这个文件是空的。Windows下的hosts文件地址:C:/Windows/System32/drivers/etc/hostsLinux下的hosts...原创 2019-08-28 21:14:11 · 211 阅读 · 0 评论 -
spring-cloud-sleuth整合zipkin
1、Sleuth(全链路追踪)1.1、概要Spring Cloud Sleuth提供了一套完整的服务跟踪的解决方案,并且支持集成了zipkin。1.2、术语1.2.1、Trace:它是由一组有相同Trace ID的Span串联形成一个树状结构。为了实现请求跟踪,当请求到分布式系统的入口端点时,只需要服务跟踪框架为该请求创建一个唯一的跟踪标识(即前文提到的Trace ID),同时在分布式系统内部流转的时候,框架始终保持该传递的唯一标识,直到返回请求为止,我们通过它将所有请求过程中的日志关联起来;1原创 2021-03-30 19:10:14 · 535 阅读 · 0 评论 -
秒杀场景分析以及案例实现
1、秒杀活动1.1、定时任务/** * 定时任务 * 1、@EnableScheduling 开启定时任务 * 2、@Scheduled开启一个定时任务 * * 异步任务 * 1、@EnableAsync:开启异步任务 * 2、@Async:给希望异步执行的方法标注 */@Slf4j@Component@EnableAsync@EnableSchedulingpublic class HelloScheduled { /**原创 2021-03-30 14:44:52 · 942 阅读 · 0 评论 -
本地事务、分布式事务以及解决方案
springboot本地事务失效的问题解决方案:分布式事务出现的原因分布式一致性动画演示:http://thesecretlivesofdata.com/raft/raft是一个实现分布式一致性的协议,主要有领导选举、日志复制两个机制维持数据的一致性每个节点都有三个状态:followercandidateleader以及两个时间:自旋时间:从follower到candidate的时间(150ms-300ms)心跳时间:leader向fol原创 2021-03-28 23:53:08 · 832 阅读 · 0 评论 -
接口的幂等性分析以及解决方案
接口的幂等性分析以及解决方案具体方案:以提交订单为例提交订单创建令牌,生成订单校验令牌实体订单提交的部分实体提交订单创建token,存放reidis生成订单校验token,从redis中获取数据、比较数据、删除数据需要保证原子性lua脚本String script= "if redis.call('get', KEYS[1]) == ARGV[1] then return redis.call('del', KEYS[1]) else return 0 end原创 2021-03-28 12:45:37 · 96 阅读 · 0 评论 -
Feign远程掉调用丢失请求头问题以及异步编排丢失上下文的问题
Feign远程掉调用丢失请求头问题解决方案:package com.song.gulimall.order.config;import feign.RequestInterceptor;import feign.RequestTemplate;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.sp原创 2021-03-27 22:31:59 · 239 阅读 · 0 评论 -
docker 安装RabbitMq以及使用介绍
Mq介绍RabbitMq介绍执行流程docker 安装命令行docker run -d --name rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq:management开机自动启动命令docker update rabbitmq --restart=always测试连接地址Springboot整合Rab原创 2021-03-27 13:19:28 · 913 阅读 · 0 评论 -
springboot 单点登录
1、springboot 单点登录单点登录英文全称Single Sign On,简称就是SSO。它的解释是:在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统2、流程图3、流程解析现在有认证服务器 ssoserver.com,客户端client1.com和客户端client2.com 两个不同域名的服务器,并且没有子域名关系(如果两个客户端有子域名关系,session进行统一存储,可以通过SpringSession手动去设置session的作用域,放大作用域,取父域名最为原创 2021-03-26 15:41:18 · 6116 阅读 · 0 评论 -
Springboot集成社交登录功能(微博登录)以及Session共享
Springboot集成社交登录功能原创 2021-03-26 09:44:14 · 577 阅读 · 0 评论 -
分布式锁原理与使用
分布式锁原理与使用 public Map<Long, List<Catalog2Vo>> getCatalogJson() { String catalogJson = stringRedisTemplate.opsForValue().get("CatalogJson"); if (StringUtils.isEmpty(catalogJson)) { // redis 分布式锁 S原创 2021-03-26 09:34:06 · 145 阅读 · 0 评论 -
springboot集成阿里短信功能
springboot集成阿里短信功能pom <dependency> <groupId>com.aliyun</groupId> <artifactId>dysmsapi20170525</artifactId> <version>2.0.1</version> </dependency> <dependency&原创 2021-03-25 15:39:54 · 589 阅读 · 1 评论 -
异步和线程池问题
异步和线程池问题package com.song.gulimall.gulimallsearch.thread;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;/* * * @program: gulimall * @description * @author: swq * @create原创 2021-03-24 15:20:58 · 162 阅读 · 0 评论 -
缓存-SpringCache 简介
缓存-SpringCacheSpring Cache是Spring框架提供的对缓存使用的抽象类,支持多种缓存,比如Redis、EHCache等,集成很方便。同时提供了多种注解来简化缓存的使用,可对方法进行缓存SpringCache 中的@Cacheable注解pom <dependency> <groupId>org.springframework.boot</groupId> <artifactId&g原创 2021-03-23 13:54:24 · 295 阅读 · 0 评论 -
分布式锁-Redisson简介与整合
一、 Redisson简介Redisson 是一个在 Redis 的基础上实现的 Java 驻内存数据网格,相较于暴露底层操作的Jedis,Redisson提供了一系列的分布式的 Java 常用对象,还提供了许多分布式服务。二、Redisson与springboot的整合(1)、pom <!-- https://mvnrepository.com/artifact/org.redisson/redisson --> <dependency>原创 2021-03-23 11:00:48 · 464 阅读 · 1 评论 -
springboot整合redis压测出现的堆外异常(OutOfDirememoryError)
springboot整合redis压测出现的堆外异常(OutOfDirememoryError)pom坐标 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>压测出现原创 2021-03-22 19:49:53 · 782 阅读 · 0 评论 -
nginx动静分离
nginx动静分离动静分离是指将静态资源和动态接口的请求进行分离开来,请求静态资源有nginx来转发,动态接口才由后台服务器处理。修改主页中的路径地址配置nginx的静态资源请求规则原创 2021-03-22 16:21:53 · 106 阅读 · 0 评论 -
性能压测-性能监控-jvisualvm使用
(1)、性能监控-jvisualvm使用启动jvisualvm的方式:1、到jdk的安装路径,双击打开2、cmd打开命令行输入jvisualvm进入路径:https://visualvm.github.io/pluginscenters.html重启进入原创 2021-03-22 15:38:59 · 178 阅读 · 0 评论 -
nginx-搭建域名访问环境
一、 nginx-搭建域名访问环境(不带网关)正向与反向相对于自己这台电脑来说,帮我们的电脑去上网的就是正向代理,帮助对方的电脑去寻找服务器就是反向代理正向代理:我们想要访问谷歌,搭建一台代理服务器,为电脑配置上代理服务器的地址,电脑想访问任何网址,都由代理服务器帮我们去访问,访问拿到内容后帮我们返回,所以看到的是搭建的这台服务器是帮我们进行上网。反向代理:搭建集群环境的时候非常需要,比如任何人去访问一个商城,商城有我们的后台服务集群,这些服务集群,每一个服务器,都可能都要在内网部署,这是一个内网i原创 2021-03-22 10:01:22 · 898 阅读 · 0 评论 -
Spring boot 集成 elasticSearch
Spring boot 集成 elasticSearch(1)、引入依赖<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>7.4.2</version&原创 2021-03-18 22:56:21 · 516 阅读 · 0 评论 -
docker安装nginx
(1)、 在/mydata 目录下面创建nginxmkdir nginx(2)、本地没有找到镜像,自动去远程下载docker run -p 80:80 --name nginx -d nginx:1.10(3)、将nginx中的配置文件拷贝到自定义的路径中去docker container cp nginx:/etc/nginx .(4)、删除刚才启动的nginx容器docker stop nginxdocker rm nginx(5)、更改结构(为了保持美观、结构统一)mv原创 2021-03-16 23:39:59 · 69 阅读 · 0 评论 -
elasticsearch
elasticsearch 入门(1)、保存操作带_的都称为元数据,反应基本信息(2)、查询操作(3)、更新文档(4)、删除文档(5)、bulk批量API(6)、导入测试数据原创 2021-03-16 21:15:11 · 79 阅读 · 0 评论 -
docker 安装 redis
1、拉去镜像docker pull redis2、如果直接挂载的话docker会以为挂载的是一个目录,所以我们先创建一个文件然后再挂载,在虚拟机中。在虚拟机中mkdir -p /mydata/redis/conftouch /mydata/redis/conf/redis.conf3、启动redisdocker run -p 6379:6379 --name redis \-v /mydata/redis/data:/data \-v /mydata/redis/conf/redis原创 2020-11-02 23:45:17 · 85 阅读 · 0 评论 -
docker安装上mysql
1、仓库拉去镜像sudo docker pull mysql:5.72、启动mysqlsudo docker run -p 3306:3306 --name mysql \-v /mydata/mysql/log:/var/log/mysql \-v /mydata/mysql/data:/var/lib/mysql \-v /mydata/mysql/conf:/etc/mysql \-e MYSQL_ROOT_PASSWORD=root \-d mysql:5.7–name指定容器原创 2020-11-02 22:49:44 · 77 阅读 · 0 评论 -
史上最全的docker安装方式
docker 安装:https://docs.docker.com/engine/install/centos/原创 2020-11-02 22:22:23 · 163 阅读 · 0 评论