springIOC声明Bean的方式

电玩女神 2023-07-19 05:53 82阅读 0赞
  • 属性声明





  • 构造器声明





  • P名称空间

  • Bean之间的依赖引用





  • 内部bean







    1. </property>

  • 集合属性注入























    root
    123


  • util名称空间

    1. <ref bean="book"/>
    2. <ref bean="book2"/>
    3. <ref bean="book3"/>

  • 级联属性赋值




  • factoryBean工厂

    //框架提供了FactoryBean接口,支持项目功能扩展.
    //框架利用FactoryBean接口的实现类,来集成第三方框架.
    public class MyBookFactoryBean implements FactoryBean {

    1. @Override
    2. public Book getObject() throws Exception {
    3. return new Book(111,"XXX",33.3);
    4. }
    5. @Override
    6. public Class<?> getObjectType() {
    7. return Book.class;
    8. }
    9. @Override
    10. public boolean isSingleton() {
    11. return true; //true表示单例,false表示多例
    12. }

    }

  1. <bean id="book8" class="com.atguigu.spring.factory.MyBookFactoryBean"></bean>
  • 模板Bean声明






  • Bean的依赖



  • Bean的作用域

  • Bean对象的初始化和销毁方法

  • properties文件









  • 基于注解的声明

    1. <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    2. <context:include-filter type="assignable" expression="com.atguigu.component.service.UserService"/>

    1. <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    2. <context:exclude-filter type="assignable" expression="com.atguigu.component.service.UserService"/>

  • Autowired注解特别说明

/*

首先根据byType进行装配:

如果只查找到一个,就直接装配;

如果查找到多个,报错:

Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException:

No qualifying bean of type [com.atguigu.component.service.UserService] is defined:

expected single matching bean but found 2: userServiceImpl,userServiceImpl2

如果多个都希望被注解:

可以采用数组或集合(泛型)进行装配.

根据byType无法确定某一个Bean进行装配时,再根据byName进行装配.

如果根据byType查找到的多个Bean对象的id名称与当前对象的属性名称:

一致,则装配这个一致名称的Bean对象;

不一致,可以借助于@Qualifier来指定其中的某个Bean进行装配.

如果指定的名称在,则装配;

如果指定的名称不在,报错;

如果根据byName也无法装配,采用required=false放弃装配.

*/

@Autowired(required=false)

@Qualifier(value=”userServiceImpl3”)

另外如果一个接口有多个实现类时,在使用autowired注入时,可以通过泛型的方式去制定需要注入的具体实现类

发表评论

表情:
评论列表 (有 0 条评论,82人围观)

还没有评论,来说两句吧...

相关阅读

    相关 IOC九种bean声明方式

    Spring简介 Spring不是服务于开发web项目的功能,或业务。而是服务于项目的开发,方便各层间的解耦调用,方便对类的批量管理,是提高软件开发效率,降低后期维护成本