- 博客(17)
- 收藏
- 关注
原创 Spring源码分析(3)——IOC 源码深度剖析(下)
7. IOC 源码深度剖析【7. 初始化消息源】initMessageSource();方法概述initMessageSource()方法用来设置国际化资源相关的调用,将实现了MessageSource接口的bean存放在ApplicationContext的成员变量中,先看是否有此配置,如果有就实例化,否则就创建一个DelegatingMessageSource实例的bean源码剖析initMessageSource(); /** * Initialize the MessageSourc
2023-08-14 22:47:20 141
原创 Spring源码分析(2)——IOC 源码深度剖析(上)
7. IOC 源码深度剖析IOC容器初始化主流程 public static void main(String[] args) { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:applicationContext.xml"); TestBean testBean = (TestBean) applicationContext.getBean(
2023-08-14 22:46:27 124
原创 Spring源码分析(1)
Bean组件定义在Spring的包下,解决了以下几个问题:Bean的定义Bean的创建Bean的解析Spring Bean的创建是典型的工厂模式,它的顶级接口是BeanFactory。BeanFactory有三个子类:ListableBeanFactory、HierarchicalBeanFactory和AutowireCapableBeanFactory。目的是为了区分Spring内部对象处理和转化的数据限制。
2023-08-13 22:18:52 112
原创 MyBatis源码分析(4)
问题:什么是Mybatis插件?有什么作用?一般开源框架都会提供扩展点,让开发者自行扩展,从而完成逻辑的增强。基于插件机制可以实现了很多有用的功能,比如说分页,字段加密,监控等功能,这种通用的功能,就如同AOP一样,横切在数据操作上而通过Mybatis插件可以实现对框架的扩展,来实现自定义功能,并且对于用户是无感知的。
2023-07-27 19:13:33 149
原创 MyBatis源码分析(3)
解析select\insert\ update\delete标签中的SQL语句,最终将解析到的SqlNode封装到MixedSqlNode中的List集合中。SimpleExecutor:简单执行器,每执行一条 sql,都会打开一个 Statement,执行完成后关闭;BaseExecutor:基础执行器,封装了子类的公共方法,包括一级缓存、延迟加载、回滚、关闭等功能;功能,并且在当前 sql 和上一条 sql 完全一样的时候,重用 Statement,在调用。问题:sql占位符如何进行的替换?
2023-07-27 19:02:28 79
原创 MyBatis源码分析(2)
全局配置文件可配置参数:https://mybatis.org/mybatis-3/zh/configuration.htmlConfiguration对象// 允许在嵌套语句中使用分页(RowBounds)。如果允许使用则设置为false。默认为false protected boolean safeRowBoundsEnabled;// 允许在嵌套语句中使用分页(ResultHandler)。
2023-07-24 23:06:28 194
原创 MyBatis源码分析(1)
JDBC是个人作战,凡事都是亲力亲为,低效而高险,自己加载驱动,自己建连接,自己手动创建和释放数据库资源,处理事务和异常等,是一种相对原始且底层的数据库访问方式。虽然JDBC提供了直接与数据库交互的API,但它需要开发者编写大量冗余的代码来处理数据库连接、结果集的封装等,容易出现重复性代码和错误,使得开发变得繁琐且容易出错。而持久层框架好比是多工种协作,分工明确,执行高效,有专门负责解析注册驱动建立连接的,有专门管理数据连接池的,有专门执行sql语句的,有专门做预处理参数的,有专门装配结果集的 …
2023-07-19 23:13:59 101
原创 Java中对于List<Map<String,String>>中的中文汉字按照拼音排序
代码实现public static void listSort(List<Map<String, Object>> resultList) { Collections.sort(resultList, new Comparator<Map<String, Object>>() { public int compare(Map<String, Object> o1, Map<String, Object> o2)
2021-12-21 09:37:30 287
原创 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 ‘table_name‘ 中的标识列插入显式值。
题主在往达梦数据库插入数据时,遇到这么一个报错要添加的的数据解决方法这是原来的主键字段处理方法对数据库自增ID字段处理,然后完美插入数据
2021-11-25 14:42:21 1124
原创 运行renren-fast-vue报错if (process.env.NODE_ENV === ‘production‘)解决办法
在运行renren-fast-vue前端时,运行npm run dev命令后,弹出的页面报错<% if (process.env.NODE_ENV === ‘production’) { %> <% }else { %> <% } %>试了很多其他的解决方案,主要是本地的node版本(我的是14.15.3版本)过高,node.js版本应该为10.x或者以下。试了很多其他的命令,都不行,运行以下命令npm install node-sass@4.14.0重新启动
2021-08-13 19:10:37 1090 4
原创 SpringCloudAlibaba之Nacos
SpringCloudAlibaba之Nacos测试环境搭建1.1 创建提供者程 工程 01-provider-8081(1)创建工程创建一个 Spring Initializr 工程,并命名为 01-provider-8081。导入 Lombok、Web、JPA 及MySQL 驱动依赖。(2)导入Druid依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</
2021-08-12 16:58:09 453
原创 javase接口
Overload和Override的区别?重载Overload:表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同,参数个数或类型不同重写Override:表示子类中的方法可以与父类中的某个方法的名称和参数完全相同接口是否可以继承接口?接口是否支持多继承?类是否支持多继承?接口里面是否含有方法实现接口里可以有静态方法和方法体接口中的方法必须是抽象方法(JDK8之后就不是)接口不是被类继承了,而是要被类实现接口支持多继承,类不支持多个类继承一个类只能继承一个类,但是能实
2021-08-09 15:17:21 78
原创 javase字符串
javase字符串(重点)常用字符串的考察点问题1:String str = new String(“xdclass.net”); 创建了几个对象解答:创建一个对象:常量池存在,则直接new一个对象创建两个对象:常量池不存在,则在常量池创建一个对象,也在堆里面创建一个对象问题2: 下面是比较什么?输出结果是什么?为什么是这样的结果String str1=new String("xdclass.net");String str2="xdclass.net";String st
2021-08-09 15:15:44 131
原创 Javase基础语法篇
运算符 &和&&、 |和||的区别吗?& 按位与操作 只有对应的两个二进制数为1时,结果位才为1 1&1=1 1&0=0 0&1=0 0&0=0| 按位或操作 有一个为1的时候,结果位就为1 1|1=1 1|0=1 0|1=1 0|0=0& 和 && 都可以实现 和 这个功能区别:& 两边都运算,⽽而 && 先算 && 左侧,若左侧为false 那么右
2021-08-07 18:47:55 142
原创 经典Java面试知识点总结-1
一、JavaSE 一些面试知识点1、自增变量 public static void main(String[] args) { int i = 1; i = i++; int j = i++; int k = i + ++i * i++; System.out.println("i=" + i); System.out.println("j=" + j); System.out.println
2021-03-19 19:19:12 1971
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人