- 博客(465)
- 资源 (5)
- 收藏
- 关注
原创 手把手搭建基于Golang的社区论坛:(6) 前端——登录页面
进入到前端部分后,需要大家具备相应的前端知识,比如vue.js、css等。下面逐个页面分析,首先从登录页开始。其实主要有三个部分:下面我们逐一分析。html代码:第一个div里就是普通的html代码,主要是内容就是一个图片。比较重要的是这里其实是用到了vue.js的组件(component)功能,组件(Component)是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的
2024-12-14 22:01:29
260
原创 手把手搭建基于Golang的社区论坛:(5) 前端——组件声明
bbs-go 为前后端分离设计,后端接口服务使用简洁的 Go 语言进行开发,前端页面使用 Vue.js 进行开发。本节开始,我们遵循从外到里的顺序分析这个项目。首先是前端,分析admin目录下的Vue.js框架代码,了解前端逻辑。
2024-12-14 18:15:55
98
原创 手把手搭建基于Golang的社区论坛:(4) MVC架构
前面三节讲完了server中的init方法,下面再看对MVC架构的设置,即server.NewServer()
2024-12-08 16:11:39
144
原创 手把手搭建基于Golang的社区论坛:(3)配置管理
可见,本项目采用的是ip2region/binding/golang/xdb工具,它是一个离线IP地址定位库和IP定位数据管理框架,10微秒级别的查询效率,提供了众多主流编程语言的xdb数据生成和查询客户端实现。从名字也可以看得出,这个工具的主要功能是通过IP获取城市地区。数据库文件可以从上面的仓库里下载。下面的xdb.LoadContentFromFile其实就是读取的ip2region.xdb文件,大小大概10mb,常驻内存。
2024-12-08 14:28:49
115
原创 手把手搭建基于Golang的社区论坛:(2)配置管理
可见数据库用的ORM工具是GORM。GORM 是 Go 语言中最受欢迎的 ORM 库之一,它提供了强大的功能和简洁的 API,让数据库操作变得更加简单和易维护。可以看到gorm对命名策略做了配置,表名开头:"t_",比较有意思的一个配置是SingularTable=true,作用是这样的:gorm默认使用复数映射,go代码的单数、复数struct形式都匹配到复数表中,比如User Struct映射到数据表Users上:创建表、添加数据时都是如此。
2024-12-08 13:21:51
129
原创 手把手搭建基于Golang的社区论坛:(1)配置管理
本专栏计划用百篇文章解析这个开源项目,手把手教大家学习优秀项目,学习最优秀的项目是怎么构建的才能最快地增长我们自己的知识与能力。
2024-12-07 12:49:06
230
原创 AI换脸原理(6)——人脸分割介绍
人脸分割是计算机视觉和图像处理领域的一项重要任务,它主要涉及到将图像中的人脸区域从背景或其他非人脸区域中分离出来。这一技术具有广泛的应用场景,如人脸识别、图像编辑、虚拟背景替换等。在计算机视觉(CV)领域,经典的分割技术可以主要划分为三类:语义分割(Semantic Segmentation)、实例分割(Instance Segmentation)以及全景分割(Panoramic Segmentation)。语义分割旨在对图像中的每个像素进行分类,以确定其所属的类别或对象。
2024-05-08 14:01:05
806
原创 AI换脸原理(4)——人脸对齐(关键点检测)参考文献2DFAN:代码解析
在本文中,重点介绍了以下几项创新性的成果,旨在为人脸关键点检测领域带来新的突破。首先,成功构建了一个卓越的2D人脸关键点检测基线模型。这一模型不仅集成了目前最优的关键点检测网络结构,而且在大规模且综合扩展的2D人脸特征点数据集上进行了深度训练,从而确保了其出色的性能。针对3D人脸对齐数据集稀缺的问题,提出了一种创新的解决方案。通过设计一个能够从2D标注转换为3D标注的卷积神经网络(CNN),成功创建了LS3D-W数据集。
2024-05-08 13:07:54
729
原创 AI换脸原理(4)——人脸对齐(关键点检测)参考文献2DFAN:How far are we from solving the 2D
本文研究了在现有的2D和3D人脸对齐数据集上,深度神经网络距离接近饱和性能还有多远。(a)我们首次通过将最先进的地标定位架构与最先进的残差块相结合,构建了一个非常强大的基线,在一个非常大但综合扩展的2D面部地标数据集上训练它,最后在所有其他2D面部地标数据集上对其进行评估。(b)我们创建了一个2D地标网络,该网络将2D地标注释转换为3D并统一所有现有数据集,从而创建了LS3D-W,这是迄今为止最大和最具挑战性的3D面部地标数据集(约23万张图像)。
2024-04-28 11:31:43
365
原创 AI换脸原理(1)——人脸检测介绍
人脸检测领域常用的评价指标主要包括准确率、精确率(查准率)、召回率(查全率)、F1值、IoU(交并比)、误识率(FAR)和拒识率(FRR)等。随后,fc7层输出尺寸为(19,19,1024),经过变换后得到(19,19,621)的输出。21),由于该层靠近网络前端,其数值相对较大,因此采用L2归一化来减小数值范围。然后是conv7_2层,其输出尺寸为(5,5,256),变换后得到(5,5,6。最后,conv9_2层输出尺寸为(1,1,256),变换后得到(1,1,4。
2024-04-12 16:22:30
685
原创 在已有代码基础上创建Git仓库
git pull origin master –allow-unrelated-histories之后就可以merge和push啦!至此,成功将本地和远程联系起来。但是,这么做其实是会有一些问题,我们接着往下看。
2024-02-16 21:44:52
1099
原创 bean的生命周期分析(五)
12SpringApplication的run分为两个阶段,即new SpringApplication()时的执行构造函数的准备阶段,和run时的运行阶段。下面两个阶段只是简要介绍下,我们本系列博文关注的重点是bean的创建,只会关注bean相关的过程。
2023-06-17 23:10:40
1163
原创 bean的生命周期分析(三)
2.6.2 resolveBeanClass下面是doResolveBeanClass的源码,由于bean的类没有加载到jvm,下面执行bean的类解析操作。2.6.3 prepareMethodOverridesmbdToUse.prepareMethodOverrides();作用是:提前标记下需要覆盖的方法。对于prepareMethodOverrides方法,如果bean标签中配置了属性lookup-method以及属性replaced-method的值,这就意味着bean中的某些方法
2023-06-11 12:32:35
980
原创 bean的生命周期分析(四)
在对于不是实现代理类是通过调用 doCreateBean 方法来创建对象的:2.7.1.1 applyMergedBeanDefinitionPostProcessorsBean对象实例化出来之后,接下来就应该给对象的属性赋值了。在真正给属性赋值之前,Spring又提供了一个扩展点MergedBeanDefinitionPostProcessor.postProcessMergedBeanDefinition(),可以对此时的BeanDefinition进行加工,此处还有一个 应用增强器 applyM
2023-06-10 21:47:39
1056
原创 ConcurrentHashMap扩容中的高低位划分链表
runBit是桶的首节点和n的与,而b是桶内的节点和n的与,明明已经在同一个桶了,为什么b还能不等于runBit呢?原因是,在一个桶,以为这元素的hash & (n-1)值都相同,而不是hash & n一样。举个例子,比如n=16=10000,hash&(n-1),是hash & 01111,所以,与值相同的元素在一个桶里其实说这些元素的后四位二进制相等,第一位高位是可以不同的。因此在源码片段中是可能不同的,换句话说,源码片段就是在比较最高位是否相同,根据是0还是1分为两个链表。
2023-06-10 15:07:41
268
原创 bean的生命周期分析(二)
入口是getBean方法下面这个doGetBean是重点,关键部分用注释的形式标记了,下面会针对重点内容进行讲解。// Eagerly check singleton cache for manually registered singletons. // 重点解析1 getSingleton 详见2.5.2 Object sharedInstance = getSingleton(beanName);
2023-06-04 12:02:33
619
原创 bean的生命周期分析(一)
点进去loadBeanDefinitions方法,因为我们是以xml创建bean举例,所以这里会跳转到xml相关的实现类——AbstractXmlApplicationContext类,对应的loadBeanDefinitions方法。beanFactory就是XmlBeanDefinitionReader里面的registry,所以后面我们看到的registry就是beanFactory对象。再点!125行获取配置文件路径。再点进去127行。AbstractXmlApplicationContext类。
2023-05-30 21:16:17
925
原创 使用Docker安装neo4j教程
dbms.security.auth_enabled=false可以免于登录,默认登陆用户名和密码都是neo4j,但是我总是登录不上去,报错:Neo.ClientError.Security.Unauthorized: The client is unauthorized due to authentication failure.,这里直接给取消登录了。
2023-04-22 23:34:00
1652
1
原创 SpringCloud整合AOP做日志管理
我们要自定义一个注解,干什么用呢?用于标注在需要进行AOP管理的对象上,这个对象可以是方法(ElementType.METHOD),也可以是其他的。但既然是注解式AOP,就都需要标注我们自定义的注解才能告诉spring,咱们要对它进行AOP管理。/*** @DESCRIPTION : 自定义注解,注解式AOP。用于用户在认证服务器的行为日志记录,比如登录登出注册等等。
2023-04-20 21:07:05
1270
原创 SpringCloud微服务整合Spring Security进行统一鉴权
有一个大坑,记得如果是单机操作多个微服务项目,要给每个微服务添加session cookie name,如下server : port : 8003 servlet : session : cookie : #防止 Cookie 冲突,冲突会导致登录验证不通过一定一定要做这一步。
2023-04-15 16:36:08
4371
4
原创 SpringCloud微服务整合Spring Security OAuth2
要记得引入common后也要做必要的配置,比如nacos,相关配置可见博客:https://blog.csdn.net/qq_41076797/article/details/128509393、https://blog.csdn.net/qq_41076797/article/details/128508723;外面请求进来先通过网关进行身份认证,未登录的去登录,已登录的网关找到auth进行鉴权,通过才放行到具体的普通功能性微服务。代码会在后面给出,因为这段代码在后面的配置文件中。
2023-04-12 00:09:36
3605
1
原创 使用MyBatisPlus实现varchar类型和实体类List类型的转换
【代码】使用MyBatisPlus实现varchar类型和实体类List类型的转换。
2023-04-09 19:43:29
2588
1
原创 SpringCloud整合Swagger3
springfox : documentation : swagger - ui : enabled : true # false 关闭swagger - ui界面 但不关闭openapi# == == = 自定义swagger配置 == == = #
2023-04-05 23:43:55
2965
1
转载 http.authorizeRequests()详解
表示可以匿名访问匹配的URL。访问控制方法都很简单, 只要匹配到url后直接在后面追加调用这个方法就行了,链式调用特别简单,不演示了。如果有参数,参数表示IP地址,如果用户IP和参数匹配,则可以访问。下面分别讲一下url匹配规则都有哪些,权限控制方法都有哪些。如果有参数,参数表示角色,则其中任何一个角色可以访问。如果有参数,参数表示权限,则其中任何一个权限可以访问。如果有参数,参数表示角色,则其角色可以访问。如果有参数,参数表示权限,则其权限可以访问。表示所匹配的URL都不允许被访问。
2023-04-05 14:01:22
4314
原创 Java中遍历集合时增删改的异常情况及处理方法
其实for循环的报错原理很好理解,不只是从后往前遍历,在正常遍历时人工的修改for循环中的i的值,使其不越界就可以。因为每次strs.size()是取的实时的值,如果事先用n得到,那n的值是旧值,不是实时变化的。在迭代器遍历、for遍历、foreach遍历时,进行增删操作都会失败报错,而修改操作则成功。解决方法:使用迭代器的删除方法,或者从后往前for循环。
2023-04-04 14:02:35
466
原创 springcloud整合Druid数据源
数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。Druid是阿里系提供的一个开源连接池,除在连接池之外,Druid还提供了非常优秀的数据库监控和扩展功能,所以在项目开发中一般会使用 Druid。监控数据库访问性能,通过StatFilter插件,详细统计SQL的执行性能SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和JdkLog 数据库密码加密。
2023-04-03 23:28:52
1241
原创 Druid配置ServletRegistrationBean的作用
这个ServletRegistrationBean类感觉挺有趣的,不知道为啥配置了它就可以显示页面了,有空想看看它源码怎么写的,主要负责什么功能。ServletRegistrationBean是为了打开Druid的监控统计功能及内置监控页面。
2023-04-03 21:36:41
1064
原创 @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})不起作用
【代码】@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})不起作用。
2023-04-03 20:21:14
877
原创 springboot整合springcloud之nacos配置中心
2.1 命名空间:配置隔离;* 默认:public(保留空间),默认新增的所有配置都在public空间* 然而,环境有开发、测试、生成等等,命名空间不应相同。可以切换环境把public里的配置克隆到pro,改变里面的值。这样,同一配置,不同环境下,存在多个。那想切换命名空间咋办:bootstrap.properties。
2023-01-01 01:38:29
2440
原创 springboot整合springcloud之feign
dubbo:接口是共有的,在项目公有子模块里。消费者直接注入接口,调用就可以了。提供者的配置文件里记录提供服务的接口,一个服务可以多个接口提供(负载均衡)。一个接口当然也可以有多个实现类,可以手工选择。明确谁作为服务的消费者,谁作为服务的提供者,这里场景是用户和优惠券,用户作为优惠券的消费者,厂家作为优惠券的提供者。注解大概不加也行,那就得加@service到接口上注入到IOC容器。1是配置文件里的application-name,也就是服务的名字。2是刚才定义的服务者方法的前两行,直接复制过来。
2022-12-31 22:03:51
368
原创 springboot整合springcloud之nacos
压缩包解压,找到startup.cmd,我的是在E:\nacos\nacos-server-2.2.0\nacos\bin目录下。默认端口是8848,访问:http://localhost:8848/nacos,账号密码默认nacos。不用加版本号,因为在此基础上引入的cloud依赖中统一规定了版本号。因为nacos默认是集群启动,这里用单机,那就加入后缀-m。后面等于是给应用起个名字,不能忘写。
2022-12-31 21:19:49
453
原创 200字学会辗转相除法原理详解
m%n=t,其实t就是(a%c)*b,很自然m和n的最大公约数,其实就是t=(a%c)*b和n=c*b的最大公约数。由于c>a%c,因此m重新设为n,n设为较小的那个数,即t,然后循环这个过程,即a‘=c,c’=a%c继续这个过程,同样a’>c’且二者不存在非0以外的公约数。前面说过a’>c’且二者不存在非0以外的公约数,那么如果除尽了则意味着c’=1,那么意味着n=c’*b=1*b=b,得到最终结果。原理:设m>n,m=a*b,n=c*b,设b为最大公约数,自然有a>c且二者不存在非0以外的公约数。
2022-12-13 15:16:26
290
原创 Thymeleaf @{}作用
对于前缀,也就是刚才我们随便写的访问请求/css/css/dasdf.css,页面解析是考虑这个前缀的。巴拉巴拉,换句话说不受人为干预影响。假设一个登陆验证的场景,有一些网页只有登录了才能访问,拦截器对于任何没有登录就访问的请求都拦截下来,这时会自动跳转到登录页面(注意,此时不会触发404请求,首先走拦截器,通过拦截器的非法请求才会转404)。发现地址栏依然是:localhost:8080/css/css/dasdf.css,这也就意味着,如果你不用@符号,那么html解析的页面js等静态资源的路径就是。
2022-12-10 23:09:53
138
计算机网络实验课码分多址CDMA.代码zip
2019-11-01
C#winform窗体+socket实现登录通信聊天软件(可私聊与群聊)
2019-03-06
zhilian1.zip
2019-08-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人