- 博客(17)
- 收藏
- 关注
原创 Spring-IOC之组件扫描
通过自动扫描,Spring 会自动从扫描指定的包及其子包下的所有类,并根据类上的特定注解将该类装配到容器中,而无需在 XML 配置文件或 Java 配置类中逐一声明每一个 Bean。支持的注解Spring 支持一系列注解,用于标记哪些类应被自动扫描并作为 Bean 管理。@Component:基础注解,标记一个类作为 Spring 组件。所有其他特殊用途的组件注解都继承自此注解。
2024-04-23 14:38:51
1195
1
原创 Spring-基于xml自动装配
Spring IoC容器在无需显式定义每个依赖关系的情况下,根据指定的策略,自动为指定的bean中所依赖的类类型或接口类型属性赋值。
2024-04-19 15:42:07
2282
1
原创 Spring-bean的循环依赖
Spring的循环依赖是指在Spring管理的Bean之间存在互相引用的情况,即两个或多个Bean相互依赖,形成闭环,陷入无限递归或无法完成初始化的状态。
2024-04-15 15:37:29
640
1
原创 Spring源码-IOC之resolveBeanClass
bean定义的beanClass属性不为空并且是class类型直接返回。如果存在类型匹配参数(typesToMatch),将动态加载器替换为临时类加载器,并标记为“freshResolve”(表示本次解析为新的或临时的)。从RootBeanDefinition (mbd) 中获取Bean的类名称(className),如果类名称包含表达式(如前缀为#{},后缀为}),则对其进行动态解析。如果解析后的类名称与原始类名称不同,则根据解析结果加载对应的类。若解析结果为一个Class对象,则直接返回;
2024-04-01 15:22:36
1046
原创 Spring源码-BeanDefinition
AbstractBeanDefinition抽象类是BeanDefinition 接口的具体实现类。除了包含BeanDefinition接口的配置信息,还添加了其他配置信息,主要补充bean的行为特征。// 可能是bean名称,也可能是bean类型// 自动装配模式// 依赖检查方式// 是否具有指定的限定符// 用于创建 Bean 实例的回调// 是否允许访问非公共构造函数和方法// 宽松模式(true)下还是严格模式下解析构造函数// 有关 IoC 容器要重写的方法的信息。
2024-03-20 14:40:56
1980
1
原创 Spring源码-IOC之ClassPathXmlApplicationContext#refresh
了解过refresh大致流程后,紧接着上一篇文章,继续浅析下ClassPathXmlApplicationContext实例化过程的第三部分refresh()。// 创建ioc容器// 调用基类AbstractApplicationContext构造方法,创建资源路径解析器,默认值是ResourcePatternResolver// 设置上下文的配置路径// 调用父类AbstractApplicationContext的refresh方法refresh();// 省略其他代码...
2024-03-05 22:36:45
977
1
原创 Spring源码-IOC之AbstractApplicationContext#refresh
refresh是接口ConfigurableApplicationContext的方法,定义:加载或刷新配置的持久层表示,可能是Java Config类、XML文件、properties文件或关系型数据库模式。接口ConfigurableApplicationContext的子类AbstractApplicationContext对refresh方法做了基本实现,方法体由一系列方法调用组成蓝色为准备环境;绿色为创建、初始化bean工厂,并用工厂实例化bean;黄色为上下文初始化一些特有的功能。
2024-02-29 14:17:09
1060
原创 Spring源码-IOC之ClassPathXmlApplicationContext
实例化PathMatchingResourcePatternResolver,给属性resourcePatternResolver赋值给属性parent赋值,当父环境不为空是,合并父子环境获取环境,当环境为空时创建环境并初始化,给上下文属性environment赋值解析资源路径,如果存在占位符,则获取占位符的关联值,给上下文属性configLocations赋值无参考Spring核心讲解篇——ApplicationContext - 知乎 (zhihu.com)
2024-01-09 00:01:47
1427
原创 Linux nohup 后台运行java服务,日志输出到指定文件
进程号pid=237635,日志默认输出到文件nohup.out。运算符重定向标准输出,由原本的指向。是用来重定向标准错误,指令中的。的含义就是重定向标准错误到。查看java程序进程号。这条指令的意思就是将。
2023-12-28 08:45:45
3992
1
原创 java.util.function.BinaryOperator
被FunctionInteface注解标记:函数接口。继承BiFunction接口:R apply(T t, U u),对 T型, U型 的两个参数操作,返回 R 类型的结果。BinaryOperator出入参为统一类型T。两个方法:minBy方法根据指定的Comparator返回两个元素中较小的一个。maxBy根据指定的Comparator返回两个元素中较大的一个。
2023-11-23 16:58:17
98
原创 快速找出两个List中某些特定属性相同的实体类
可以看到结果中不包含UserRole了,原因是lombok的@Data会重写hashcode和equals方法,实体类是否“”重复“”取决于是否重写了hashCode和equals方法。通过重写hashCode与equals方法使得只根据类的某些属性值进行比较,从而判断两个元素是否“重复”。HashSet是一个基于哈希表(HashMap)实现,元素不可重复的集合,通过这些特点可以快速找出重复的元素。HashMap中当元素的hash值相同时,桶位置索引的计算值就会相同,且计算值比较。
2023-11-22 14:10:58
891
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人