- 博客(12)
- 资源 (1)
- 收藏
- 关注
原创 4、Spring创建Bean的生命周期
在BeanFactory的抽象类中的方法,是Spring创建Bean的基本方法,在这个方法内,主要做的事有@DependsOn实例化前处理器Bean的实例化BeanDefinition的后置处理实例化后处理器自动注入属性赋值Aware回调初始化前处理器初始化逻辑初始化后处理器。
2025-05-10 22:46:50
575
原创 01-MyBatis核心流程
原始mybatis在启动时调用SqlSessionFactoryBuild.build(inputStream)时,会通过XMLConfigBuilder解析配置文件mybatis-config.xml并生成SqlSessionFactory。然后通过SqlSessionFactory.openSession()获得一个SqlSession对象当通过SqlSession对象获得对应的接口代理类并调用具体的方法。
2025-03-27 14:17:04
921
原创 3、FactoryBean核心源码
方法来获取Bean,这个方法就是Spring中创建Bean对象的一个核心方法。在这个方法中会判断这个bean是否为factroyBean,如果是,会。这里创建Bean的代码暂时不看,只看FactoryBean有关的代码。在Spring启动时,最终会调用到beanFactory中的。来获取Bean对象,其中传入的最后一个参数为null。因为FactoryBean是接口,其核心方法就三个。包中),它的核心作用是通过编程方式动态创建。方法生成factroyBean的实例。并实现其方法,泛型为。
2025-03-27 11:34:26
502
原创 2.1、补充:ComponentsIndex和ScopedProxyMode
这里可以看到,我传入的basePackage和spring.components中配置的类的包名不一致,返回的就是false,这些类都不会在次生成BeanDefinition,因没有配置其他的basePackage,因此最终从Spring获取类的时候报错了。而代理对象执行时,执行的的是AOP逻辑,最重要的就是。在Spring中,如果想精确的控制Spring来扫描并生成那些类,可以在META-INF/spring.components文件中配置那些类是要交给Spring来管理的,其文件内格式是。
2025-03-24 10:28:38
273
原创 2、BeanDefinition扫描源码
前面介绍过,BeanDefinition就是对Bean进行定义的,在Spring启动的过程中,肯定会经历扫描解析Class类并生成BeanDefinition的过程。下面就来介绍一下这个过程的源码,这里只介绍BeanDefinition扫描和生成的主流程,内部一些细节可能会照顾不到。
2025-03-18 18:10:14
697
原创 1.1、Spring核心组件之MetadataReader
在Spring框架中,类路径扫描和BeanDefinition解析是一个核心流程。为了高效地管理资源,Spring不会将扫描路径下的所有类直接加载到JVM内存中,而是采用了基于字节码分析的技术来实现这一过程。具体来说,Spring利用ASM(字节码 manipulator)技术,直接解析Class文件的字节码,提取所需的元数据信息。通过这种方式,Spring能够在类加载阶段就筛选出需要注册为Bean的类,从而优化了资源使用效率,既保证了功能的灵活性,又实现了对系统资源的有效管理。
2025-03-17 15:00:39
313
原创 1、Spring源码中核心组件
如果想要自己定义的注解可以被scanner扫描到,可以在scanner中添加includeFilter来实现,效果和@Component一致Retention;Target;@Ww。
2025-03-12 23:43:48
716
原创 Linux 日志切割工具cronolog无root权限安装
1、下载安装包,我这下载的是cronolog-1.6.2.tar.gz2、放到自己有权限的目录下面比如 /home/cronolog/3、解压tar zxvf cronolog-1.6.2.tar.gz4、进入cronolog安装文件所在目录cd cronolog-1.6.22.4运行安装./configuremakemake install注...
2019-08-26 21:58:14
1381
转载 在windows上通过浏览器远程连接Linux服务器的jupyter启动jupyter报错解决
要实现标题所描述的功能,需要在Liunx服务器端和windows客户端分别进行配置,需要配置的内容如下:1、Linux服务器端配置(1)启动ipython,$ ipython(2)创建远程连接密码,In [1]: from notebook.auth import passwd; passwd()输入两次密码,将得到一个字符串,比如'sha1:d0270e88f33b...
2019-03-14 15:55:27
683
原创 idea 从git跟踪列表移除文件
使用git rm --cached 文件名ming命令即在commit时不用再担心忘记取消勾选不想上传git的文件了
2019-01-16 09:14:39
4705
1
转载 spring mvc 配置web.xml时“/”和“/*”的区别
在自己使用springmvc时,配置web.xml的时候发现如果配置成/*则运行时会报404错误,但如果配制成/就可以正常返回视图,总结原因如下 当我在客户端调用URL:/user/list然后返回user.jsp视图,当配置的是/时:DispathcherServlet拿到这个请求然后返回对应的controller,然后通过Dispather Type通过Forward
2017-07-21 13:14:19
352
原创 ssh框架注解方式持久层无法注入sessionFactory解决方法
spring+struts2+hibernate 框架整合时,持久层继承了HibernateDaoSupper时,用注解方法可能会在持久层报sessionFactory或HibernateTemple为必须的,表明没有注入sessionFactory。主要原因是spring的头声明需要在最后添加default-autowrite=“byName”完整头声明如下:
2017-07-17 16:46:34
1506
人民银行征信系统产品说明-个人信用报告(二代试行)202007修订.pdf
2023-04-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人