zoukankan      html  css  js  c++  java
  • Spring02

    CAP5章节  @Conditional条件注册bean

    1,IOC容器注册bean, 当操作系统为WINDOWS,注册Lison实例; 当操作系统为LINUX, 注册James实例,此时要用得@Conditional注解进行定制化条件选择注册bean;

    2,新建Cap7MainConfig1.java,

     

    新建WinCondition.java类做为条件类, 同时必须得实现spring提供的Confition接口

     

    新建 LinuxCondition条件类, 用来处理操作系统为LINUXbean注册

     

    2,    IOC容器里的所有person实例名打印出来(为了看效果,刚开始在配置类可以不加@Conditinal)

     @Test

     public void test01()

     

    3,    新建test02(), 测试@Conditional  条件加载beanIOC容器(加上@Conditinal)

     

    当引入@Conditional, 容器可以选择性的注册bean.

    CAP6章节  @Import注册bean

    同样按流程先新建Cap8MainConfig1.java配置类

    新建Dog.ava----->public class Dog {}

    新建Cat.java---->public class Cat{}

    按以下1,2,3箭头步骤分别导入多个类,使用import将dog, cat的bean注册到容器中,并测试打印,看容器中是否已加载此类

     

    分别使用 

    @Import(Dog.class)   

    @Import({Dog.class,Cat.class})

    ImportSelector可以批量导入组件的全类名数组,自定义逻辑返回需要导入的组件JamesImportSelector.java

    @Import({Dog.class,Cat.class,JamesImportSelector.class})

    新建JamesImportSelector, 新建Fish  Tiger(与建CatDog一样)

     

    怎么测呢?

     

    当然,除了以上,还可以通过ImportBeanDefinitionRegistrar自定义注册,向容器中注册bean;

    @Import({Dog.class,Cat.class,JamesImportSelector.class,JamesImportBeanDefinitionRegistrar.class})

    新建JamesImportBeanDefinitionRegistrar自定义注册类,实现bean注册

     

    当然除了以上加载方式,还可以通过实现FactoryBean接口方式来加载bean

    * 使用spring提供的FactoryBean(工厂bean)

     *   beans.factory.FatoryBean源码跟进去

     *     容器调用getObject()返回对象,把对象放到容器中;

     *     getObjectType()返回对象类型

     *     isSingleton()是否单例进行控制

     *     新建JamesFactoryBean实现FactoryBean

     *     在config里新建jamesFactoryBean()方法

     *     写完test03测试用例后:

     *       a,默认获取到的是工厂bean调用getObject创建的对象

     *       b,要获取工厂Bean本身,需要在id前加个  &jamesFactoryBean

     */

     

    把自定义的JamesImportBeanDefinitionRegistrar加入配置类进行测试

     

  • 相关阅读:
    SourceInsight3.5中文乱码问题解决
    执行脚本程序出现gzip:stdin:not in gzip format的解决方法
    libjpeg实现arm板上yuv420p转jpg
    yuv420p转jpg linux(纯C语言实现)
    linux下交叉编译libjpeg库并移植到开发板上
    关于arm板上ifup eth0出现问题的解决方法
    关于windows与ubuntu两台主机传输文件的一个小软件
    数据结构之查找算法篇
    利用paramiko将服务器的文件批量匹配并下载到本地
    最近写了中药系统药理学数据库与分析平台的爬虫,可以交流 https://tcmspw.com/index.php
  • 原文地址:https://www.cnblogs.com/keiyoumi520/p/14617388.html
Copyright © 2011-2022 走看看