自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 聊天机器人

可以用gpt生成,也可以用爬虫。图形化界面 gradio。向量数据库 faiss。

2023-09-16 14:42:27 656

原创 解析职责链模式:优化代码流程的设计模式

翻译成中文就是将请求的发送和接收解耦,让多个接收对象都有机会处理这个请求。将这些接收对象串成一条链,并沿着这条链传递这个请求,直到链上的某个接收对象能够处理它为止。在职责链模式中,多个处理器(也就是刚刚定义中说的“接收对象”)依次处理同一个请求。一个请求先经过 A 处理器处理,然后再把请求传递给 B 处理器,B 处理器处理完后再传递给 C 处理器,以此类推,形成一个链条。链条上的每个处理器各自承担各自的处理职责,所以叫作职责链模式。Toy// 创建玩具箱和具体处理者// 建立处理链。

2023-09-05 19:48:45 94

原创 排序小白必读:掌握插入排序的基本原理

本文介绍了插入排序算法的原理、步骤和时间复杂度。插入排序是一种简单直观的排序算法,类似于整理扑克牌的过程。通过逐个比较和插入元素的方式,将数据按照一定顺序逐步排列。文章还讨论了插入排序在日常生活中的应用场景,如整理书架、安排日程和积木排序等。最后,读者还可以参与考题互动,思考如何运用插入排序的思想解决实际问题。

2023-08-20 19:31:27 179

原创 AI大语言模型实践

背景介绍需求分析开发历程成就分行格式丢失段落首行缩进添加角色前端最近参加了极客时间的《AI 大模型应用开发实战营》,和老师共同开发了一个实战项目:Translator,将英文的pdf文档翻译成中文,再以pdf格式输出。老师先对市场需求做了分析,相对于传统翻译,成本很高,但通过大语言模型就可以大大地降低成本,总体来说,很有钱景。我收到这个作业是很兴奋的,因为这不是在实验室里的玩具,而是可以直接放到市场的一个服务一个工具。

2023-08-12 07:09:34 1550

原创 AES加密

`package cn.tongdun.preserver.util;/**@author gxd18@create 2022/3/7 15:02*/import java.io.UnsupportedEncodingException;import java.nio.charset.Charset;import java.security.InvalidAlgorithmParameterException;import java.security.InvalidKeyExceptio

2022-03-08 11:36:15 69

原创 controller如何如何免登录访问

标题###1、注解@Retention(RetentionPolicy.RUNTIME)@Target(value = {ElementType.METHOD,ElementType.TYPE})@Documentedpublic @interface Unlogin {}###2、@Componentpublic class SecurityInterceptor implements HandlerInterceptor { private final static Log

2021-12-22 12:18:47 547

转载 DateUtil工具类

import org.apache.commons.lang3.StringUtils;import org.joda.time.DateTime; import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.time.Instant;import java.time.LocalDate;import java.time.ZoneId;..

2021-11-04 17:30:21 154

原创 多级缓存···

1、redis单机版哨兵:监控,主从复制,故障转移,竞选机制,缺点是不能横向拓展集群:缓存商品页实现todo先从redis取,若没有再从数据库查询,查询出来后就存入redisredis序列化问题解决2、本地热点缓存先从本地热点缓存查,若没有,再去redis查,redis也没有,再去数据库查,查询完之后,分别把缓存存入本地、redis热点脏读非常不敏感生命周期短内存可控实现guava可控大小失效时间LRU失效策略线程安全的3、nginx_proxy_

2021-07-02 18:11:25 56

原创 分布式会话管理

1、基于cookie传输sessionIdtodo2、基于token传输sessionIdtodo将cookie或token用redis管理起来,都可以解决分布式会话的问题,但大型企业级的项目,最好使用基于token的方式传输sessionId为什么……cookie只支持html页面,无法支持移动设备、微信小程序、微信公众号,网络的路由规则是否会被改变呢,也不是我们后端人员所能控制的...

2021-07-02 09:27:48 95

原创 如何提升TPS?

1、nginx水平扩展,通过负载均衡分摊压力keepalive_timeout保持长链接 652、

2021-07-01 20:01:09 344

原创 OpenResty

whyOpenResty继承Nginx优秀的性能,再次基础上还支持lua、reids、本地缓存等,为后期性能优化提供了很好的框架如何安装OpenRestytoDo

2021-07-01 19:30:29 112

原创 内置Tomcat配置优化

server.tomcat.accept-count=100等待队列长度server.tomcat.max-threads=200最大线程数server.tomcat.min-spare-threads=10最小线程数server.tomcat.max-connections=10000最大连接数以上都是tomcat的默认配置默认连接数超过10000就拒绝连接默认线程数超过200+100就拒绝处理server.tomcat.accept-count=1000等待队列长度server.tomc

2021-07-01 18:34:16 259

原创 阿里云域名解析

1、 登陆阿里云,选择域名2、找到你的域名3、点击解析前提:域名需要实名认证4、访问成功前提是,你已经在你的云服务上安装了相关应用,比如我安装了tomcat

2021-06-21 14:07:24 73

原创 IDEA常用错误集

1、idea的properties图标变灰色了,properties文件也无代码提示https://blog.csdn.net/qq_40634846/article/details/105727223

2021-06-21 13:50:01 65

原创 LinUI

导入LinUI组件,not found,因为调试版本过低https://blog.csdn.net/qq_25503949/article/details/109629051

2021-06-21 13:31:01 69

原创 npm安装

npm使用需要安装Nodejsnodejs安装,只要一路点下一步http://nodejs.cn/download/

2021-06-21 13:29:34 45

原创 IDEA常用快捷键

批量修改变量名:shift + F6

2021-06-21 13:24:40 54

原创 秒杀中如何泄洪?

后端实现 private ExecutorService executorService; @PostConstruct public void init(){ executorService = Executors.newFixedThreadPool(20); }//同步调用线程池的submit方法 //拥塞窗口为20的等待队列,用来队列化泄洪 Future<Object> future = executorSe

2021-06-18 10:38:34 131

原创 秒杀大闸实现

当库存数量为0时,返回null @Override @Transactional public boolean decreaseStock(Integer itemId, Integer amount) throws BusinessException { long result = redisTemplate.opsForValue().increment("promo_item_stock_"+itemId,amount.intValue() * -1);

2021-06-18 10:34:37 71

原创 如何实现秒杀令牌?

Controller @RequestMapping(value = "/generatetoken",method = RequestMethod.POST,consumes = CONTENT_TYPE_FORMED) @ResponseBody public CommonRetureType generateToken() { String killToken = promoService.generateSecondKillToken(itemId, pro

2021-06-18 10:29:37 238

原创 秒杀中如何限流

private RateLimiter orderCreateRateLimiter;@PostConstruct public void init(){ orderCreateRateLimiter = RateLimiter.create(300); 同一时间只能通过300个 }在下单之前先判断下,如果返回false,则报错 public CommonReturnType createOrder( { if(!orderCreateRateLimiter.tryAcqu

2021-06-18 10:19:00 64

原创 如何在秒杀中用验证码分流压力

为什么要用验证码?在秒杀的过程中突然跳出一个验证码,虽然给用户的体验不好,但一定程度上分散了同一时间下单压力,保持系统的可用性1、后端之Controller//生成验证码 @RequestMapping(value = "/generateverifycode",method = {RequestMethod.GET,RequestMethod.POST}) @ResponseBody public void generateverifycode(HttpServletRe

2021-06-18 10:15:11 238

原创 linux及Window安装mysql数据库

1、安装mysqlyum install mysql*报错了error: rpmdb: BDB0113 Thread/process 19253/140038278600768 failed: BDB1507 Thread died in Berkeley DB libraryerror: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recoveryerr

2021-06-17 14:35:21 143

原创 云端脚本启动项目

1、application.yml在这里插入代码片2、脚本(deploy.sh)nohup java -jar xxx.jar --spring.config.addition-location=/x/x/application.properties3、启动项目./deploy.sh4、可能报错chmod -R 777 * --权限问题

2021-06-17 14:09:53 805

原创 jar包部署项目

1、IDEA打成jar包mvn clean package -Dmaven.test.skip=true2、上传jar包WinSCP软件上传cmd小黑框scp 指令上传3、云端启动1、 java -jar xxx.jar --启动项目;窗口关闭,项目也就关闭了2、 nohup java -jar xxx.jar & --后台启动,窗口关闭了,项目仍然运行--------nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行-------

2021-06-17 14:04:10 424

原创 linux常用指令

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-06-17 13:50:08 38

原创 依赖注入时飘红,但实际上没有错,那是因为安全等级设置有问题

2021-06-02 11:49:16 99

原创 md5密码加密

1、用户传过来的密码,一定要加码userModel.setEncrptPassword(EncodeByMd5(encrptPassword)); 对于用户传来的密码一定要进行加密private String EncodeByMd5(String str) throws NoSuchAlgorithmException, UnsupportedEncodingException {MessageDigest md5 = MessageDigest.getInstance("MD5");/*生成

2021-06-02 11:46:29 66

原创 验证码获取

@RequestMapping(value = "/getotp",method = {RequestMethod.POST},consumes = CONTENT_TYPE_FORMED) @ResponseBody public CommonRetureType getOpt(@RequestParam(name = "telephone")String telephone){ //1、随机数 Random random = new Random();

2021-06-02 11:45:34 145

原创 ajax调用接口

$.ajax({ type: "POST", contentType: "application/x-www-form-urlencoded", url: "http://localhost:8090/order/create", data: { "itemId": g_itemVO.id, "amount": 1, "promoId": g_itemVO.promoId }, xhrFields: {...

2021-06-02 11:40:06 557

原创 如何优雅地参数校验

1、实现类@Component //交给Spring注册管理public class ValidatorImpl implements InitializingBean { @Autowired private Validator validator; public ValidationResult validator(Object bean) { final ValidationResult result = new ValidationResult();

2021-06-02 11:20:47 67

原创 秒杀活动ID被覆盖,找不到该商品20210602

制作一个秒杀程序,该页面需要调用两个几口:1、获取页面信息;2、下单接口。获取页面信息接口可以正常返回信息,表示数据库中有该商品,但是在下单的时候却报错:“商品信息不存在”这到底咋回事?明明查询有该商品,但一等到下单就没有这个商品了。百思不得其解…………后来才知道,问题在于:获取商品信息时,从Service层model转换到前端VO视图中过程中,我把商品的id给覆盖了,原本商品id为5的,我却用活动id覆盖了,秒杀下单时当然就找不到该商品了。教训:1、IDEA有很好的代码联想功能,有时别图快,一

2021-06-02 11:09:17 50

原创 如何解决CORS跨域问题

1、后端@Controller("user")@RequestMapping("/user")@@CrossOrigin(origins = "*",allowCredentials = "true",allowedHeaders = "*")//一个注解搞定public class UserController extends BaseController {2、全局配置文件@Configurationpublic class WebMvcConfig implements WebMvcC

2021-06-02 10:58:21 92

原创 前端符号总结

$:表示对象$("#getotp")表示一个id为getotp的对象$("#getotp").on(“click”,function(){逻辑代码})on后面就是getotp对象所执行的动作$.ajax({逻辑代码}) --表示一个ajax对象#:用于jquery中选择id元素$("#getotp"):选择id为getotp的元素function1、var fnName = function () {…};使用function关键字声明一个函数,但未给函数命名,最后.

2021-06-02 10:55:25 1436

原创 jQuery常用方法

1、ready第一种:DOM加载完毕后执行ready()方法jQuery(document).ready(function() {alert("你好");});$(document).ready(function() {alert("你好");});第二种:DOM加载完毕后执行ready()方法jQuery(function() {alert("你好");});或$(function() {alert("你好");});第三种:立即执行匿名函数,只不过参数是jQuery对

2021-06-02 10:54:56 63

原创 如何优雅的处理异常

一、定义接口public interface CommonError { public int getErrCode();//获取错误码 public String getErrMsg();//获取错误信息 public CommonError setErrMsg(String errMsg);//使用set方法,便于后期自定义错误信息}二、实现类public enum EmBusinessException implements CommonError{ PAR

2021-06-02 09:24:05 55

原创 generator代码生成器 mybatis

一、application.ymlmybatis: mapper-locations: classpath:mapping/*.xml server: port: 8090spring: datasource: name: miaosha url: jdbc:mysql://127.0.0.1:3306/miaosha?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&a

2021-06-01 11:26:09 115

原创 Java分层领域模型DO、MODEL、DO

DO(Data Object):与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。DTO(Data Transfer Object):数据传输对象,Service 和 Manager 向外传输的对象。Query:数据查询对象,各层接收上层的查询请求。注:超过 2 个参数的查询封装,禁止 使用 Map 类来传输。VO(View Object):显示层对象,通常是 Web 向模板渲染引擎层传输的对象。Model参考文章领域模型中的实体类...

2021-06-01 10:13:43 371

原创 JAVA常用注解分析

@Component和@Bean的区别共同点:都是将类注册到spring容器中不同点:@Component:1、作用于类;跟(@Controller、@Service、@Repository)一样,通过类路径扫描,来自动侦测以及自动装配到Spring容器中。2、通俗易懂一点就是将要实例化的类丢到Spring IOC容器中去@Bean:作用于方法;需要和@Configuration配合使用@ResponseBody一Json格式返回@CrossOrigin(origins = “",

2021-06-01 09:52:20 27

原创 zookeeper入门

1、常用快捷键a、连接启动./zkServer.sh start --开启zookeeper服务器./zkCli --开启zookeeper客户端ctrl + C --退出zookeeperb、CRUD查看: stat / --查看某一节点下的状态ls /gxdspace --查看某一节点下的子节点ls2 path =ls path + stat ...

2019-09-02 14:53:27 145

空空如也

空空如也

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

TA关注的人

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