- 博客(74)
- 收藏
- 关注
原创 Https安全
域名转换为ip地址的服务dns的查询和响应是udp协议的明文传输黑客可以通过抓DNS数据包的方式看到访问网站的真正ip地址(比如WireShark软件)DNS劫持,DNS污染(中间人根据dns可以误导去一个错误的ip地址,让浏览器无法正常工作)
2025-04-01 10:49:26
218
原创 DeepSeek R1 模型在架构上的优势
这些架构上的优势使得 DeepSeek R1 模型在复杂逻辑推理,如数学证明、代码生成和决策分析等任务上表现出色,并且在推理能力、效率和性能等方面都有显著提升。同时,其开源性质也为研究和应用提供了更多可能性。
2025-02-18 13:48:07
302
原创 应用接入gpt
平台:百度千帆大模型模型:ERNIE-Tiny-8K(客服对话多标签生成模型),ERNIE4.0(安全模型),DeepSeek-R1-14B(人工客服对话模型)技术:SFT(客服对话多标签生成),提示词工程,双模型机制防止提示词注入。
2025-02-18 12:40:48
1178
原创 《大模型应用开发极简入门》随记
ML算法被称为人工神经网络DL是ML的一个分支最先开始简单语言模型吗,例如:n-gram模型(通过词频来根据前面的词预测句子里下一个词---可能生成不连贯的词),为了提升性能引入循环神经网络(RNN)和长短期记忆(LSTM)网络---处理大量数据效率还是不行。Transformer架构是一种基于注意力机制的深度学习模型架构,主要用于处理自然语言处理(NLP)任务,如机器翻译、文本生成、问答系统等。
2025-02-18 10:22:13
548
原创 MyBatis注解开发详解
MyBatis可以使用简单的XML或注解来配置和映射原始类型、接口和Java POJO(Plain Old Java Objects,普通的Java对象)为数据库中的记录。当然,注解方式并不完全替代XML配置方式,两者可以混合使用,根据项目的实际情况选择最适合的配置方式。Spring Boot提供了自动配置的功能,你只需要添加相应的依赖和配置,Spring Boot就会为你自动配置好MyBatis。在MyBatis中,注解提供了一种更加简洁和直观的方式来配置SQL语句,而无需编写大量的XML配置文件。
2024-03-12 10:03:32
1305
原创 JWT(JSON Web Tokens)入门与Java实践
JSON Web Tokens(JWT)是一种开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在网络之间安全地传输信息。本文介绍了JWT的基本概念、组成和工作流程,并提供了Java中使用JWT的示例代码。通过生成和验证JWT,你可以在Web应用中实现安全的身份验证和授权。在使用JWT时,请务必注意安全性考虑,并采取适当的措施来保护系统的安全。JWT由三部分组成:Header(头部)、Payload(负载)和Signature(签名),这三部分通过点(.)分隔。首先,你需要在项目的。
2024-01-03 22:39:26
1489
原创 java数据结构
通常是在实现链表数据结构时自定义的一个类,尤其在算法和数据结构的课程或面试准备中很常见。是一个双向链表,每个节点都保存了其前一个和后一个元素的引用。变量实际上就是链表中的“指针”,尽管在Java中并没有真正的指针,但这个引用起到了指针的作用。是一个线程不安全的类,如果需要在多线程环境中使用,应该考虑使用外部同步或其他并发集合类。可以使用索引来访问链表中的元素,但这并不是链表的优势所在,因为需要从头或尾开始遍历。还提供了一些其他有用的方法,如获取链表的大小、清空链表等。用于指向链表中的下一个节点。
2024-01-03 15:06:05
477
原创 2. 两数相加(java)
另外,我们还可以使用递归的方式来解决这个问题。递归的思路与迭代类似,只是将循环替换为递归调用。递归的终止条件是当两个链表都遍历完成且没有进位时。题目要求我们将两个逆序存储的非负整数链表相加,并以相同的形式返回结果的链表。链表中的每个节点只能存储一位数字,因此我们需要逐位进行相加,并处理进位的情况。从头节点开始遍历两个链表,对于每一位数字进行相加操作,将相加结果以及进位存储在新的链表中。来处理链表相加问题,因为它负责初始化进位为0并调用实际的递归函数。,以便在递归过程中传递和处理进位信息。
2024-01-03 15:02:20
510
原创 java数据结构
链表(LinkedList)是Java集合框架(Java Collections Framework)中的一部分,它实现了List接口和Deque接口,允许元素为空。LinkedList是一个双向链表,每个节点都保存了其前一个和后一个元素的引用。这使得在链表的任何位置进行插入和删除操作都相对高效。以下是LinkedList。
2024-01-03 15:01:28
424
原创 使用Spring Boot构建RESTful服务:项目启动类(瑞吉外卖)
Spring Boot通过提供大量的自动配置和开箱即用的功能,极大地简化了Java应用程序的创建和部署。通过本博客,我们了解了如何使用Spring Boot快速搭建一个RESTful服务的框架,并详细探讨了项目的启动过程。一旦自动配置完成,应用程序就会启动内嵌的Web服务器(默认是Tomcat),并开始监听配置的端口(默认是8080)。: 这是一个Lombok库提供的注解,它为类自动生成一个SLF4J的logger实例,从而避免了手动创建logger的繁琐工作。方法,是应用程序的入口点。
2024-01-02 20:59:18
750
原创 DTO与VO
DTO更注重于数据的传输和层与层之间的解耦,而VO更注重于业务领域和业务逻辑的处理。在实际开发中,我们可以根据具体的需求来选择使用DTO还是VO,或者同时使用它们来实现更复杂的数据传输和业务处理逻辑。需要注意的是,这里的转换逻辑是手动编写的,如果字段较多或者转换逻辑较复杂,可以考虑使用一些工具类或者框架来简化这个过程,比如ModelMapper、Dozer等。假设我们有一个UserService,它需要从数据库获取用户信息,并对这些信息进行一些业务处理,然后将处理后的信息传输给前端。
2024-01-02 20:55:26
1419
原创 Spring Boot中WebMvcConfig配置详解及示例
通过上述配置,Swagger将自动扫描指定包下的所有Controller类,并生成相应的API文档。同时,我们还可以设置API文档的基本信息,如标题、版本号和描述等。在Spring Boot项目中,我们经常需要对Web MVC进行配置,以满足项目的特定需求。在Spring Boot项目中,我们可以通过集成Swagger来自动生成接口文档。通过此类,我们可以重写父类的方法来自定义我们自己的配置。通过上述配置,我们可以根据不同的路径访问不同目录下的静态资源。类进行这些配置,并附上相应的示例代码。
2024-01-02 20:43:04
3092
原创 序列化和反序列化详解
序列化是将数据结构或对象状态转换为可以存储或传输的格式的过程。在序列化期间,对象将其当前状态写入到临时或永久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。
2024-01-02 19:59:29
539
原创 自定义Redis配置以优化你的Spring应用
Spring Boot提供了与Redis集成的便捷方式,但有时默认的配置可能不满足我们的特定需求。通过自定义Redis配置,我们可以更好地控制如何与Redis进行交互,包括key和value的序列化方式等。对于value的序列化,你可以根据实际需求选择适合的序列化器,比如Java对象的默认序列化、JSON序列化等。在本文中,我将通过一个简单的示例展示如何在Spring Boot应用中自定义Redis配置。的特定功能,但它为我们提供了一个扩展点,以便在需要时添加自定义的缓存配置。来自定义key的序列化方式。
2024-01-02 19:52:11
467
原创 Java通用返回结果类的设计与应用
在Java Web开发中,为了保证前后端数据交互的一致性和简洁性,我们通常会定义一个通用的返回结果类。这样的设计可以使得无论后端处理成功还是发生错误,都能够以统一的格式返回给前端。,我们可以在Java Web应用中实现更加规范、灵活和易于维护的数据交互方式。在进行前后端数据交互时,我们通常需要传递一些状态信息,比如操作是否成功、相关的数据内容以及可能发生的错误信息。为了规范化这些信息的传递,我们可以设计一个通用的返回结果类。的通用返回结果类的设计思路和应用。类是一个泛型类,它接受一个类型参数。
2024-01-02 19:36:01
651
原创 MyBatis-Plus中的公共字段自动填充策略
在软件开发中,我们经常遇到一些公共字段,如创建时间、更新时间、创建者、更新者等,这些字段在数据插入或更新时都需要被赋予相应的值。幸运的是,MyBatis-Plus为我们提供了自动填充这些公共字段的功能。MyBatis-Plus是一个强大的MyBatis扩展插件,它在MyBatis的基础上提供了许多实用的功能,如自动填充、乐观锁、逻辑删除等。其中,自动填充功能可以帮助我们自动为实体类中的公共字段赋值。首先,我们需要创建一个实体类,并在其中定义需要自动填充的公共字段。方法,分别在插入和更新时为公共字段赋值。
2024-01-02 10:26:56
513
原创 JacksonObjectMapper自定义配置详解
Jackson库是Java中非常流行的JSON处理库,它提供了强大的功能来将Java对象序列化为JSON字符串,或者将JSON字符串反序列化为Java对象。在实际开发中,根据项目的具体需求,我们可以进一步定制ObjectMapper的行为,以满足更多的场景和需求。在上面的代码中,为了简洁起见,这些方法被省略了,但在实际代码中它们是必需的。这样做的好处是可以按照我们定义的格式来处理这些类型,而不是使用Jackson的默认行为。类型,我们指定了一个具体的日期时间格式,这样在序列化和反序列化时就会使用这个格式。
2024-01-02 10:07:29
2354
原创 深入理解Java Spring中的全局异常处理:以Reggie项目为例
通过类,我们可以很方便地实现Spring应用中的全局异常处理。这种方式不仅减少了重复代码,还提高了代码的可维护性和可读性。在实际项目中,我们还可以根据需要对这个类进行扩展,比如添加更多的异常处理方法来处理不同类型的异常,或者在方法内部添加更复杂的逻辑来处理异常情况。import com/*** 全局异常捕获/*** 异常处理方法* @returnString msg = split [ 2 ] + "已存在";} return R . error("未知错误");
2024-01-02 00:40:31
700
原创 Java中的自定义异常处理:业务异常类的创建与使用
自定义业务异常类通常继承自或其子类,因为业务异常通常是由于程序逻辑错误或不符合业务规则而导致的,而不是由于系统错误或资源耗尽等外部因素导致的。继承自意味着这些异常是未检查的(unchecked),编译器不会强制要求开发者处理这些异常。/*** 自定义业务异常类*/// 调用父类的构造方法,传入错误信息在这个例子中,我们创建了一个名为的类,它继承自。这个类只有一个构造方法,接受一个字符串参数message,用于设置异常信息。通过调用父类的构造方法,我们将这个信息传递给类。
2024-01-02 00:16:57
1726
原创 ThreadLocal和简单应用
通过封装来保存和传递当前登录用户的ID是一个常见的做法,它可以大大简化代码并提高数据传递的灵活性。然而,在使用时,需要注意内存泄漏、数据隔离以及正确使用的上下文环境。在Web应用中,结合过滤器或拦截器使用是一种推荐的最佳实践,可以确保数据的正确设置和清理。通过合理地使用,我们可以编写出更加简洁、高效且线程安全的代码。
2024-01-02 00:03:43
607
原创 Spring Boot实战:深入理解@Service与@Mapper注解
注解后,Spring容器会自动扫描并创建该类的一个实例(即Bean),这样我们就可以在其他地方通过自动装配(Autowired)的方式注入这个Bean。注解用于标记接口,使得接口可以被MyBatis扫描到并生成对应的代理实现类。这样,MyBatis会为这个接口生成一个实现类,我们可以在服务类中注入这个映射器接口来调用数据库操作。注解,这意味着Spring容器会管理它的生命周期,并且我们可以在其他地方通过。注意:在某些配置中,如果你已经在启动类或配置类上使用了。注解来指定扫描的包路径,那么映射器接口上的。
2024-01-01 23:18:58
2462
1
原创 深入理解Session与Cookie:Java Web应用中的状态管理
Session和Cookie是Web应用中状态管理的两大基石。通过Session,服务器能够在多个请求之间保持用户的状态信息;而Cookie则允许服务器在用户的浏览器中存储少量数据,并在后续的请求中读取这些数据。在Java Web应用中,通过和接口,开发人员可以方便地操作Session和Cookie,从而实现强大的用户交互功能。
2024-01-01 19:00:03
492
原创 Java中的Session详解及示例代码
本文介绍了Java中Session的基本用法和相关知识,并通过示例代码进行了演示。Session是Web应用程序中非常重要的概念,它允许在多个页面之间传递和共享数据,并保持用户的会话状态。通过合理地使用Session,可以构建功能强大且用户友好的Web应用程序。
2024-01-01 18:55:59
837
原创 Spring MVC注解详解与实战:从请求处理到数据绑定
当方法参数是一个简单的类型(如String、int等),并且没有使用任何注解时,Spring会尝试从请求中查找一个与参数名相匹配的参数(这通常是通过查询参数或表单数据来实现的)。但是,这种默认行为并不推荐,因为它依赖于Servlet容器的特定行为,可能会导致不可预测的结果。每个方法都使用了至少一个Spring MVC提供的注解来简化HTTP请求的处理和数据绑定。对于复杂的类型(如自定义的Java对象),如果没有使用@RequestBody或其他相关注解,Spring不会自动尝试将请求数据绑定到这些对象上。
2024-01-01 18:30:33
1115
原创 控制反转(IoC)与面向切面编程(AOP)
DI是一种设计模式,允许我们在不修改类代码的情况下,将类所依赖的对象或属性在运行时注入到类中。面向切面编程(AOP)是Spring提供的另一个强大特性,它允许开发者在不改变现有业务逻辑代码的情况下,对程序进行横向切分,添加额外的行为或功能。控制反转(IoC)是Spring框架的核心原则之一,旨在将组件间的依赖关系从硬编码中解放出来,交由外部容器来管理。在Spring AOP中,你可以定义一个切面(Aspect)来拦截方法调用,并在方法执行前后添加日志记录。在没有使用IoC的情况下,我们可能会在。
2024-01-01 14:49:04
776
原创 Java中的MD5加密详解
MD5(Message Digest Algorithm 5,信息摘要算法5)是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5不是加密算法,因为其不可逆,所以更多的被称为摘要算法或散列算法。尽管MD5被广泛应用,但近年来MD5的安全性已被严重质疑,因为其存在碰撞攻击的风险。然后,我们计算输入字符串的字节数组的摘要,并将摘要转换为16进制字符串。注意,在计算摘要时,我们需要将输入字符串转换为字节数组。类来实现MD5加密。
2024-01-01 14:10:59
2136
原创 MyBatis-Plus 基础:LambdaQueryWrapper详解与实例
是 MyBatis-Plus(一个 MyBatis 的增强工具)中用于构造 SQL 查询条件的一个非常强大的工具。它允许你以 Lambda 表达式的方式构建查询条件,从而避免了硬编码字段名,提供了类型安全,并且使得代码更加清晰和易于维护。注意:以上代码示例是基于 MyBatis-Plus 的常见用法,但具体版本可能会有所不同,建议查阅你所使用的 MyBatis-Plus 版本的官方文档以获取最准确的信息。这将会生成 SQL 语句中的。这将会生成 SQL 语句中的。这将会生成 SQL 语句中的。
2024-01-01 13:41:42
4732
原创 深入解析 Spring 的 @Autowired:自动装配的魔法与细节
Autowired是 Spring 框架中的一个重要注解,用于自动装配 bean 依赖。Spring 通过@Autowired可以自动将匹配的 bean 注入到需要的地方,如属性、构造函数或 setter 方法等。下面是@Autowired。
2024-01-01 13:24:19
761
原创 Spring Boot中的RESTful API:@GetMapping, @PostMapping, @PutMapping, 和 @DeleteMapping详解
然后,方法模拟了更新用户操作,并返回一个状态码为 200 的响应,表示更新成功。方法返回的对象通常会自动转换为响应体,通常是一个实体对象或集合,Spring会将其序列化为JSON或XML等格式返回给客户端。,模拟了删除用户操作,并返回一个状态码为 204 的响应,表示删除成功。方法通常返回一个状态信息,表明删除操作的结果,而不返回删除的资源本身(因为资源已被删除)。方法通常返回新创建的资源的表示形式,或者返回状态信息表示操作的结果。方法通常返回更新后的资源表示或状态信息,表明操作的结果。
2024-01-01 13:05:35
5032
原创 计网(复习自用)
一些基本概念结点:主机、路由器链路﹔网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。数据链路︰网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路帧:链路层的协议数据单元,封装网络层数据报。数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送帧。功能概述数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。
2023-11-23 14:09:27
1009
原创 web开发简单知识
官网获取https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/html/getting-started-installing-spring-boot.html#getting-started-maven-installation。激活后缀名为pro的配置文件。虚拟机和程序参数也可以激活。在引导类文件中启动项目。配置pom.xml文件。
2023-10-27 17:51:04
103
原创 【无标题】
需要注意的是,以上公式只是该算法的简略部分,具体的推导过程和细节需要参考论文的具体位置进行查看。图3:位于第4页,显示了所提出算法和HM-16.0参考软件的BD-rate性能。图2:位于第3页,显示了所提出算法和HM-16.0参考软件的R-D曲线。最后,作者分析了实验结果,并将其与最先进的速率控制算法进行了比较。图4:位于第5页,显示了所提出算法在不同比特率下的速率控制性能。公式(11):位于第4页,表示所提出的速率控制算法的目标函数。图1:位于第2页,显示了所提出的速率控制算法的块图。
2023-09-21 12:37:12
110
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人