• 3、IoC 之Bean概述


    3、IoC 之Bean概述

    3.1、Bean 命名

    Bean 在容器内被封装成 BeanDefinition 类,具体内容可访问 官方文档 进行深入了解

    bean命名约定为小驼峰式(如 accountManager、accountService、userDao、loginController)

    通过类路径中的组件扫描,基本上采用简单的类名并将其初始字符转换为小写。但是,特殊情况下,当有多个字符并且第一个和第二个字符都是大写时,原始大小写将被保留。这些规则与java.beans.Introspector.decapitalize(Spring在这里使用的规则)所定义的规则相同。

    3.2、Bean 实例化

    • 通常,容器通过反射调用bean的构造器来实例化,等效于 new
    • 在不太常见的情况下,容器调用类上的工厂方法来创建 Bean。从调用工厂方法返回的对象类型可以是同一类,也可以是完全另一个类

    ① 构造函数进行实例化

    Bean类:

    package hom.wang.vo;
    public class ExampleBean {
        // ...
    }
    
    • 1
    • 2
    • 3
    • 4

    xml 定义Bean:

    <beans>
        
        <bean id="exampleBean" class="hom.wang.vo.ExampleBean"/>
    beans>
    
    • 1
    • 2
    • 3
    • 4

    ② 静态工厂方法进行实例化

    通过 factory-method 调用静态工厂方法,返回一个 Bean 实例。

    Bean类:

    package hom.wang.vo;
    public class ExampleBean {
        
        private static ExampleBean exampleBean = new ExampleBean();
        
        public static ExampleBean createInstance(){
            return exampleBean;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    xml 定义Bean:

    <beans>
        
        <bean id="exampleBean" class="hom.wang.vo.ExampleBean" factory-method="createInstance"/>
    beans>
    
    • 1
    • 2
    • 3
    • 4

    ③ 实例工厂方法实例化

    与通过静态工厂方法进行实例化类似,实例工厂方法实例化就是bean-B通过 factory-bean 指定bean-A,再通过 factory-method 指定bean-A的静态工厂方法返回bean-B的实例

    Bean类:

    package hom.wang.vo;
    public class BeanA {
        
        private static BeanB beanB = new BeanB();
        
        public static BeanB createBeanBInstance(){
            return beanB;
        }
    }
    public class BeanB {
        // ...
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    xml 定义Bean:

    <beans>
        
        <bean id="beanA" class="hom.wang.vo.beanA"/>
        
        
        <bean id="beanB"
        	factory-bean="beanA"
        	factory-method="createBeanBInstance"/>
    beans>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    这种方法表明工厂bean本身可以通过依赖注入(DI)进行管理和配置。

  • 相关阅读:
    Java Applet基础
    SpringCloud gateway自定义请求的 httpClient
    焱融科技为国家重点实验室打造海量高性能存储
    linux内核启动阶段对设备树的解析
    TCP为什么是可靠的(怎么保证有效传输的)?
    NEW:Devart dotConnect ADO.NET
    获取推荐商品列表(淘宝)
    TCP协议之《套接口热迁移REPAIR模式》
    【重识云原生】第四章云网络4.7.2节——virtio网络半虚拟化简介
    【内网穿透】远程访问RabbitMQ服务
  • 原文地址:https://blog.csdn.net/qq_30769437/article/details/126744784