- 博客(17)
- 资源 (1)
- 收藏
- 关注
原创 设计模式-代理模式
代理模式是一种常用的结构型设计模式,它主要通过代理对象来代替对真实对象的直接访问。这样做可以在不修改真实目标对象的前提下,增加额外的操作或者控制逻辑。在代理模式中,通常会有两个对象实现相同的接口或继承自同一个父类:一个是真实对象(RealSubject),负责具体的业务逻辑;另一个是代理对象(Proxy),它在客户端和真实对象之间起到中介的作用,可以对真实对象的访问进行控制,并在调用前后添加附加功能。举一个生活中常见的例子,租房过程中的中介公司就扮演了代理的角色。
2024-03-15 20:23:17
653
1
原创 设计模式-模板方法
例如,去银行办理业务一般要经过以下4个流程:取号、排队、办理具体业务、对银行工作人员进行评分 等,其中取号、排队和对银行工作人员进行评分的业务对每个客户是一样的,可以在父类中实现,但是 办理具体业务却因人而异,它可能是存款、取款或者转账等,可以延迟到子类中实现。刚开始我们只实现了最基本的依赖注入方式,但后来希望对依赖注入的功能进行扩展,比如说支持@Autowired注解,就需要改写getBean方法以支持对@Autowired注解的解析。这样的代码我们就称为扩展性不好,会使代码变得越来越臃肿。
2024-03-13 20:29:16
419
原创 自定义连接池
例如:一个线上商城应用,QPS 达到数千,如果每次都重新创建和关闭数据库连接,性能会受到极大影响。这时预先创建好一批连接,放入连接池。一次请求到达后,从连接池获取连接,使用完毕后再还回连接池,这样既节约了连接的创建和关闭时间,也实现了连接的重用,不至于让庞大的连接数压垮数据库。对于更通用的对象池,可以考虑使用apachecommons pool,例如redis连接池可以参考jedis中关于连接池的实现。对于关系型数据库,有比较成熟的连接池实现,例如c3p0, druid等。连接的动态增长与收缩。
2023-07-05 19:41:01
96
1
原创 mysql主从复制+读写分离
Sharding-JDBC定位为轻量级Java框架,在Java的JDBC层提供的额外服务。它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼JDBC和各种ORM框架。使用Sharding-JDBC可以在程序中轻松的实现数据库读写分离。适用于任何基于JDBC的ORM框架,如:JPA Hibernate, Mybatis, Spring JDBC Template或直接使用JDBC。
2022-11-30 22:03:26
354
1
原创 Spring注解开发
这个使用率较低,描述子类的,咱们做JavaEE开发,继承机会就一次,使用都很慎重,所以很少用它。有了这个特性后,我们就可以在环绕通知中对原始方法的参数进行拦截过滤,避免由于参数的问题导致程序无法正确运行,保证代码的健壮性。匹配com.itheima包下的任意包中的UserService类或接口中所有find开头的带有一个参数的方法。调用无参数的proceed,当原始方法有参数,会在调用的过程中自动传入参数。:单个独立的任意符号,可以独立出现,也可以作为前缀或者后缀的匹配符出现。
2022-10-31 11:01:31
182
原创 Spring整合Mybatis
方法中有一个参数为dataSource,当前Spring容器中已经创建了Druid数据源,类型刚好是DataSource类型,此时在初始化SqlSessionFactoryBean这个对象的时候,发现需要使用DataSource对象,而容器中刚好有这么一个对象,就自动加载了DruidDataSource对象。这个MapperScannerConfigurer对象也是MyBatis提供的专用于整合的jar包中的类,用来处理原始配置文件中的mappers相关配置,加载数据层的Mapper接口类。........
2022-08-05 10:33:03
65
原创 多环境开发兼容问题
此时并不能解析${profile.active},我们需要在pom.xml中配置。如果在maven和boot中都有多环境开发,那么由谁来做主呢?我们会发现如果不配置,是boot中的为主。这样再打包运行就是以maven中的为主了。...
2022-07-27 08:47:19
117
原创 Spring相关概念
在容器中建立bean与bean之间的依赖关系的整个过程,称为依赖注入业务层要用数据层的类对象,以前是自己new的现在自己不new了,靠别人[外部其实指的就是IOC容器]来给注入进来这种思想就是依赖注入。...
2022-07-27 08:46:11
101
原创 Java基础篇-JDBC
目录JDBC概述:基本介绍: JDBC带来的好处:JDBC API : JDBC 快速入门:获取数据库连接的五种方式: 方式一:方式二:使用反射加载Driver类方式三:使用DriverManger 替代 Diver 进行统一管理,便于应对需要连接多个数据库的场景。 方式四:使用Class.forName自动完成注册驱动,简化代码,这种方式使用最多,推荐使用 方式五:在方式四的基础上改进,增加配置文件,使连接数据库更灵活(最好的一种方式)ResultSet [结果集]: Statement:SQL注入:
2022-07-03 20:34:41
606
原创 Java-网络编程(2)
2. InetAddress类2.1 相关方法获取本机InetAddress对象 getLocalHost 根据指定主机名/域名获取ip地址对象 getByName 获取InetAddress对象的主机名 getHostName 获取InetAddress对象的地址 getHostAddress//获取计算机的主机名和IP地址相关APIpublic class API_ { public static void main(String[] args) throws Unkn...
2022-05-24 09:43:16
191
原创 Java-网络编程(1)
1.网络的相关概念1.1 网络通信概念:两台设备之间通过网络实现数据传输,将数据通过网络从一台设备传输到另一台设备java.net包下提供了一系列的类或接口,供程序猿使用,完成网络通信1.2 网络概念:两台或多台设备通过一定的物理设备连接起来构成了网络根据网络的覆盖范围不同分为:局域网:覆盖范围最小,仅仅覆盖一个教室或一个机房 城域网:覆盖范围较大,可以覆盖一个城市 广域网:覆盖范围最大,可以覆盖全国,甚至全球,万维网是广域网的代表1.3 IP地址1. 概念:用
2022-05-21 09:29:11
180
原创 Java基础篇 - 多线程详解
1.线程相关概念1.1 程序是为了完成特定任务,用某种语言编写的一组指令的集合。简单的说,就是我们写的代码1.2 进程进程是指运行中的程序,比如我们使用了QQ,就启动了一个进程,操作系统就会为该进程分配内存空间。当我们玩游戏时,又启动了一个进程,操作系统会为该游戏分配新的内存空间。 进程是程序的一次执行过程,或者是正在运行的一个程序,是动态过程:有他自身的产生,存在和...
2022-05-18 18:25:20
583
原创 Java基础篇-泛型
1.分析使用传统方法的问题 不能对加入到集合ArrayList中的数据类型进行约束(不安全) 遍历的时候,需要进行类型转换,如果集合中的数据量较大,会对效率造成影响2. 泛型的理解和好处编译时,检查添加元素的类型,提高了安全性 减少了类型转换的次数,提高了效率 不再提示编译警告3. 泛型介绍泛型又称参数化类型,是JDK5.0出现的新特性,解决数据类型的安全性问题 在类声明或实例化时只要指定好需要的具体的类型即可 Java泛型可以保证如果程序在编译时没有发出警告,运行时就不会产..
2022-05-14 17:30:22
414
原创 Java基础篇-集合
1. 集合的理解和好处:1.1 数组(不足的地方,引出集合)长度开始时必须指定,而且一旦指定,不能更改 保存的必须为同一类型的元素 使用数组进行增加或删除操作比较麻烦1.2 集合(好处)可以动态保存任意对象 提供了一系列方便的操作对象的方法:add,remove,set,get等 使用集合添加,删除新元素的示意代码简洁明了2. 集合的框架体系Java的集合类很多,主要分为两大类,这里只讲解常用的,如图:3.Collection接口和常用方法3.1 Co
2022-05-14 15:57:50
383
原创 Java基础篇-IO流
1.文件1.1 什么是文件?文件是可以保存数据的地方,比如大家经常使用的word文档,txt文档....都是文件,它既可以保存一张图片,也可以保存视频,声音....1.2 文件流文件在程序中是以流的形式来操作的。...
2022-05-11 10:48:12
242
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人