- 博客(26)
- 收藏
- 关注
转载 创建型模式之工厂模式(包含简单工厂,工厂方法,抽象工厂)
将需要创建的各种不同对象(不同的chart对象)的相关代码封装到不同的类中,这些类称为具体产品类。将公共代码进行抽象和提取封装在一个抽象产品类中,然后每一个具体产品类都是抽象产品类的子类然后提取一个工厂类用于创建各种产品,在工厂类中提供一个创建产品的工厂方法,该方法可以根据传入的参数不同创建不同的具体产品对象客户端只需要调用工厂类的工厂方法并传入相应的参数即可得到一个产品对象。简单工厂模式:定义一个工厂类,它可以根据参数的不同返回不同的类实例,被创建的实力通常都具有共同的父类。
2023-12-13 19:07:03
96
原创 如何优化自己写的烂代码路程之一,不同实体list之间的复制?
前段时间写导入功能,因为导入的数据来源有多种,所以在导入表(叫做A表)之前做了个前置表,前置表(叫做B表)比要导入的表多了个字段用于区分数据来源。整体导入的做法是,我通过工具类+注解的方式获取excel表格里面的数据内容,然后通过list集合和map集合把所有要做的校验查出来。看到这里我的理解就是BeanUtil的copyproperties只能copy单个实体,但是具体是不是我还是需要去看一下具体的实现是怎么样的,那就上代码(作者只截取了copyproperties的一段代码)
2023-10-16 16:55:40
176
3
原创 初识MySQL存储过程
-----如果为1回滚执行失败,其他的把事务提交 结束这个IF语句。------声明一个权柄,这个权柄是出现了SQL异常之后 继续处理下面的sql语句,并且会把 t_error 的值设置为 1。definer 定义用户 procedure 声明一个存储过程的名称 (IN传入存储过程的参数,OUT传出存储过程的函数)
2023-09-19 17:30:08
125
1
原创 SpringCloudAlibaba技术篇四--熔断与服务降级
分布式系统中一个微服务依赖于很多的其他服务,那么服务就会不可避免的失败。原因是:A服务依赖于B,C,D 等很多的服务,当B服务不可用的时候,会一直阻塞或者异常,更不会去调用 C 服务和 D 服务。同事假设有其他的服务也依赖于 B 服务,也会碰到同样的问题,这就有可能导致雪崩效应。如下案例:一个用户通过 web 容器访问应用,他要先后调用 A,H,I,P四个模块,一切都很正常是吧。由于某些原因,导致 I 服务不可用,与此同时我们没有快速处理,会导致该用户一致处于阻塞状态。
2023-08-09 16:14:20
809
1
原创 聚合和继承的区别
那么,人类和马类可以在继承了哺乳动物父类的同时,再定义说话或吃草的行为,来扩展自身的特征和行为。除此之外,继承还有第二个缺点,那就是,父类的属性和方法,子类是无条件继承的。所以,从这里就可以看出继承的其中一个缺点:无法通过继承的方式,重用多个类中的代码。所以,无论是从父类中继承的方法,还是子类重写的父类方法,实现的都是一种静态的复用。子类可以通过继承父类,那么可以调用父类中定义的方法和属性,从而达到代码重用的目的。另外,子类除了重用父类的代码以外,还可以扩展自身的属性和方法,来描述子类特有的特征和行为。
2023-08-09 15:10:50
207
1
原创 创建型模式之工厂模式
工厂模式这种类型的设计模式属于创建型模式,创建型模式就是在创建对象的同时隐藏创建逻辑,不是使用new运算符直接实例化对象。工厂模式提供了一种将对象的实例化过程封装在工厂类中的方式。通过使用工厂模式,可以将对象的创还能与使用代码分离,提供一种统一的接口来创还能不同类型的对象。在工厂模式中,我们在创建对象时不会对客户端暴漏创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。工厂模式的概述:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。
2023-07-24 21:43:11
60
原创 设计模式简介
写代码的过程其实就是解决问题的过程,无论是网站还是程序,大多是其实就是处理数据,传输数据。相对于我们从0开始解决一个功能,借鉴别人的思路去解决相同类型的问题更加的快捷,方便。把代码抽象成我们的生活,跟不同的代码打交道就相当于跟不同的人去交流,如果我们一个是说普通话,一个说方言,沟通起来是相对较难的,都说普通话方便理解。设计模式在我的理解就是风格和解决问题的思路。
2023-07-21 21:50:11
126
1
原创 MongoDB的数据库异常
其次错误的原因是,我的测试类,在类前没有使用@SpringApplicationTest和@RunWith(SpringRunner.class)两个注解,并且在方法上使用的@Test的注解是org.junit.Test包下的,巨坑呀,搞了半天没出来,然后再其他测试类里面测试,通过之后,仔细看一下包问题。2.使用原生的mogodb更新语句更新失败,我的原因是因为使用了Java里面的Stringbuffer类型,直接往mongo里面存了,结果一直报错,然后一步步的debug出现了这个问题 ->
2023-06-08 16:58:15
222
原创 sql语句实战笔记
例如:从 世界表 里面查 瑞典,挪威,丹麦 的 名称 和 人口。例如 从 世界表 里面查面积为200000到250000 国家。where搭配 BETWEEN AND去做范围查询。场景用于 一个字段或者多个字段 的条件判断。例如:从 世界表 里面查 德国 的 人口。where搭配 IN去实现多个字段的查询。
2023-05-11 21:30:10
83
转载 浅谈解决雪花算法的时钟回拨问题
每个一段时间内保存过去一段时内 机器当前这一毫秒产生的 ID 的最大值,例如使用Map形式,就是<机器的id,最大值>,如果发生了时钟回拨,直接在这台机器对应的最大值继续自增生成 ID 即可。由于生成随机数时依赖于服务器的时间,加入机器发生了故障或者别的情况,对于服务器的时间进行了回拨,那么会导致生成的 ID 可能发生重复。第53-64的bit位:这12位表示序列号,也就是1毫秒内可以生成2的12方个不同的 ID。不依赖数据库等第三方系统,以服务的方式部署,稳定性更高,生成ID的性能也是非常高的。
2023-03-24 21:11:25
1742
原创 SpringCloudAlibaba技术篇三--负载均衡 Ribbon 和 Feign
Feign 和 Ribbon 是 Spring Cloud 的 Netflix 中提供的两个实现软负载均衡的组件,Ribbon 和 Feign 都是用于调用其他服务的,方式不同,Feign 则是在 Ribbon 的基础上进行了一次改进,采用接口的方式,将需要调用的其他服务的方法定义成抽象方法即可,不需要自己构建 Http 请求,不过要注意的是抽象方法的注解,方法名要和提供服务的方法对应上。简单点说,Feign 是对 Ribbon 的封装,而且 Feign 和 Ribbon 的作用位置不同。
2023-03-18 16:52:47
1693
1
原创 SpringCloudAlibaba技术篇之二--Nacos注册中心
这个整合篇我主要是介绍alibba分布式的五大组件,分别为nacos,sentinel,gateaway,ribbon。nacos的作用主要是作为注册中心和配置中心,sentinel的作用是作用于熔断降级,gataway是网关,ribbon是用于负载均衡nacos是阿里巴巴研发的一个集注册中心与配置中心于一体的管理平台。nacos的架构图。
2023-03-15 22:25:07
215
原创 SpringCloudAlibaba技术篇之一--分布式的演化和阿里分布式介绍
本章是以web1.0&web2.0,到垂直架构再到分布式架构最后是微服务架构。
2023-03-15 21:11:01
198
原创 SpringMVC------开发之路
SpringMVC 是一种基于Java 实现 MVC 设计模式的请求驱动类型的轻量级 Web 框架,它和Struts2都属于表现层的框架,属于Spring FrameWork 的后续产品, Spring MVC 分离了控制器, 模型对象, 过滤器以及处理程序对象的角色, 这种分离让它们更容易进行定制。SpringMVC 通过一套简单注解, 让一个简单的java类称为处理请求的控制器, 而无须实现任何接口。同事它还支持RESTful 编程风格的请求。
2023-02-20 21:32:38
163
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人