Spring 容器的基本用法
容器的基本用法
bean 是 Spring 中最核心的东西,因为 Spring 就像是个大水桶,而 bean 就像是容器中的水,水桶脱离了水也没什么用处了,来看看 bean 的定义。
public class MyTestBean { private String testStr = "testStr"; public String getTestStr() { return testStr; } public void setTestStr(String testStr) { this.testStr = testStr; } }
Spring 的目的就是让 bean 成为一个纯粹的 POJO ,这是 Spring 所追求的。来看配置文件。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd"> <bean id="myTestBean" class="com.zhen.bean.test.MyTestBean"/> </beans>
测试代码
public class BeanFactoryTest { public static void main(String[] args) { @SuppressWarnings("deprecation") BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("beanFactoryTest.xml")); MyTestBean bean = (MyTestBean) beanFactory.getBean("myTestBean"); System.out.println(bean.getTestStr()); } }
直接使用 BeanFactory 作为容器对于 Spring 的使用来说并不多见,甚至是极少使用,因为在企业级的应用中大多数都会使用的是 ApplicationContext,这里知识用于测试,可以更好的分析 Spring的内部原理。
功能分析
上边这段测试代码完成的功能:
- 读取配置文件 beanFactoryTest.xml
- 根据 beanFactoryTest.xml 中的配置找到对应的类的配置,并实例化。
- 调用实例化后的实例
- ConfigReader : 用于读取及验证配置文件。我们要用配置文件里边的东西,当然首先要做的就是读取,然后放置在内存中。
- ReflectionUtil : 用于根据配置文件中的配置进行反射实例化。例如上边例子中的
<bean id="myTestBean" class="com.zhen.bean.test.MyTestBean"/>,我们可以根据com.zhen.bean.test.MyTestBean进行实例化。
- App : 用于完成整个逻辑的串联。
分类:
Spring源码解析
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示