spring学习笔记(三)——Bean的管理及自动装配

通过xml文件配置

  • 根据类型自动装配

如果一个bean的数据类型和其他bean属性的数据类型相同,可以自动兼容装配它,过程如下:
1.存在如下两个bean:dao和service

public class Dao{
      private Dao dao;
      ........
}
public class Service{
      private Service service;
      ........
}

通常情况下,我们使用明确装配,即为每一个bean单独创建配置并注入属性。当启用根据类型装配的时候,可以保留一个bean的属性未设置,spring会根据相同的数据类型自动装配它。

<bean id="dao" class="club.guyanliang.Dao" autowire="byType" />
    
    <bean id="service" class="club.guyanliang.Service" >
        <property name="skill" value="Invisible" />
    </bean>

需要注意的是,在根据类型自动装配的情况下,必须保证Bean只有一个唯一的数据类型声明,否则会报错UnsatisfiedDependencyException

  • 根据名字自动装配

还是以上Dao和Service两个bean为例:

    <bean id="dao" class="Dao"/>

    <bean id="service" class="Service" autowire="byName"/>

通过名字装配,无需再声明属性标记,spring会在service中寻找是否存在dao这个属性,再去IOC容器中寻找dao对象,如果有的话就装配。

使用注解自动装配

  • @Autowired

通常应用于一下场景:

  • 构造函数
  • 成员变量
  • Setter方法
  • 普通方法

要启用Autowired注解,首先我们要引入约束以及开启注解扫描

<beans 
    //...
    xmlns:context="http://www.springframework.org/schema/context"
    //...
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-2.5.xsd">
    //...

    <context:annotation-config />
    //...
</beans>

具体实现场景就不在此赘述,创建对象还有三个注解:

  • @Controller
  • @Service
  • @Repository
    目前这三个注解和autowired的作用时一样的,另外使用自动装配时,如果在应用上下文中,对应类型的Bean有且只有一个,则会自动装配到该属性上。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.1 spring IoC容器和beans的简介 Spring 框架的最核心基础的功能是IoC(控制反转)容器,...
    simoscode阅读 6,753评论 2 22
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • 1.1 Spring IoC容器和bean简介 本章介绍了Spring Framework实现的控制反转(IoC)...
    起名真是难阅读 2,621评论 0 8
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,972评论 6 342
  • 一、产品行业概况获取信息渠道:1)艾瑞、易观国际等数据网站的行业分析报告等2)百度指数、alexa.com、Goo...
    cinla阅读 3,401评论 0 1