- 博客(83)
- 资源 (3)
- 收藏
- 关注
原创 GPT带我学-设计模式14-工厂模式
工厂模式(Factory Pattern)是一种常用的创建型设计模式,也叫做工厂方法模式(Factory Method Pattern),它提供了一种创建对象的最佳方式。在工厂模式中,我们不再直接通过 new 来创建对象,而是通过一个工厂类来间接地创建对象。主要包含以下几个角色:抽象产品(Product):定义产品的接口或抽象类,具体产品由其子类实现。具体产品(Concrete Product):实现抽象产品接口的具体类,是被创建的对象。
2024-07-11 11:44:59
918
原创 java基础filter servlet interceptor controller之间的关系
filter、servlet、interceptor、controller间的关系
2024-06-05 11:53:37
779
1
原创 spring通过xml配置文件实现依赖注入的方法
构造器注入适用于需要在创建时就提供所有依赖的场景,而 Setter 注入适用于需要在创建后设置或更改依赖的场景。通过 Setter 方法注入依赖是在 bean 创建之后,通过 setter 方法传递依赖对象。c-namespace 是一种简洁的构造器注入方式,它是通过 XML 命名空间的扩展来实现的。p-namespace 是一种简洁的属性注入方式,它是通过 XML 命名空间的扩展来实现的。通过实例工厂方法注入依赖是通过调用工厂 bean 的方法来创建 bean 实例。类中需要有一个实例方法。
2024-06-03 21:06:04
778
原创 Spring原理-IOC
在传统的开发模式中,我们的程序主要由业务逻辑和控制逻辑组成。而在这种模式中,构建应用程序的过程通常是这样的:当需要一个对象时,我们会直接使用 new 运算符等方式来手动创建这个对象,并将其注入到其他对象中使用。这种过程中,创建和维护对象的职责完全由程序员负责。而在IOC容器的设计思想下,控制权被完全反转了。即对象的创建和维护都交由外部容器管理,而程序员只需关注于定义依赖关系以及编写具体的业务逻辑(程序员只要确定需要什么依赖,并且关注业务逻辑即可,不用关心依赖对象的创建和维护。
2024-06-01 11:22:22
949
原创 DevOps
DevOps是一种软件开发和运维的方法论,旨在通过加强开发团队和运维团队之间的协作和沟通,实现快速、可靠的软件交付。DevOps强调自动化、持续集成和持续交付等实践,以提高软件开发和部署的效率和质量。
2024-05-14 19:15:17
767
原创 GPT带我学-设计模式12-状态模式
状态模式是一种设计模式,它允许一个对象在其内部状态发生改变时改变其行为。状态模式将对象的状态封装成不同的类,并使得对象在运行时可以动态地改变状态,从而改变对象的行为。状态模式的主要目的是促进代码的复用和灵活性。状态模式中包含以下几个角色:上下文(Context):上下文是包含了多个状态的对象,它提供了一个接口用于客户端访问状态。抽象状态(State):抽象状态是所有具体状态的父类或接口,它定义了所有具体状态所需实现的方法。
2024-05-06 16:08:49
1048
1
原创 Java基础 异常传递
项目中经常会在方法A中调方法B,如果B出现了异常,A要获取到B的异常,并且在接口中返回,这是一个例子。大概就是需要发送消息到哪里,仅支持邮件、微信,其他的则出错,错误信息用一个列表装着,然后返回。m和n是控制发送时是否出现异常,很简单的,看下代码就懂。
2024-04-30 21:37:59
160
原创 Java注解
用关键字@interface来定义注解,和定义类、接口的class、interface一样@Retention和@Target是元注解,即用于修饰其他注解的注解@Retention 注解表示该注解在程序运行时可以被反射读取,而 @Target 注解则指定了该注解可以作用于类级别上的 Java 元素。
2024-04-19 18:06:57
261
原创 Java反射
Java反射是一种在运行时检查、检索和操作类、方法、字段等信息的机制。通过反射,你可以在运行时获取类的信息,如类的构造函数、字段和方法,以及调用这些方法和字段,而不需要在编译时就知道这些信息。在Java中,每个对象都属于某个类的实例。Class 类用于表示类的实例,在运行时可以使用它来获取类的信息。2 获取类的信息通过 Class 类的方法,可以获取类的构造函数、方法和字段等信息。3 创建对象使用反射可以在运行时创建类的对象。ps:newInstance()已经废弃了。废弃的原因是它会绕过编译时
2024-04-13 20:14:37
694
原创 GPT带我学-设计模式10-观察者模式
观察者模式(Observer Pattern)是一种设计模式,它定义了对象之间的一对多依赖关系,当一个对象(被观察者)的状态发生改变时,所有依赖于它的对象(观察者)都会得到通知并自动更新。这种模型主要由三个角色构成:观察者(Observer):接收并处理被观察者发出的通知。通常,观察者需要定义一个更新函数,用以在接收到通知时更新自己的状态。被观察者(Subject):当其状态发生改变时,它需要通知所有观察者。通常,被观察者维护一个观察者列表,并定义添加、删除和通知观察者的方法。
2023-10-25 17:08:12
1108
原创 GPT带我学-设计模式09-生产者消费者模式
生产者消费者模式是一种常见的并发设计模式。在任何系统设计中,如果某处的元素生成和消耗的速度存在差异,都可以使用生产者-消费者模式。在这种模式中,生产者和消费者是独立且并发执行的线程。它们通过一个共享的、有大小限制的缓冲区(通常是一个队列)进行通信。生产者的任务是生成数据放入缓冲区,消费者的任务是从缓冲区中取出数据。生产者和消费者的工作速度可能会有所不同,那么:如果生产者产生数据的速度大于消费者消费的速度,缓冲区会慢慢填满。当缓冲区满时,生产者需要等待消费者消费数据,腾出空间后才能继续生产。
2023-10-19 18:15:00
117
原创 Springboot2.3.9 Feign无法使用 Did you forget to include spring-cloud-starter-netflix-ribbon?
记录一个小bug。在springboot2.3.9工程中配置Feign后使用出现了问题。
2023-09-06 09:25:34
224
原创 GPT带我学-设计模式-迭代器模式
迭代器设计模式是一种行为型设计模式,用于提供一种统一的方式来遍历一个集合对象中的元素,而不需要暴露该对象的内部结构。它将集合对象的遍历操作与集合对象本身分离开来,使得遍历操作可以独立于集合对象进行变化。迭代器设计模式通常包含以下几个角色:迭代器(Iterator):定义了遍历集合对象中元素的接口,包括获取下一个元素、判断是否还有元素等方法。具体迭代器(ConcreteIterator):实现迭代器接口,负责实现遍历集合对象中元素的具体逻辑。
2023-08-30 23:27:47
1139
原创 GPT带我学-设计模式-外观模式
外观模式(Facade Pattern)是一种结构型设计模式,它提供了一个统一的接口,用于访问复杂子系统的一组接口。外观模式隐藏了系统的复杂性,为客户端提供了一个简单的接口来与子系统进行交互。外观模式由以下几个角色组成:外观(Facade):外观对象是外部与子系统交互的入口,它封装了子系统的功能,并提供简化的方法供客户端调用。它是客户端和子系统之间的中介,负责将客户端的请求委派给相应的子系统处理。子系统(Subsystem):子系统是外观对象所表示的功能的实际实现。
2023-08-29 16:27:04
138
原创 GPT带我学-设计模式-适配器模式
适配器设计模式是一种结构性设计模式,用于在不兼容的接口之间进行转换。它允许将一个类的接口转换成客户端所期望的接口。适配器模式包含以下几个角色:目标接口(Target):定义客户端所期望的接口。适配器(Adapter):实现目标接口,同时持有被适配者的实例,将客户端的请求转发给被适配者。被适配者(Adaptee):已存在的类或接口,不符合客户端的需求。客户端(Client):通过适配器来调用被适配者的功能。适配器模式可以解决以下问题:在系统中使用已存在的类,但其接口与系统要求的接口不一致。
2023-08-29 15:59:37
1439
原创 GPT带我学-设计模式-代理模式
代理模式(Proxy Pattern)是设计模式中的一种模式,它为其他对象提供一种代理以控制对这个对象的访问。代理模式有三个主要角色:抽象主题(Subject)、真实主题(Real Subject)和代理(Proxy)。抽象主题(Subject):定义了真实主题与代理之间的共同接口,这样真实主题和代理可以互相替换使用。真实主题(Real Subject):指实际要被代理的对象。
2023-08-20 18:34:03
1044
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人