遇到一个使用xml文件进行bean注入,实现往一个bean中注入实例,逻辑如下:

     A,B两个类都继承同一个接口,不给A类添加注解,而是使用xml文件生成bean,xml文件将A类设为bean,并添加属性properties,properties中标明ref为B类、C类、D类等,B类需要添加注解,生成bean。A类中可以直接使用properties,是一个list,list中是ref的实例。此时,在A类中可以直接使用B类,不用注入,直接使用。

先跑A类,在A类中调用B类、C类、D类等。

class A{
   
    List<interfaceA> use;
    
    ...
}
@Component

class B implement interfaceA{...}

@Component

class C implement interfaceA{...}

@Component

class D implement interfaceA{...}
<bean id="beanname"
    class="com.path.class.A">
        <property name="use">
            <list>
                <ref bean="B"/>
                <ref bean="C"/>
                <ref bean="D"/>
            </list>
        </property>
    </bean>

使用bean的页面上

class C {
    @Autowired(name = "beanname")
    private A a;
    ...
}

properties相当于将一个类注入进去当成是外部bean的属性。ref相当于引用,注入bean。

ref是注入实例,name是注入值。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐