- 博客(77)
- 收藏
- 关注
原创 道路病害的检测与评估
我要训练的是一个能够道路病害检测模型,去kaggles与飞桨等网站上搜索了相关的数据集,最终是找到了一个带有8种病害类型的coco数据集,但是只有训练集和测试集合没有验证集合,于是从训练集中抽取了一部分(训练集合)作为验证集,同时给定的目录也不适合直接进行训练;训练一轮的时间大概是CPU35分钟左右,GPU1分30秒,可见使用GPU训练模型比CPU快了将近30倍,这就是为什么一定要使用GPU的原因。-由于测试集不用于训练模型,只用于训练好的模型的检测,所以可以不设置标注信息。之后可以准备数据集训练模型;
2024-04-03 11:19:15
1051
原创 资讯头条P2&文章查看
方案二:使用Freemarker生成模版文件,然后存储到MINIO分布式文件系统中,并在数据库中记录对应的URL,然后查询时直接查询MINIO即可,不用再查询数据库;-v /home/config:/root/.minio \ 目录挂载,将宿主机的/home/config目录挂载到容器中的/root/.minio目录上。-v /home/data:/data \ 目录挂载,将宿主机的/home/data目录挂载到容器中的/data目录上。如果想要在阿里云服务器上部署对应的内容,可以参考我的另一篇文章。
2024-03-28 20:42:43
846
原创 Docker部署springboot项目
此时jar包都会默认放在每个模块下的target目录下,注意父工程是没有jar包的,因为其打包方式是pom.其中zhisou是父工程,用于统一管理依赖版本,zhisou-common存放公共类,zhisou-pojo存放实体类,zhisou-server是真正要运行的。将"1"中获得的3个jar包使用ftp传输到你的服务器的某个特定目录上,比如我的目录是/home/pack/project-pack/zhisou下。4.配置插件,这些插件的作用是为 Maven 项目配置了编译器行为以及单元测试的执行方式。
2024-03-25 22:44:20
1221
原创 微服务day06-Docker&阿里云部署
我对此的推测是:首先firewalld是一个基于iptables而简化操作的防火墙,也就是firewalld是在iptables之上建立的,所以firewalld的指令会直接影响iptables的设置,所以关闭firewalld时,使用的是iptables自己的那一套,但是这套中并没有设置对应的端口规则,因此手动添加步骤4,如果开启了firewalld,由于已经在步骤3中设置了firewalld对于8848的规则,因此就使用这一套规则。但是入方向,即从外部访问服务器的端口是受到限制的),
2024-03-18 23:53:28
978
原创 资讯头条Extra&项目DEBUG
在第一篇文章中得知更改虚拟机IP为固定IP后,默认桥接网络可能无法直接使用,然而我们有没有搭建自定义Docker网络,所以采用第三种方式,与宿主机共享网络命名空间。,虽然没有直接凑效,但是让我了解到了个网桥(bridge)网络这个概念。本篇主要记录一些在开发中遇到的一些问题与解决方案。从这篇文章中得到了启发。
2024-03-13 11:20:30
359
原创 资讯头条P1&项目搭建
1.“跨域”是指域名不同或者域名相同,端口不同,跨域问题通常是指浏览器禁止请求的发起者与服务端发生跨域ajax请求,请求被浏览器拦截的问题。4.启动nacos在虚拟机中的docker容器,添加配置文件leadnews-app-gateway.yml,这段文件配置了全局的CORS(跨域资源共享)策略和路由规则.在heima-leadnews项目下heima-leadnews-gateway模块下创建模块heima-leadnews-app-gateway,用于提供app网关。
2024-03-11 16:00:03
868
原创 云商城P1&项目搭建
4.在cloud-market-util下搭建公共工程,公共工程market-service-dependency包含了所有微服务工程公共依赖包,所有微服务工程公共配置类(同时还继承了顶级父工程中配置的2个依赖),以后其他微服务工程需要使用的常用依赖都可以直接从该公共工程中取得。包括web包,mybatis-plus包,mysql包,redis包,nacos包。**注意market-goods-service要依赖market-goods-api中的实体类model需要将对应的依赖导入**
2024-03-10 17:17:17
855
原创 微服务day06-Docker
大型项目组件很多,运行环境复杂,部署时会遇到各种问题,各个应用依赖各不相同,版本不同等,linux系统不同等…部署时非常复杂,效率很低。Docker如何解决依赖兼容的问题?将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包将每个应用放到一个隔离容器去运行,避免互相干扰虽然解决了不同应用的兼容问题,但是开发、测试等环境会存在差异,操作系统版本也会有差异,怎么解决这些问题呢?linux系统的原理。
2024-03-07 21:41:49
1065
原创 笔试面试(持续更新)
在这段代码中,变量 b 最初的值是 10。然后,在 try 块中,b 的值增加了 10,变成了 20。接着,由于遇到了 return 语句,try 块中的代码执行到此结束,程序将跳出整个方法。但在方法返回之前,finally 块中的代码会执行。finally 块中的 return 语句会覆盖掉 try 块中的 return 语句,所以最终的返回值是 b 的当前值,即 30。一个印象比较深刻的题目是问try/catch/finally的题目:请问如下代码执行结果?
2024-03-06 18:03:06
497
原创 微服务day05-Gateway网关
1.用户发送了一个请求,会优先经过gateway网关,网关进行身份验证与权限校验,然后进行服务路由(根据设定好的路由规则判断该请求应该转发给哪一种微服务。2.网关从nacos注册中心中拉取微服务列表。3.按照规定好的路由向对应的微服务发送请求,如果一种服务有多个比如user-service,那么再进行负载均衡)。
2024-03-06 11:19:56
1106
原创 微服务day04-基于Feign的远程调用
类型作用说明修改日志级别包含四种不同的级别:NONE、BASIC、HEADERS、FULL响应结果的解析器http远程调用的结果做解析,例如解析json字符串为java对象请求参数编码将请求参数编码,便于通过http请求发送支持的注解格式默认是SpringMVC的注解失败重试机制请求失败的重试机制,默认是没有,不过会使用Ribbon的重试配置日志方式一# feign日志级别配置feign:client:config:userservice: # 针对某个微服务的配置。
2024-03-04 20:00:22
1147
原创 微服务day03-Nacos配置管理与Nacos集群搭建
5.分别修改三个nacos中的application.properties中的server-port,server-port对应的是你在cluster.conf中配置的内容,比如让nacos1中的server-port=8848,让nacos2中的server-port=8858。nginx进行反向代理的配置时,一个http中只能有一个server{},所以像视频中老师那样直接复制进去是不行的,需要删除之前的server即可。项目启动>>>读取本地配置文件>>>创建spring容器>>>加载bean。
2024-03-02 17:06:05
1350
原创 微服务day02-Ribbon负载均衡与Nacos安装与入门
在上一节中,我们通过在RestTemplte实例中加上了注解 @LoadBalanced,表示将来由RestTemplate发起的请求会被Ribbon拦截和处理,实现了访问服务时的负载均衡,那么他是如何实现的呢?Ribbon实现负载均衡的流程如上图所示,order-service需要请求user-service的服务,根据user-service在eureka注册中心的注册的服务名称是userservice,order-service直接使用usersivce作为“IP地址+端口号”进行访问,发起了请求h
2024-03-01 21:33:49
1319
原创 lc经典面试经典150题之数组/字符串篇(持续更新中)
计数排序属于典型的用空间换时间的算法;对于一个随机的数组比如是:arr=[2,4,1,2,5,3,4,8,7];
2024-02-28 11:08:34
497
原创 《智叟出行》P1-重构登陆模块(持续更新)
智叟出行app之前的后台功能并不完善,因此打算用这段时间对后台代码进行重构,顺便完善一些新的功能,并给未来可能会添加的新功能预留接口。
2024-02-20 22:59:38
391
原创 Java面试题之Spring相关问题(持续更新)
spring是一个开源框架,为了简化企业开发而生,使得开发更加简洁,spring也是一个IOC和AOP的容器框架,包含并管理对象的声明周期,spring容器中通过一些列的map结构进行存储。例如在a()中调用b(),会首先判断a()上有没有事务,如果a()是事务方法,b()就用a里边的事务即可,也就是b()方法会加入a的事务,无论a还是b发生异常,都会导致整个事务回滚;spring是一个开源框架,一个容器,还是一个生态,spring是一个最底层的服务支持,为spring全家桶提供了支撑,起到了基石的作用。
2024-02-20 22:52:27
908
原创 微服务day01-认识微服务与Eureka注册中心
微服务≠springcloud,是一种经过良好架构设计的分布式解决方案,微服务架构特征单一职责:微服务拆分力度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发面向服务:微服务对外暴露业务接口自治:团队独立,技术独立,数据独立,部署独立,每个服务有自己独立的数据库隔离性强:服务调用做好隔离,容错,降级,避免出现级联问题单体架构将业务的所有的功能集成到一个项目中开发,打成一个包部署架构简单部署成本低适合面向企业内部的小项目耦合度高分布式架构。
2024-02-19 20:50:34
1252
原创 《苍穹外卖》知识梳理P11-Apache POI导出报表
由于实际业务中可能会有复杂的报表格式,如果直接使用POI进行读取操作十分繁琐,通常是先在windows上对报表格式进行设计,得到一个模版文件,直接读入模版文件进行操作即可。可以通过Apache POI处理excel文件,核心操作是读和写。备注:并不是下载了5个(是我之前测试用的提前下载了4个)1.导入maven坐标。2.测试代码(写操作)3.运行结果(写操作)4.测试代码(读操作)5.运行结果(读操作)
2024-02-18 22:50:50
722
原创 《苍穹外卖》知识梳理P9-定时任务、来单提醒与用户催单
修改支付成功业务层代码OrderServiceImpl.paySuccess,这里代码中所指出的客户端是商家管理端(由于商家可能打开了多个管理端页面,所以向所有与websocket-server建立了连接的管理端都推送了订单通知)此时生成了一个域名并被映射到localhost:8080,使用临时域名访问swagger接口文档(注意复制时如果cmd窗口无法复制,可以右键点击“标记”,在此之后便可以复制)由于前边使用的模拟微信支付,直接调用了支付成功的接口,所以并没有微信支付的相关配置;
2024-02-18 16:07:05
1883
原创 《苍穹外卖》知识梳理p7-用户下单与模拟微信支付
而每一个商品对应一个订单详情表,所以订单表与订单详情表是一对多的关系;涉及微信支付工具类的代码已经给出:位于模块sky-common下的com.sky.utils的WeChatPayUtil下;此时,模拟交易成功,直接调用业务层的交易成功的方法,并将“交易成功”的订单号传入;1.订单表:记录一些订单信息,比如收货人,收获地址,支付金额,下单时间等;2.订单详情表:记录订单上主要商品的信息,比如:套餐,菜品等;餐具数量状态tablewareStatus;而交易成功的业务层方法会直接修改订单的状态;
2024-02-16 18:26:54
1311
原创 《苍穹外卖》知识梳理6-缓存商品,购物车功能
用法大致宇@CachePut相同,效果不同,会先到redis中查询有无结果,如果有则不调用下边的方法,如果没有才调用,并随后将被调用的方法的返回值加入redis中;比如@CachePut(cacheNames=“userCache” , key=“abc”),则缓存中的Key就是userCache::abc。另外,如果需要动态的进行拼接Key值可以使用Sring el表达式语言,从参数或返回值中获取内容;新增菜品,修改菜品,批量删除菜品,起售,停售菜品都需要清理缓存数据;在启动类上开启缓存注解功能。
2024-02-11 17:55:46
1377
原创 《苍穹外卖》知识梳理P5-店铺营业状态设置与用户端微信登录实现
5.由于后续小程序还有其他业务请求开发者服务器,因此应该将自定义登陆状态(token)与openid,session_key关联。由于店铺营业状态可以算是一个单独的内容,没有必要为其单独设置一个表,因此将营业状态单独设置到redis缓存中。1.小程序调用wx.login()获取code(授权码);3.开发者服务器调用微信接口服务,传递appid+appsecret+code参数;4.微信接口服务返回session_key和openid(微信用户的唯一标识);8.小程序发起业务请求,携带jwt-token;
2024-02-11 09:54:33
769
原创 《苍穹外卖》知识梳理P4-异常处理
为了方便定位错误,使用自定义异常;自定义异常会存放在common模块中,存放在common模块下的com.sky.exception包下;/*** 业务异常,基类异常继承运行时异常,提供2个构造函数,其中有参构造可以将自* 定义的异常信息传入;随后会同样的定义一些业务异常,各个业务异常分别对应不同的异常情况;比如AccountNotFoundException对应账号不存在的业务情况;另外,其他的业务异常都继承自BaseException。/**
2024-02-03 17:50:36
1103
1
原创 《苍穹外卖》知识梳理P3-配置文件
1.通过@ConfigurationProperties(prefix = “sky.jwt”)注解读取applicaiotn.yml中对应位置的配置信息,自动为同一字段的变量赋值;配置类统一放在config包下,都需要加上@Configuration注解,以声明这是一个配置类;2.通过@Component注解将JwtProperties注册为Bean,交给spring容器管理,默认为单例模式(因为实际上属性对象只需要一个就够了)上一节中,进行了存放公共类的模块common模块的结构说明。
2024-02-03 15:53:23
507
原创 《苍穹外卖》知识梳理P2-公共类说明
6.properties包:主要提供属性类,从配置文件中读取相应的属性,并注册成为Bean,可以被注入到其他类比如拦截器,配置类等中;7.Result包:统一返回数据结果,将所有Controller返回的结果都处理成code,msg,data的格式;1.constant包:主要存放常量类,类中只有静态常量,在需要使用时直接读取;8.uitls包:主要提供一些工具类,工具类的所有方法都设置为静态,可以被直接调用;所有公共类都位于common模块下,由于每个包下的类很多,在此不一一列举;
2024-02-03 15:49:07
477
原创 关于uniapp中的日历组件uni-calendar中的小红点
如果你使用过uni-calendar组件,可能你觉得这个小红点有点碍眼,但是官方给定的日历组件uni-calendar中如果你想要在某一天上添加一些信息例如:价格,签到,打卡之类,只要标记上就必定会带上小红点,那么我如何有想保留这些信息又把小红点去掉呢?可以修改一下日历组件uni-calendar的源码,如图,打开该目录下的uni-calendar-item.vue文件;找到这个class:‘uni-calendar-item__weeks-box-circle’;
2023-07-26 23:01:10
1726
1
原创 gitee创建初始化仓库并上传代码
2.4 在后续的开发中,如果想要保留不同的分支,还可以新建分支。2.2 右键点击git bash here。2.3 使用git命令提交代码到远程仓库;1.1 在gitee上创建一个仓库。2.1 在本地进入到你的项目目录;1.2 复制仓库地址。
2023-07-21 19:45:22
521
原创 kob后端1
RequestMapping:提供路由信息,负责URL到Controller中的具体函数的映射。@GetMapping(链接地址):用于将HTTPGET请求映射到特定处理程序方法的注释。具体来说,@GetMapping是一个作为快捷方式的组合注释@RequestMapping(method = RequestMethod.GET)。
2023-02-05 22:08:01
527
1
原创 kob配置git环境与项目创建
添加目录之后,比如想要用函数返回一个页面,那么,需要先创建一个页面,这个页面应该放在resource目录下边,比如要创建的有关pk模块的链接要放在resource目录下的pk子目录下,在/resource/templates下。显示有readme.md(标红文件)没有被收录到git仓库中,输入命令:“git add .”(表示将当前所有未收录到git仓库中的所有文件都收录到仓库中);此时你会发现多了一个.git文件夹;5.2 在创建前端项目,点击创建,然后切换文件夹到你的项目的所在文件夹,点击创建。
2023-02-02 22:14:31
636
原创 三分钟彻底搞懂paint,repaint,update!
JPanel的paint是按顺序画的,因为Frame已经过时了,以后咱们就可以把用paint方法把东西画在JPanel(或者JLabel)上面,这样不用加双缓冲就不闪烁!最近总结了一下java中的paint,repaint和updata三者之间的关系,首先咱们都知道用paint方法来绘图,用repaint重绘,用update来写双缓冲。运行:发现不闪烁了,说明刚才加的双缓冲是没有问题的,然后我在JFrame的update方法里和Frame的update方法里都加个输出语句。我第一时间想到的就是加个双缓冲。
2022-12-17 21:04:40
889
原创 操作系统之文件存储空间管理
如果第一个块不够100个,缺少x个,那么将x个回收的块加入到第一组中,并将第一组的块数量+x直到够100个块为止,如果第一组的块已经达到数量上线,然而还要在回收1块,此时需要将超级块中的数据复制到新回收的第一个块中,让新回收的块称为第一个分组,而超级块包含的块数量置为1,并指向新回收的块;如果需要分配的盘块数
2022-11-13 16:56:41
1137
原创 操作系统之文件的基本操作
2.用户进程表可以有多个,其中由于对文件读写指针和访问权限不同而被放在表项之中,另外有系统表索引号,用来指向系统的打开文件表中的某一个表项,表示用户对指向的文件进行某些操作;3.用户进程的读写指针记录了该进程对用户的读写操作进行到的位置,不同用户的读写指针进行到的位置不一样,因此不同进程的读写指针也不一样;在正式开始读文件的时候,记事本进程已经有了该文件对应的表项,因此记事本进程只需要知道要读的文件对应的文件编号就可以了;2.根据用户提供的文件的路径,os一层层的查找目录,找到文件对应的目录项;
2022-11-13 11:05:09
938
原创 操作系统文件管理-----索引分配
那么假设是上图中的两极索引表,第一层最多有1024/4=256个索引项,每个索引项指向下一层的一个索引表,第二层最多也有256个索引项,每个索引项指向一个1KB大小的文件记录(每条文件记录也由一个块保存,一个文件占有多个块),那么这种条件下的两级索引最大支持的文件大小是256。假设有多个索引块,而各个索引块是通过这种链接的方式连起来,所以,为了找到第二个索引块的块号,操作系统需要先将第一个索引块读入内存,然后才能根据这个索引块中的指针找到第二个索引块号,并且把第二个索引块读入内存;1KB=64MB大小;
2022-11-10 22:43:27
2864
原创 文件管理系统----文件目录
存在的问题:当用户需要频繁的访问某同一目录下的多个文件的时候,如果使用绝对路径进行查找,那么每次访问该路径下的文件都要从根目录开始查找,每次都需要3次读磁盘I/O操作,是非常麻烦和耗时间的;用一个目录表来表示这个目录下都存放了哪些东西,在D盘的每一个文件,文件夹都会对应D盘当中的一个表项,所以一条条的目录项本身就是一条条的记,所以目录本身就是一种有结构的文件;当找到了对应的文件目录项之后,需要将索引结点调入内存,索引结点中及记录了各种信息,包括在外村中的位置,根据外村中的位置便可以找到该文件;
2022-11-08 23:11:16
849
原创 文件管理系统-----文件的逻辑结构
100)/100=50次,找到所属的低级索引表之后,需要在低级索引表中查找对应的记录所属的分组,需要50次,找到分组之后,需要在分组中查找对应的记录,平均需要50次,因此总共需要50+50+50=150次相对于100w次,检索速度提高了非常之多;顺序结构,这些记录的顺序和关键字的顺序存在一定的关系,此时说明这些文件是按照某种关键字的顺序来排列的,此时可以通过诸如二分法,哈希表等方式来快速的查找某一个关键字对应的记录。文件中的记录一个接一个的顺序排列(逻辑上),记录是定长的或可变长的。
2022-11-08 22:13:56
478
原创 文件管理系统概述
一组有意义的信息/数据的集合;文件应该有哪些属性?1.文件名:由创建文件的用户决定文件名,同一目录下不允许有重名文件;2.标识符,尽管同一级目录下不允许有重名文件,但是不同目录下可以有重名的文件,为了区别这些文件,系统给每一个文件都有一个唯一 的标识符,通常表示为文件名后边一大串的字母/数字,3.类型,设置不同的文件类型的好处:如操作系统可以为不同类型的文件设置默认的打开方式。
2022-11-08 20:52:39
1640
原创 计算机组成原理浮点数表示
浮点数的表示分为阶码和尾数;比如3.026*10^11^;阶码是+11;尾数是3.026;对于阶码:阶符为正,小数点向后移n位(n表示阶的大小);阶符为负,小数点向前移n位(n表示阶的大小);对于尾数:数符表示正负,数值表示绝对值的大小;显然尾数的位数越多,表示的数字的精度越高:3.026*10^4^=30260;3.0265*10^4^=30265;
2022-11-07 22:12:59
13541
10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人