• 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(文件名固定)便可以使用日志

    
    
        
            
            
                
            
        
        
            
            
                
                
            
        
    

    1.通过构造方法实例化

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

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

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

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

    4.通过FactoryBean接口实例化

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

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

    factory-method也不需要指定了.

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

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

    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

    其他格式不会被识别.

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

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

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

    使用FactoryBean

  • 相关阅读:
    网络库OKHttp(1)流程+拦截器
    《canvas》之第7章 变形操作
    前端开发学习指南
    Redis优化之持久化
    java毕业设计儿童教育系统Mybatis+系统+数据库+调试部署
    1045 Favorite Color Stripe
    全面解析‘msvcp140.dll丢失的解决方法’这个问题
    【机器学习7】优化算法
    win7连接打印机0x0000011b错误的解决办法
    从数据库发展史看数据库未来技术趋势
  • 原文地址:https://blog.csdn.net/tiantiantbtb/article/details/133223331