- 博客(28)
- 问答 (1)
- 收藏
- 关注
原创 Spring-事务属性
1.隔离属性 默认值2.传播属性 Required(默认值) 增删改 Supports 查询操作3.只读属性 readOnly false 增删改 true 查询操作4.超时属性 默认值 -15.异常属性 默认值增删改查询操作。
2025-03-31 21:07:11
723
原创 Spring的事务处理
属性:描述物体特征的一系列值事务属性:描述事务特征的一系列值1.隔离属性2.传播属性3.只读属性4.超时属性5.异常属性2.如何添加事务属性运行效率:不读未提交的数据(No Dirty Read):事务只能看到其他事务已提交的修改。但允许已提交的数据被其他事务修改为什么安全性最低?不可重复读(Non-repeatable Read):事务A第一次读数据后,事务B可以修改并提交,事务A第二次读可能看到不同的值。幻影读(Phantom Read)
2025-03-30 16:19:11
1026
原创 Spring与Mybatis整合
1.Spring框架为什么要与持久层技术进行整合JavaEE开发需要持久层进行数据库的访问操作JDBC Hibernate Mybatis进行持久层开发存在大量的代码冗余Spring基于模板设计模式对于上述的持久层技术进行了封装2.Mybatis整合。
2025-03-28 20:42:14
515
原创 Mybatis手写基本框架
(封装SQL语句信息)/*Mybatis-config.xml配置文件 SQL语句映射MappedStatemtn类作用是封装EmpMapper.xml文件解析之后的SQL语句信息在底层框架可以使用Demo4j进行解析*/@Data/*id标识 每条SQL语句的唯一标识*//*resultType 返回值类型*//*参数类型*/Configuration是Mybatis的SQL配置封装类,后期使用Demo4j进行解析/*
2025-03-27 15:19:15
951
原创 《深入理解AOP编程:从基础概念到Spring实现》
JDK动态代理 Proxy.newProxyInstance() 通过接口创建代理的实现类Cglib动态代理 Enhancer。
2025-03-18 17:45:58
847
原创 深入理解静态与动态代理设计模式:从理论到实践
切入点:额外功能加入的位置目的:由程序员根据自己的需要,决定额外功能加入倒哪个原始方法中rigisterlogin简单测试:所有方法都作为切入点 加入额外功能-- 所有的方法 都作为切入点 加入额外功能 login register-->
2025-03-14 17:02:29
1209
原创 Spring中的配置文件参数化与类型转换器实现详解
作用:Spring通过类型转换器把配置文件中字符串类型的数据,转换成了对象中成员变量对应的类型原因:当Spring内部没有提供特定类型转换器时,而程序员在应用过程中还需要使用,程序员自己开发自定义类型转换器。类 implements Converter接口/** 实现Converter接口,重写convert方法* @return*/try {Spring配置文件中进行配置MyDateConverter对象创建出来类型转换器的注册。
2025-03-13 15:05:41
470
原创 Spring中复杂对象的创建方式:FactoryBean、实例工厂与静态工厂全解析
复杂对象:指的就是不能直接通过new 构造方法创建的对象ConnectionSpring中用于创建复杂对象的一种方式,也是Spring原生提供的,后续Spring整合其它框架,大量应用FactoryBean。
2025-03-12 16:00:19
564
原创 《Spring日志整合与注入技术:从入门到精通》
通过Spring工厂及配置文件,为所创建对象的成员变量赋值为成员标量提供set get方法配置文件中进行注入(赋值)
2025-03-11 16:01:58
964
原创 Spring学习笔记:工厂模式与反射机制实现解耦
spring是一个开源轻量级的java开发应用框架,可以简化企业级应用开发轻量级1.轻量级(对于运行环境没有额外要求)2.代码移植性高(不需要实现额外接口)JavaEE的解决方案Spring更像是一种解决方案,对于控制层,它有Spring MVC,对于Service层,有对应的Aop可以解决service中的事务控制和日志处理的问题,现有的持久化方案像jdbc、mybatis作整合解决Dao的问题。最大的特点就是每个层次都可以有对应的解决方案。1.概念:通过工厂类、创建对象2.好处:解耦合。
2025-03-09 15:28:20
1078
原创 java----IO流
IO流:存储和读取数据的解决方案I:input O:ourput 流:像水流一样传输数据IO流作用?用于读写数据(本地文件,网络)IO流按照流向可以分类为哪两种流?输出流:程序->文件输入流:文件->程序IO流按照操作文件的类型可以分类哪两种流?字节流:可以操作所有类型的文件字符流:只能操作纯文本文件(用winods系统自带的记事本打开并且能读懂的文件)
2024-10-18 15:57:12
824
原创 java----LinkedHashMap
原理:底层数据结构依然是哈希表,只是每个键值对元素又额外多了一个双链表的机制记录存储的顺序。.这里的有序指的是保证存储和去除的元素顺序一致。.由键决定:有序、不重复、无索引。
2024-09-21 19:13:11
282
1
原创 java-----异常
目的:让控制台的错误更加的见名知意throw new NameFormatException("长度应该是3-10");//这里时自定义抛出的异常,满足自定义的需求//自定义的异常类。
2024-09-21 17:51:57
1740
原创 java-----方法引用
第一个参数:表示被引用方法的调用者,决定了可以引用那些类中的方法,在Stream流中,第一个参数一般都表示流里面的每一个数据,第二个参数到最后一个参数,跟被引用方法的形参保持一致,如果没有第二个参数,说明被引用的方法需要是无参的构造方法。被引用方法的形参,需要跟抽象方法的第二个形参到最后一个形参保持一致,返回值需要保持一致。假设流里面的数据是字符串,那么使用这种方法引用,只能引用String这个类中的方法。②本类:this::方法名③父类:super::方法名。①其他类:其他类对象::方法名。
2024-09-19 19:25:53
663
原创 java-----Stream流
张无忌 周芷若 赵敏 张强 张三丰 张翠三 张良 王二麻子 谢广坤 张无忌 张无忌 张无忌 张无忌 张无忌 张无忌 张无忌 王二麻子 谢广坤。集合里面的数据:[张无忌, 周芷若, 赵敏, 张强, 张三丰, 张翠三, 张良, 王二麻子, 谢广坤]收集到list集合中:[张无忌-13-男, 张强-16-男, 张三丰-15-男, 张三丰-15-男][张无忌, 周芷若, 赵敏, 张强, 张三丰, 张翠三, 张良, 王二麻子, 谢广坤]收集到set集合中:[张强-16-男, 张三丰-15-男, 张无忌-13-男]
2024-09-18 19:54:13
1009
原创 java-----可变参数
可以看到设置getSum的形参为可变参数,可以接收多个参数进行求和,也可以看到求和+的时data[i],本质是是一个数组。比如我们要进行求和操作,但是我们不知道要需要求和的数据个数有多少时,可以使用可变参数。可变形参能够接任意个数据,如果设置多个或者把别的形参设置在可变形参的后面,都会无法起作用。2.可变参数必须放在形参列表的最后面。1.形参列表中可变参数只能有一个。:在形参中接收多个参数,本质是上就是一个数组。:数据类型...参数名称。举例:int...a。
2024-09-14 09:49:19
412
原创 java----TreeMap
比如添加元素,最坏情况下,添加多个元素,形成链表的话,此时TreeMap的效率更高,但是这种这种情况的几率非常少。3.如果一个节点没有子节点或者父节点,则该节点的指针属性为Nil,这些NIl视为叶节点,每个叶节点(Nil)是黑色的;//可以看到,之前讲解第三个参数,代表键重复是否会进行覆盖操作,这里是有开关的,所以支持覆盖的put方法。5.对每一个节点,从该节点到其所有后代叶节点的简单路径上,均包含相同数目的黑色节点。:定义对象的排序顺序,允许你为一个类定义多个不同的排序顺序,或者为那些没有实现。
2024-09-13 21:43:10
963
原创 java---HashMap
2.当计算出来的数组位置已经有值时,【JDK8开始时】把新添加的元素直接挂在老元素下面形成新的链表。利用put方法就可以创建数据,put方法底层会创建一个Entry<V,V>对象,然后利用键去计算一个哈希值(当创建一个Hash对象时,默认会创建一个长度为16,默认加载因子为0.75的数组。1.当计算出来的数组位置为null是,会直接添加到对应的位置中。2.没有额外需要学习的特有方法,直接使用Map里面的方法。加入再put进来一个值,它计算的结果也是5:处理方式会有两种。这里使用键计算,跟值没有任何关系!
2024-09-13 14:33:39
1401
原创 java 面向对象-----static关键字
可以看到,三个对象是存储在非静态区,静态属性是存储在静态存储区的,当对象需要调用静态属性时,可以到静态存储区去找。静态存储区时创建的时候就加载进去了,静态存储区的内容是被该类所有对象所共享的,而对象的属性是它们所独有的。2.非静态方法可以访问静态变量或者静态方法,也可以访问非静态的成员变量和非静态的成员方法.静态方法不能访问非静态的成员,可以看到这里的this也是非静态,也解释为什么静态方法中没有this关键字。也就解释了静态的属于类,成员的属于对象。②非静态方法可以访问静态和非静态的成员属性和方法。
2024-09-11 11:21:17
696
原创 java----双列集合(Map)
对象,然后通过getKey()和getValue的方式获得键和值。lambda是遍历的一种新的语法形式,原理也是获得Map.Entry对象,对其进行遍历。:(可以通过map集合里面的keySet方法获的键的集合,然后通过map.get(键)去找值)Map集合:Map集合是双列集合的顶层接口,它的功能是全部双列集合都可以继承使用。2.当存储的键不存在时,返回的值时null.1.当存储的键已经存在时,返回的值就是修改之前的值的值;2.使用Map接口自带的内部接口。的,每个键只能找到自己对应的值。
2024-09-10 19:58:13
670
原创 java--(StringBuilder)
假若我要做以上代码所表达的操作,就是对字符串进行拼接,从上一节我们知道,字符串本身是不可变的,所以每一次拼接都要创建一个新的对象并返回,这里只是拼接三个,如果我要拼接上万个呢?我们从图中可以看到,每次拼接都需要创建一个StringBuilder对象,然后StringBuilder在调用toString方法返回字符串,这种方法每次拼接都要再堆中创建两个对象。可以看到,所有拼接的内容都会往StringBuilder中放,不会创建很多无用的空间,节约内存,提高了效率。那么它是怎么提高字符串的操作效率的呢?
2024-09-09 19:44:35
1317
原创 Java----字符串(String)
直接赋值时,系统都会检查该字符串在串池是否存在,不存在的话则创建新的,存在的话,可以看到字符串常量值"abc"的地址值返回。当s2创建对象的时候,也会去检查常量池中是否有该字符串,若有的话,直接在堆中创建一个新的String对象,这个对象也会指向常量池中的"abc",然后把这个新的String的地址返回,这时就是。首先,从前面的知识我们知道,当对一个字符串进行直接赋值时,它会到常量池先去查找这个字符串,如果没有,则会创建一个新的字符串对象,并将其返回,而不是在原来的基础上进行修改。
2024-09-09 15:54:39
1049
原创 java 多态
面向对象三大特性:封装、继承、多态,今天我们来讲解多态定义:同类型的对象表现出不同的形态这听起来有点抽象,我们举个具体的例子:但是,这样会出现一个问题,不同居民可能会带不同的种类的猫还有的宠物过来寄养,可是你的寄养服务只提供给波斯猫,这样你就失去了很多顾客,而你的规则就是就是你编写的代码,传递类型不对就代表编译失败。于是你就改变了规则,但凡是宠物都可以放到这里寄养。虽然问题得到了解决,但是实在是太麻烦了,需要定义太多的规则,太过冗余。
2024-09-05 21:50:23
1349
1
您独创内容是否可以放入论文
2024-07-30
请问这个怎么做啊?求步骤最好代码
2021-11-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人