Spring学习笔记6 Bean的实例化方式

Spring学习笔记5 GoF之工厂模式_biubiubiu0706的博客-CSDN博客

Spring为Bean提供了多种实例化方式,通常包括4中(目的:更加灵活)

1.通过构造方法实例化

2.通过简单工厂模式实例化

3.通过factory-bean实例化

4.通过FactoryBean接口实例化

新建模块 spring-005

依赖



    org.springframework
    spring-context
    6.0.10



    junit
    junit
    4.13.2
    test




    org.apache.logging.log4j
    log4j-core
    2.19.0


    org.apache.logging.log4j
    log4j-slf4j-impl
    2.19.0

Spring默认的日志是log4j2,引入依赖,在resource添加log4j2.xml(文件名固定)便可以使用日志



    
        
        
            
        
    
    
        
        
            
            
        
    

Spring学习笔记6 Bean的实例化方式_第1张图片

Spring学习笔记6 Bean的实例化方式_第2张图片

Spring学习笔记6 Bean的实例化方式_第3张图片

1.通过构造方法实例化

Spring学习笔记6 Bean的实例化方式_第4张图片

Spring学习笔记6 Bean的实例化方式_第5张图片

2.通过简单工厂模式实例化(又称静态工厂方法实例化)

Spring学习笔记6 Bean的实例化方式_第6张图片

Spring学习笔记6 Bean的实例化方式_第7张图片

Spring学习笔记6 Bean的实例化方式_第8张图片

Spring学习笔记6 Bean的实例化方式_第9张图片

3.通过factory-bean实例化(其实这种方式是通过工厂方法模式)

简单工厂模式(静态工厂方法)是通过一个静态方法实例化所有产品

工厂方法模式是通过多个工厂具体实例化对应产品-->工厂里面是实例方法

Spring学习笔记6 Bean的实例化方式_第10张图片

Spring学习笔记6 Bean的实例化方式_第11张图片

Spring学习笔记6 Bean的实例化方式_第12张图片

Spring学习笔记6 Bean的实例化方式_第13张图片

4.通过FactoryBean接口实例化

在第三种方式中,factory-bean是我们自定义的,factory-method也是我们自定义的

在Spring中,当你编写的类直接实现FactoryBean接口之后,fantory-bean就不需要指定了

factory-method也不需要指定了.

factory-bean会自动指向实现FactoryBean接口的类,factory-method会自动指向getObject()方法。

也就是说上面的GunFactory实际上就是一个FactoryBean

Spring学习笔记6 Bean的实例化方式_第14张图片

Spring学习笔记6 Bean的实例化方式_第15张图片

Spring学习笔记6 Bean的实例化方式_第16张图片Spring学习笔记6 Bean的实例化方式_第17张图片

FactoryBean和BeanFactory的区别

面试题:

BeanFactory是SpringIOC容器的顶级接口,在Spring的IOC容器中,BeanFactory是工厂

FactoryBean:是辅助Spring实例化Bean对象的一个Bean(工厂Bean)

Spring中Bean可以分为两类

1.普通Bean

2.工厂Bean(工厂Bean也是一种Bean,只不过这种Bean比较特殊,它可以辅助Spring实例化其他Bean)

注入自定义Date

Date在Spring中被当作简单类型,简单类型在注入的时候可以直接使用value属性赋值.但是

用value属性赋值的化,对日期格式比较严格.必须是这种格式  Mon Oct 10 14:30:26 CST 2022

其他格式不会被识别.

Spring学习笔记6 Bean的实例化方式_第18张图片

Spring学习笔记6 Bean的实例化方式_第19张图片

Spring学习笔记6 Bean的实例化方式_第20张图片

问题是一直这种格式,写代码会很费劲

当非简单类型   这种只能获得系统当前时间

Spring学习笔记6 Bean的实例化方式_第21张图片

Spring学习笔记6 Bean的实例化方式_第22张图片

但是这样时间只是系统当前时间

使用FactoryBean

Spring学习笔记6 Bean的实例化方式_第23张图片

Spring学习笔记6 Bean的实例化方式_第24张图片Spring学习笔记6 Bean的实例化方式_第25张图片

你可能感兴趣的:(spring,学习,笔记)