202208-11 一篇文章带你了解Java Spring基础与IOC 目录AboutSpringAboutIOCHelloSpringHello.javaBeans.xmlTest.javaIOC创建对象的几种方式SpringimportsettingsDependencyInjection1.构造器注入2.set注入3.拓展注入P-namespcae&C-namespaceBeanscopessingletonprototypeBean的自动装配byNameautowirebyTypeautowire小结AboutSpring开源免费框架,轻量级,非入侵式框架。Spring就是一个轻量级的控制反转(IOC)和面向切片编程(AOP)的框架Mavenrepo:SpringWebMVC+... 继续阅读 >
202204-16 使用Spring自定义实现IOC和依赖注入(注解方式) 目录大致思路:注解实现方式:xml实现方式:1.引入相关jar2.定义注解类ExtService是注解类的,ExtResource是注解属性的3.定义一个借口4.接口和使用注解的实现类5.自定义实现ClassPathXmlApplicationContext6.测试7.结果8.工具类大致思路:注解实现方式:就是用反射机制.获取指定的包下使用了注解的类,存储在一个map容器,然后获取map容器下类的属性,利用反射给使用了注解的属性赋值对象.xml实现方式:使用xml解析配置文件... 继续阅读 >
202204-12 使用Java反射模拟实现Spring的IoC容器的操作 目录实现的功能:项目结构下面是程序的项目结构图:自定义注解容器实现测试实体类User的定义:实现的功能:默认情况下将扫描整个项目的文件可以使用@ComponentScan注解配置扫描路径只将被@Component注解修饰的类装载到容器中可以使用@AutoWired注解实现自动装配读取配置文件中的声明的类并注册到容器中项目结构下面是程序的项目结构图:自定义注解下面是自定义的三个注解:@AutoWired,@Component,@Componen... 继续阅读 >
202110-12 Spring(二):Spring通过IOC来创建对象 目录一、IOC如何获取对象1.1Spring是如何获取对象的?1.2改造案例由xml选择创建对象二、IOC是通过什么方式来创建对象的?2.1通过无参构造函数来创建对象2.2通过有参构造方法来创建对象三、Spring的配置3.1alias(别名):3.2Bean的配置:3.3import(团队合作之导入)总结一、IOC如何获取对象1.1Spring是如何获取对象的?①新建一个maven项目后导入webmvc的依赖:因为webmvc包含了很多其他依赖,为了省事,干脆导入一个总的... 继续阅读 >
202110-12 Spring(一):IOC如何推导和理解 目录IOC的推导1.1、模拟一个正常查询信息的业务流程:1.2、多个种类的查询1.3、优化查询方式1.4、IOC本质IOC的推导1.1、模拟一个正常查询信息的业务流程:①mapper层:因为没有连接数据库,这里我们写一个mapper的实现类来模拟数据的查询publicinterfacePerMapper{voidgetPerInfo();}publicclassStudentMapperImplimplementsPerMapper{@OverridepublicvoidgetPerInfo(){System.out.println("我是... 继续阅读 >
202107-26 详解Java从工厂方法模式到 IOC/DI思想 目录前言工厂方法模式工厂方法的结构工厂方法模式的样例代码工厂方法模式实现文件导出工厂方法与简单工厂的区别工厂方法模式的意义工厂方法模式与IOC、DI什么是IOC/DI?工厂方法与IOC/DI思想前言简单工厂的本质是选择实现,说白了是由一个专门的类去负责生产我们所需要的对象,从而将对象的创建从代码中剥离出来,实现松耦合。我们来看一个例子:我们要创建一个文件导出工具publicinterfaceFileOper{publicBooleanexceptFile... 继续阅读 >
202107-26 详解JavaSE实现IoC 目录JavaSE中的IoC实现方式JavaBeansSPIJNDI方式JavaSE中的IoC实现方式JavaSE提供了三种方式,可以实现IoC,分别为:JavaBeansJavaServiceLoaderSPIJNDI(JavaNamingandDirectoryInterface)JavaBeansjava.beans包下的Introspector类提供了一个getBeanInfo的方法,可以获取一个类的信息BeanInfobi=Introspector.getBeanInfo(User.class,Object.class);如上,则可以获取User类对象的BeanInfo,然后我... 继续阅读 >
202107-06 Spring IOC:CreateBean环节中的流程转换 目录一.前言二.流程梳理2.1实例化创建2.1.1doGetBean入口2.1.2doGetBean补充节点2.1.3AbstractBeanFactory#createBean2.1.4AbstractAutowireCapableBeanFactory#createBean主流程M173_05doCreateBean源码总结附录参考与感谢一.前言此篇文章的目的:梳理Bean的创建流程,便于后续查找问题点梳理过程中的参数情况,减少Debug的需求梳理整体家族体系Bean创建的几个触发场景:BeanFactory... 继续阅读 >
202104-27 手把手教你写一个spring IOC容器的方法 本文分享自华为云社区《手把手教你写一个springIOC容器》,原文作者:技术火炬手。spring框架的基础核心和起点毫无疑问就是IOC,IOC作为spring容器提供的核心技术,成功完成了依赖的反转:从主类的对依赖的主动管理反转为了spring容器对依赖的全局控制。今天就带大家手写一个springIOC容器。第0步(准备工作):(1)JDK1.8及java环境变量(2)maven包及maven环境变量(3)idea第1步(创建项目,引入tomcat包)PS:由于该项目的... 继续阅读 >
202104-25 浅谈Spring中IOC的理解和认知 IOC的推导1.1、模拟一个正常查询信息的业务流程:①mapper层:因为没有连接数据库,这里我们写一个mapper的实现类来模拟数据的查询publicinterfacePerMapper{voidgetPerInfo();}publicclassStudentMapperImplimplementsPerMapper{@OverridepublicvoidgetPerInfo(){System.out.println("我是一个学生");}}②service层:service的作用是查询人的信息publicinterfacePersonService{voidg... 继续阅读 >
202102-21 Java开发到底为什么要用 IoC 和 AOP 作为一名Java开发,对Spring框架是再熟悉不过的了。Spring支持的控制反转(InversionofControl,缩写为IoC)和面向切面编程(Aspect-orientedprogramming,缩写为AOP)早已成为我们的开发习惯,仿佛Java开发天生就该如此。人总是会忽略习以为常的事物,所有人都熟练使用IoC和AOP,却鲜有人说得清楚到底为什么要用IoC和AOP。技术肯定是为了解决某个问题而诞生,要弄清楚为什么使用IoC和AOP,就得先弄清楚不用它... 继续阅读 >
202101-08 ASP.NET Core Controller与IOC结合问题整理 前言看到标题可能大家会有所疑问Controller和IOC能有啥羁绊,但是我还是拒绝当一个标题党的。相信有很大一部分人已经知道了这么一个结论,默认情况下ASP.NETCore的Controller并不会托管到IOC容器中,注意关键字我说的是"默认",首先咱们不先说为什么,如果还有不知道这个结论的同学们可以自己验证一下,验证方式也很简单,大概可以通过以下几种方式。验证Controller不在IOC中首先,我们可以尝试在ServiceProvider中获取某个Contro... 继续阅读 >
202011-25 模仿Spring手写一个简易的IOC 这个小项目是我读过一点Spring的源码后,模仿Spring的IOC写的一个简易的IOC,当然Spring的在天上,我写的在马里亚纳海沟,哈哈感兴趣的小伙伴可以去我的github拉取代码看着玩地址:https://github.com/zhuchangwu/CIOC项目中有两种方式实现IOC:第一种是基于dom4j实现的解析XML配置文件版第二种是基于自定义注解实现全配置版全注解版模仿Spring原生的IOC机制如下:Interface类型的beanDefinition不会被实例化**String类型的beanD... 继续阅读 >
202010-10 Spring IOC原理补充说明(循环依赖、Bean作用域等) 前言通过之前的几篇文章将Spring基于XML配置的IOC原理分析完成,但其中还有一些比较重要的细节没有分析总结,比如循环依赖的解决、作用域的实现原理、BeanPostProcessor的执行时机以及SpringBoot零配置实现原理(@ComponentScan、@Import、@ImportSource、@Bean注解的使用和解析)等等。下面就先来看看循环依赖是怎么解决的,在此之前一定要熟悉整个Bean的实例化过程,本篇只会贴出关键性代码。正文循环依赖首先来看几个问题:什么... 继续阅读 >
202010-08 Spring.Net IOC依赖注入原理流程解析 一。什么是IOC.(InversionofControl)IOC,即控制反转。不是什么技术,而是一种思想。在传统开发中,我们需要某个对象时,就手动去new一个依赖的对象。而IOC意味着将对象的控制权交给容器,而不在是直接在对象的内部控制。如何理解IOC呢?理解好IOC的关键是要明确‘谁控制了谁,控制了什么?为何是反转?(有反转既有正转),哪些反面反转了。'谁控制了谁?控制了什么?:传统程序设计,我们直接在对象内部通过new来创建对象,是... 继续阅读 >
202010-08 简单了解Spring IoC相关概念原理 SpringIoc是Spring框架的基础,本文会简单的介绍下SpringIoc。SprongIoc即控制反转,它是一种通过描述(在java中可以是XML或注解)并通过第三方去产生或获取特定对象的方式。SpringIoC容器1、SpringIoC容器的设计SpringIoC容器的设计主要是基于BeanFactory和ApplicationContext这两个接口,其中ApplicationContext是BeanFactory的一个子接口。也就是说,BeanFactory是SpringIoC容器定义的最底层接口,而ApplicationContext... 继续阅读 >