ITPub博客

首页 > IT基础架构 > 服务器存储 > 手写Spring ioc 框架,狠狠的“Spring 源码

手写Spring ioc 框架,狠狠的“Spring 源码

原创 服务器存储 作者:wxt020 时间:2020-10-31 18:15:56 1 删除 编辑

估计很多朋友使用 spring 很长时间,对于 spring 使用非常频繁,实际上对于源码一直没有静下心来学习过。

你是不是有这样的感觉呢?

但是 spring 源码存在一个问题,那就是过于抽象,导致学习起来成本上升。所以本文由浅入深,只实现 spring 的核心功能,便于自己和他人学习 spring 的核心原理。

spring 的核心

Spring 的核心就是 spring-beans,后面的一切 spring-boot,spring-cloud 都是建立在这个地基之上。
当别人问你 spring 的时候,希望你可以谈谈自己对于 spring ioc 自己更深层的见解,而不是网上人云亦云的几句话。

什么是 IOC

控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。
其中最常见的方式叫做依赖注入(Dependency Injection,简称DI)。
通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用传递给它。网址:www.bzcdn.cn
也可以说,依赖被注入到对象中。

为什么需要 IOC

IoC 是解耦的一种方法。
我们知道Java 是一门面向对象的语言,在 Java 中 Everything is Object,我们的程序就是由若干对象组成的。
当我们的项目越来越大,合作的开发者越来越多的时候,我们的类就会越来越多,类与类之间的引用就会成指数级的增长。

快速开始

maven 引入

<dependency>
    <groupId>com.github.houbb</groupId>
    <artifactId>ioc</artifactId>
    <version>0.1.11</version></dependency>123456

测试准备

全部测试代码,见 test 模块。

  • Apple.java
public class Apple {
    public void color() {
        System.out.println("Apple color: red. ");
    }}1234567
  • apple.json

类似于 xml 的配置,我们暂时使用 json 进行配置验证。

[{"name":"apple","className":"com.github.houbb.ioc.test.service.Apple"}]1234

执行测试.

  • 测试
BeanFactory beanFactory = new JsonApplicationContext("apple.json");Apple apple = (Apple) beanFactory.getBean("apple");apple.color();123
  • 日志
Apple color: red.


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69984164/viewspace-2731396/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
新零售拼购商业模式系统开发找许生微/电17340689890,我们能定制开发:我们了解市场上的所有的热门案例、热门模式,不单单是单一的一种模式,软件等多种商业模式系统,我们都能为您定制开发,支持定制开发。

注册时间:2020-09-19

  • 博文量
    13
  • 访问量
    2833