😀前言
本片文章是spring 容器结构/机制debug分析和几个重要概念以及IOC 的开发模式
🏠个人主页:[尘觉主页](https://blog.csdn.net/apple_67445472?type=blog)
🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家,您的满意是我的动力😉😉
在csdn获奖荣誉: 🏆csdn城市之星2名
💓Java全栈群星计划top前5
🤗 端午大礼包获得者
💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰
如果文章有什么需要改进的地方还请大佬不吝赐教 先在次感谢啦😊
文章目录
💝spring 容器结构/机制debug分析和几个重要概念以及IOC 的开发模式
🥰Spring 学习的核心内容
解读上图:
💗Spring 几个重要概念
● 传统的开发模式
解读上图
❤️🔥● IOC 的开发模式
解读上图
代码示例—入门
xml代码
💞注意事项和细节
1、说明
2、解释一下类加载路径
3、debug 看看 spring 容器结构/机制
综合解图
😄总结
💝spring 容器结构/机制debug分析和几个重要概念以及IOC 的开发模式
🥰Spring 学习的核心内容
解读上图:
1、Spring 核心学习内容 IOC、AOP, jdbcTemplate, 声明式事务
2、IOC: 控制反转 , 可以管理 java 对象
3. AOP : 切面编程
4. JDBCTemplate : 是 spring 提供一套访问数据库的技术, 应用性强,相对好理解
5. 声明式事务: 基于 ioc/aop 实现事务管理, 理解需要花时间
6. IOC, AOP 是重点同时难点
💗Spring 几个重要概念
1. Spring 可以整合其他的框架(解读: Spring 是管理框架的框架)
2. Spring 有两个核心的概念: IOC 和 AOP
3. IOC [Inversion Of Control 反转控制]
● 传统的开发模式
[JdbcUtils / 反射]程序------>环境 //程序读取环境配置,然后自己创建对象
解读上图
(以连接到数据库为例说明)
1、程序员编写程序, 在程序中读取配置信息
2. 创建对象, new Object???() // 反射方式
3. 使用对象完成任务
❤️🔥● IOC 的开发模式
程序<-----容器 //容器创建好对象,程序直接使用.
解读上图
1、Spring 根据配置文件 xml/注解, 创建对象, 并放入到容器(ConcurrentHashMap)中,并且可以完成对象之间的依赖
2、当需要使用某个对象实例的时候, 就直接从容器中获取即可
3、程序员可以更加关注如何使用对象完成相应的业务, (以前是 new ... ==> 注解/配置方式)
4. DI—Dependency Injection 依赖注入,可以理解成是 IOC 的另外叫法.
5. Spring 最大的价值,通过配置,给程序提供需要使用的
web 层[Servlet(Action/Controller)]/Service/Dao/[JavaBean/entity]对象,这个是核心价值所在,也是 ioc 的具体体现, 实现解耦
代码示例—入门
通过 Spring 的方式[配置文件],获取 JavaBean: Monster 的对象,并给该的对象属性赋 值,输出该对象信息.
查看容器注入了哪些 bean 对象,会输出 bean 的id
1. 创建容器 ApplicationContext
2. 该容器和容器配置文件关联
3. 通过getBean获取对应的对象 默认返回的是Object , 但是运行类型Monster
4. 输出
5. 也可以再获取的时候,直接指定Class类型, 可以在次获取
6. 查看容器注入了哪些bean对象,会输出bean的id
public void getMonster() {
//解读
//1. 创建容器 ApplicationContext
//2. 该容器和容器配置文件关联
ApplicationContext ioc =
new ClassPathXmlApplicationContext("beans.xml");
//3. 通过getBean获取对应的对象
// 默认返回的是Object , 但是运行类型Monster
//Object monster01 = ioc.getBean("monster01");
Monster monster01 = (Monster) ioc.getBean("monster01");
//4. 输出
System.out.println("monster01=" + monster01 + " 运行类型=" + monster01.getClass());
System.out.println("monster01=" + monster01 + "属性name=" + monster01.getName() +
" monserid=" + monster01.getMonsterId());
//5. 也可以再获取的时候,直接指定Class类型, 可以在次获取
Monster monster011 = ioc.getBean("monster01", Monster.class);
System.out.println("monster011=" + monster011);
System.out.println("monster011.name=" + monster011.getName());
//6. 查看容器注入了哪些bean对象,会输出bean的id
System.out.println("================================");
String[] beanDefinitionNames = ioc.getBeanDefinitionNames();
for (String beanDefinitionName : beanDefinitionNames) {
System.out.println("beanDefinitionName=" + beanDefinitionName);
}
System.out.println("================================");
System.out.println("ok~~~");
}
xml代码
1. 配置monster对象/javabean
2. 在beans中可以配置多个bean
3. bean表示就是一个java对象
4. class属性是用于指定类的全路径->spring底层使用反射创建
5. id属性表示该java对象在spring容器中的id, 通过id可以获取到对象
6. <property name="monsterId" value="100"> 用于给该对象的属性赋值
<!--
-->
<bean class="com.spring.bean.Monster" id="monster01">
<property name="monsterId" value="100"/>
<property name="name" value="牛魔王"/>
<property name="skill" value="芭蕉扇"/>
</bean>
💞注意事项和细节
1、说明
ClassPathXmlApplicationContext ioc =
new ClassPathXmlApplicationContext("beans.xml");
为什么读取到 beans.xml
2、解释一下类加载路径
获取类加载的路径
File f = new File(this.getClass().getResource("/").getPath());
System.out.println(f);
3、debug 看看 spring 容器结构/机制
综合解图
😄总结
本篇讲解了spring 容器结构/机制debug分析--Spring 学习的核心内容和几个重要概念--IOC 的开发模式--综合解图
😁热门专栏推荐
想学习vue的可以看看这个
java基础合集
数据库合集
redis合集
nginx合集
linux合集
等等等还有许多优秀的合集在主页等着大家的光顾感谢大家的支持
🤔欢迎大家加入我的社区 [尘觉社区](https://bbs.csdn.net/forums/58c2ca9b8de344c69384b471dd4bd744)文章来源:https://www.toymoban.com/news/detail-431112.html
文章到这里就结束了,如果有什么疑问的地方请指出,诸佬们一起来评论区一起讨论😁
希望能和诸佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞文章来源地址https://www.toymoban.com/news/detail-431112.html
到了这里,关于spring 容器结构/机制debug分析--Spring 学习的核心内容和几个重要概念--IOC 的开发模式--综合解图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!