码迷,mamicode.com
首页 > 编程语言 > 详细

spring03

时间:2020-03-09 19:35:33      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:自动化   autowire   wan   more   称多   etc   ret   work   beans   


title: spring03
date: 2020-03-09 19:06:11
tags:自动装配(autowired)


本部分是自动装配的内容。

1、概述

摘抄自秦老师

  • 自动装配是使用spring满足bean依赖的一种方法
  • spring会在应用上下文中为某个bean寻找其依赖的bean。

Spring中bean有三种装配机制,分别是:

  1. 在xml中显式配置;
  2. 在java中显式配置;
  3. 隐式的bean发现机制和自动装配。

这里我们主要讲第三种:自动化的装配bean。

Spring的自动装配需要从两个角度来实现,或者说是两个操作:

  1. 组件扫描(component scanning):spring会自动发现应用上下文中所创建的bean;
  2. 自动装配(autowiring):spring自动满足bean之间的依赖,也就是我们说的IoC/DI;

2、环境

  • People

    package com.nevesettle.pojo;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Qualifier;
    
    public class People {
        private String name;
        @Autowired
        @Qualifier("cat321")
        private Cat cat;
        @Autowired
        private Dog dog;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Cat getCat() {
            return cat;
        }
    
        public void setCat(Cat cat) {
            this.cat = cat;
        }
    
        public Dog getDog() {
            return dog;
        }
    
        public void setDog(Dog dog) {
            this.dog = dog;
        }
    }
  • Cat

    package com.nevesettle.pojo;
    
    public class Cat {
        public void shout(){
            System.out.println("miao..");
        }
    }
  • Dog

    package com.nevesettle.pojo;
    
    public class Dog {
        public void shout(){
            System.out.println("wang..");
        }
    }

2、配置

只需要在xml中注册相应的bean,然后开启自动装配即可。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd">
    
    <!--此处是开启自动装配的配置-->
    <context:annotation-config/>

    <bean id="cat321" class="com.nevesettle.pojo.Cat"/>
    <bean id="cat323211" class="com.nevesettle.pojo.Cat"/>
    <bean id="dog" class="com.nevesettle.pojo.Dog"/>
    <bean id="people" class="com.nevesettle.pojo.People"/>

</beans>

3、笔记

@Autowired

  • 自动装配
  • 首先校验的是bean的类型, 如果类型存在则匹配,如果存在多个,则校验名称
  • 当名称多个时,可以配合 @Qualifier("xxx")来使用

@Resource

  • java自带的自动装配
  • 先校验的是名称,其次是校验类型, 都不存在时报错,没有@Autowired常用

spring03

标签:自动化   autowire   wan   more   称多   etc   ret   work   beans   

原文地址:https://www.cnblogs.com/wuren-best/p/12450455.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!