- 博客(242)
- 资源 (13)
- 收藏
- 关注
原创 详解建造者(builder)模式的创建对象使用方式
这意味着 Builder 类是一个抽象类,不能直接实例化。通常,你会提供一个或多个非抽象的子类或内部方法来创建 Builder的实例,并可能提供一些默认实现。在构建者模式中,Builder类通常是抽象的,因为它定义了一个接口或契约,该接口或契约描述了如何配置和构建对象。具体的实现细节(例如,设置特定的字段值)可能在子类中定义。
2024-07-25 20:31:08
640
原创 Orika-core使用总结整理
Orika 是一个 Java Bean映射框架,用于自动化对象之间的数据转换。它简化了在不同层之间传递数据时经常需要的复杂转换逻辑。Orika使用字节码生成技术来提供高性能的映射操作。
2024-07-24 19:28:55
1019
原创 @NotNull、@NotEmpty 和 @NotBlank 区别
NotNull、@NotEmpty 和 @NotBlank 是 Java Bean Validation (JSR 380)规范中定义的注解,通常用于验证对象的属性是否满足特定的条件。这些注解常用于后端验证,确保接收到的数据符合预期。
2024-07-24 18:15:47
189
原创 IPython使用技巧整理
IPython 是一个增强的 Python 交互式 shell,它提供了许多便利的功能,比如自动补全、魔术命令、对象内省等。以下是IPython 的一些使用技巧和示例,结合您提供的列表数据,我将给出一些相关的使用示例。
2024-07-24 12:12:42
266
原创 java如何编写一个注解
首先,我们需要定义一个自定义注解,比如@MyAnnotation。// 可以定义一些属性,例如value、description等 String value() default "";// 可以定义一些属性,例如value、description等 String value() default "";// 可以定义一些属性,例如value、description等 String value() default "";
2024-07-24 11:32:01
1159
原创 简单编写一个获取项目所有pom依赖 的maven插件示例
在pom.xml文件中,你需要定义插件的元数据,包括groupId、artifactId、version、name和description等。
2024-07-23 15:56:47
410
原创 打聚合包无法打入system(内部包)包问题解决
本篇仅做个人记录用不详细解释过程。当有内部包需要以内部lib 路径以system 的scop方式引入时,打聚合包常遇到问题,无法Autowire方式注入bean 解决方式为。
2024-07-22 16:06:07
163
1
原创 Python 模块如何制作自己的包 .whl
本文介绍如何通过pyproject.toml打包一个简单的 Python 项目,以供他人使用 pip install xxx 指令安装。Python从PEP 518开始引入的使用pyproject.toml管理项目元数据的方案。
2024-07-15 14:14:58
605
原创 spring通过yaml创建对象简单demo记录下 方便后实现handler自动注入框架开发用
这个配置类AppConfig读取YAML文件中myapp.className的值,然后使用反射机制来创建这个类的实例,并将其作为一个Bean注册到Spring容器中。在Spring框架中,你可以使用@ConfigurationProperties注解和一个配置类来读取YAML文件中的类全路径并创建对象。确保MyClass有一个无参构造函数,因为Class.newInstance()将使用这个构造函数来创建对象。
2024-07-14 22:27:23
230
原创 Java中常用的util类库在Maven
Apache Commons Lang 3: 提供了很多工具类,如StringUtils, ArrayUtils等。Apache Commons Collections: 提供了集合工具类和专用集合实现。Google Guava: 提供了一系列高质量的集合工具类,并发集合,缓存等。Apache Commons IO: 提供了IO操作的工具类。Apache Commons Net: 提供了网络协议的实现。SLF4J: 提供了日志的抽象层,方便切换日志实现。Joda-Time: 提供了日期时间的处理。
2024-07-14 21:20:29
493
原创 基于Python的自动化测试框架-Pytest总结-第一弹基础
在当前基础断言方式不能满足断言时我们可以增加断言方法,例如: 在项目测试类 Card中 属性id 被指定为不参与比较 id: int =field(default=None, compare=False) 所以在id不同时其他属性相同也会被断言为相等,那此时我们如果需要另外对id进行比较if c1.id!= {id")可以通过自定义的mark在运行案例时 选择指定案例执行。
2024-07-01 14:41:43
1219
原创 python中json.dumps将中文变成unicode字符的解决办法
只需在dump时将ensure_ascii设置为False即可,此时存入json的中文即可正常显示。参数,默认为True,当它为True的时候,所有非ASCII码字符显示为\uXXXX序列。json dump有一个。
2024-04-25 17:07:58
531
原创 selenium关于selenium.common.exceptions.StaleElementReferenceException异常处理
异常在使用Selenium时出现,意味着尝试与一个页面元素进行交互,但这个元素已经不再是当前页面的一部分了。在这个示例中,使用了WebDriverWait和expected_conditions来确保在交互之前元素是存在并且可交互的。可以通过执行一个简单的JavaScript脚本来刷新页面,或者使用WebDriver的refresh()方法。使用显式等待(Explicit Wait),在尝试交互之前确保元素是可交互的。如果在循环中操作元素,确保循环的每次迭代都使用最新的元素引用。
2024-04-18 19:01:30
1475
1
原创 mybatis-plus报错Invalid bound statement (not found)主要是依赖问题
报错日志 :org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.**********lMapper.selectOne。出现这个错误的原因是mybatis找不到接口对应的mapper文件,主要是mybatis-plus的自动配置jar包问题。导入下面三个依赖可以解决了。
2024-04-06 20:34:19
423
原创 MATLAB下载+安装教程
获取许可证:登录MathWorks账户后,点击页面上方的"My Account",然后选择"Manage Licenses"。创建MathWorks账户:在官方网站上,点击右上角的"Create Account"按钮,填写必要的信息创建一个MathWorks账户。请注意,在安装 MATLAB 之前,确保你的计算机满足 MATLAB 的系统要求。首先,你需要从 MathWorks 官方网站购买 MATLAB 的许可证,并且获得一个 MathWorks 账户。点击相应的下载链接,下载 MATLAB 安装程序。
2024-04-05 23:25:28
545
原创 golang 和java对比
综上所述,Golang和Java各有优势,选择哪种语言取决于具体的需求和项目特点。如果需要丰富的生态系统和成熟的开发工具,可以选择Java。总结来说,Go语言适合构建高性能、并发性要求较高的应用程序,尤其是网络编程和分布式系统。而Java更适合构建大型、复杂的企业级应用程序,尤其是需要跨平台和可移植性的场景。Go语言(简称Golang)和Java都是非常流行的编程语言,它们在很多方面有相似之处,但也存在一些重要的区别。Golang和Java是两种不同的编程语言,它们有一些相似之处,也有一些不同之处。
2024-04-05 23:23:03
1403
原创 spring 和spring boot的区别
因此,Spring和Spring Boot的区别在于,Spring是一个全功能的Java开发框架,需要手动配置和管理应用程序的各个方面,而Spring Boot提供了一些预置的功能和约定,可以快速启动和配置Spring应用程序。Spring Boot旨在简化Spring应用程序的开发过程,使开发人员能更专注于业务逻辑的实现,而无需过多关注底层配置和部署问题。它提供了一个综合的编程和配置模型,用于构建各种类型的应用程序,从简单的命令行工具到复杂的企业级Web应用程序。
2024-04-05 23:18:14
575
原创 设计模式总结-外观模式(门面模式)
外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模式。
2024-04-05 23:15:38
1102
原创 设计模式总结-装饰者模式
最简单的加密算法通过对字母进行移位来实现,同时还提供了稍复杂的逆向输出加密,还提供了更为高级的求模加密。装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任,换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同。继承机制,使用继承机制是给现有类添加功能的一种有效途径,通过继承一个现有类可以使得子类在拥有自身方法的同时还拥有父类的方法。关联机制,即将一个类的对象嵌入另一个对象中,由另一个对象来决定是否调用嵌入对象的行为以便扩展自己的行为,我们称这个嵌入的对象为装饰器(Decorator)。
2024-04-05 23:01:25
631
原创 设计模式总结-组合模式
组合模式(Composite Pattern):组合多个对象形成树形结构以表示“整体-部分”的结构层次。组合模式对单个对象(即叶子对象)和组合对象(即容器对象)的使用具有一致性。组合模式又可以称为“整体-部分”(Part-Whole)模式,属于对象的结构模式,它将对象组织到树结构中,可以用来描述整体与部分的关系。组合模式用于组合多个对象形成树形结构以表示“整体-部分”的结构层次。组合模式对单个对象(即叶子对象)和组合对象(即容器对象)的使用具有一致性。
2024-04-05 22:50:08
1040
原创 设计模式总结-桥接模式
桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。
2024-04-05 22:27:13
1007
原创 设计模式总结-适配器模式
适配器模式(Adapter Pattern) :将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。
2024-04-05 21:58:29
1297
原创 设计模式总结-原型设计模式
原型模式(Prototype Pattern):原型模式是一种对象创建型模式,用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。原型模式允许一个对象再创建另外一个可定制的对象,无须知道任何创建的细节。原型模式的基本工作原理是通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝原型自己来实现创建过程。
2024-04-05 12:16:15
1323
原创 设计模式总结-建造者模式
建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者模式属于对象创建型模式。根据中文翻译的不同,建造者模式又可以称为生成器模式。
2024-04-05 12:02:45
1308
原创 设计模式总结-抽象工厂模式
抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,属于对象创建型模式。
2024-04-05 11:51:52
1420
原创 设计模式总结-工厂方法模式
工厂方法模式(Factory Method Pattern)又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式,它属于类创建型模式。在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类。
2024-04-05 11:27:15
1030
原创 设计模式总结-简单工厂模式
创建型模式(Creational Pattern)对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离。为了使软件的结构更加清晰,外界对于这些对象只需要知道它们共同的接口,而不清楚其具体的实现细节,使整个系统的设计更加符合单一职责原则。创建型模式在创建什么(What),由谁创建(Who),何时创建(When)等方面都为软件设计者提供了尽可能大的灵活性。创建型模式隐藏了类的实例的创建细节,通过隐藏对象如何被创建和组合在一起达到使整个系统独立的目的。
2024-04-05 11:05:01
1434
原创 设计模式总结-面向对象设计原则
常用的面向对象设计原则包括7个,这些原则并不是孤立存在的,它们相互依赖,相互补充。单一职责原则(Single Responsibility Principle, SRP)定义如下:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。其英文定义为: Every object should have aencapsulated by the class. 另一种定义方式如下: 就一个类而言,应该仅有一个引起它变化的原因。
2024-04-04 23:04:55
1566
原创 spring总结-基于XML管理bean超详细
清明时节雨纷纷,路上行人欲断后。借问酒家何处有,牧童遥指杏花村。清明假期做个总结吧。FactoryBean是Spring提供的一种整合第三方框架的常用机制。和普通的bean不同,配置一个FactoryBean类型的bean,在获取bean的时候得到的并不是class属性中配置的这个类的对象,而是getObject()方法的返回值。通过这种机制,Spring可以帮我们把复杂组件创建的详细过程和繁琐细节都屏蔽起来,只把最简洁的使用界面展示给我们。
2024-04-04 11:11:21
860
原创 常见性能问题分析及解决建议
分表分库:减少表单的记录条数,减少数据查询所需的时间,提高数据库的吞吐;对数据库进行拆分,提高数据库的写入能力。定位耗时最高的线程,将需要的线程ID替换成16进制格式,并打印线程的堆栈信息,找到出现问题的代码。系统访问卡顿,QPS、TPS降低,响应时间延长,网络吞吐量降低;存储针列条带宽不足,缓存不足,Qos限制,RAID级别设置不当。集合类中有对对象的引用,使用完后未清空,使JVM不能回收;对规模较大的数据或者无法通过一般优化解决的锁冲突进行分布。对于多CPU,考虑CPU之间的负载分配。
2024-03-26 16:37:18
348
原创 Jmeter 聚合报告之 90% Line 正确理解
今天看了些关于Jmeter 聚合报告之 90% Line 的一些博客 关于90% Line 的算法各有各自的见解。90%Line 值如果是19 ,则代表90%的耗时在19这个取值换范围,剩下的10%耗时可能比该值长。100/总个数=每一个所占的百分比,90%/每一个所占的百分比=90%Line的序号(从小到大排)4/100=3.6 3.6约等于4,所以第4位的值为8,那么它的90%Line为8。100/20=5% , 90%/5%=18或者90。1.2.3.8(总个数为4) 90。
2024-03-26 15:05:54
780
原创 selenium高级应用
这意味着Ajax可以在不重新加载整个网页的情况下,对网页的某部分内容进行更新。搜狗搜索的搜索框使用了Ajax。单击一下搜狗搜索框,切换到搜索框后,会弹出推荐搜索的热词,这个效果就是Ajax效果。上述代码先在搜索框中输入了“storm”,然后从匹配的选项中选择了带有“形容词”字样的选项,再进行搜索操作(搜索“storm+形容词”)。在实际项目中,你可能会遇到以下场景:在某些页面中需要从左到右拖动滑块进行验证,然后才能进行下一步操作。可以看出,无论是滑块本身,还是滑块所在的框,都是div元素。
2024-03-08 14:03:07
965
6
原创 selenium等待机制
虽然expected_conditions模块提供了丰富的预定义的等待条件,但如果还是不能满足需求的话,你还可以借助lambda表达式来自定义预期等待条件。
2024-03-07 15:09:14
1062
原创 selenium常见控件实际应用
selenium常见控件实际应用搜索框按钮复选框链接select下拉框input下拉框表格框架javaScipt弹窗非javaScript弹窗时间控件文件下载搜索框按钮复选框链接select下拉框input下拉框表格框架javaScipt弹窗非javaScript弹窗时间控件文件下载
2024-03-06 14:23:59
410
mysql数据库的超级详细总结
2024-07-26
数据库技术总结数据库技术总结
2024-07-26
基于python+pytest的最全总结
2024-07-25
【hadoop&spark】资源
2024-07-26
人工智能资源人工智能资源
2024-07-26
上传一个Java项目资源
2024-07-26
上传一个Java项目资源上传一个Java项目资源
2024-07-26
上传数据分析资源上传数据分析资源
2024-07-26
大模型demo的适用1
2024-07-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人