zoukankan      html  css  js  c++  java
  • spring03


    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常用
  • 相关阅读:
    js-artDialog文档说明
    T-SQL数据库函数
    强大的Jquery对象选择器
    学习正则表达式
    经典正则
    其他常用的正则表达式
    celery的使用
    django中间件
    AJAX
    Django Form表单组件
  • 原文地址:https://www.cnblogs.com/wuren-best/p/12450455.html
Copyright © 2011-2022 走看看