• 第6章 使用java Config 方式实现 SpringIoc


    目录

    6-1 java config-对象实例化

    6-2 JavaConfig-对象依赖注入

    6-1 java config-对象实例化

    使用java代码来替代传统的xml文件

     使用java类来替代原有的xml文件

     创建演示用类

     分别创建 dao service controller

     

     UserService依赖于UserDao

     

     controller依赖于service

     将这三个类在ioc容器初始化的过程中完成对象的创建以及关联

    因为不需要使用xml所以我们创建一个新的类config

     如何在ioc容器中放入bean呢?这里我们定义一些方法

     用new关键字完成对象的创建工作,为什么还要new 不要不他当成工程的一部分,把他当成配置文件

    创建应用程序的入口

     创建的实际实现类不一样了,基于注解配置的应用程序上下文,传入的是config这个类

     打印容器中的对象

     控制台中包含了两个重要对象,第一个是config,userDao这个beanId本质就是我们刚才利用bean所描述的方法名,后面的就是我们创建的对象

     写好

     重新运行

     可以看到按照前后的顺序依次进行了实例化,并且利用方法名对bean进行了管理

    6-2 JavaConfig-对象依赖注入

    config如何完成对象的依赖注入呢?

    如何完成Service依赖Dao Controller依赖Service

    对于这个关联关系我们都是要依托于set方法,但是要set的对象却来自ioc容器

    这里就需要设置bean所对应方法的参数了

    依赖于dao我们只需要在参数中增加依赖对象

     在执行UserService方法的时候发现要注入一个参数UserDao,而这个参数名和我们刚才bean的id是相同的,所以就会自动的把userDao创建的bean注入到这个参数中,然后执行下列代码

    将注入的dao放到set方法中,就完成了userService中userDao属性的设置

    同理

     为了看清执行过程,增加一系列的sout

     

     运行

     

     注入类型是按类型注入还是名称注入呢?

     如果是这种情况

    就会报错 

     

     解决方法

     就会为udao注入UserDao1

     java config和注解并不冲突

    为了能够良好的兼容其他注解java类增加

     

     在ioc容器启动时不但去加载了当前的这些对象,还会去指定路径下扫描其他的组件类

     在启动时也会对employeeDao实例化

     如果想对其进行注入该怎么办呢?设置私有属性,增加setget

    在方法上额外增加参数名,这样就会将employeeDao注入到参数中

     

    好处:在编译阶段就会发现问题

    坏处:毕竟是java的源代码,如果在发布以后,要调整必须要经过从新的编译

  • 相关阅读:
    javascript错误处理和调试工具
    案例分享|生产环境MQ集群一个非常诡异的消费延迟排查
    C语言实现三子棋小游戏(源码+教程)
    五、【视图】
    离线数仓(8):ODS层实现之导入流量日志
    Stream流终结操作方法、收集操作及Stream综合练习
    VUE前端工程化-2
    springcloud+vue+elementUI springcloud分布式架构网上购物商城-#毕业设计
    密码学与信息安全面试题及参考答案(2万字长文)
    万应案例精选|低代码+数字金融创新实践,云畅科技助力教培行业监管数字化
  • 原文地址:https://blog.csdn.net/lonelyneet/article/details/125885772