Spring基于注解的配置之@Autowired

Posted lemon-le

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring基于注解的配置之@Autowired相关的知识,希望对你有一定的参考价值。

学习地址:https://www.w3cschool.cn/wkspring/rw2h1mmj.html

 

@Autowired注释

@Autowired注释对在哪里和如何完成自动连接提供了更多的细微控制。

 

Setter方法中的@Autowired

技术分享图片

 

SpellChecker.java:

package com.lee.autowired;

public class SpellChecker {
    public SpellChecker() {
        System.out.println("Inside SpellChecker constructor");
    }
    
    public void checkSpelling() {
        System.out.println("Inside checkSpelling");
    }

}

 

TextEditor.java:

package com.lee.autowired;

import org.springframework.beans.factory.annotation.Autowired;

public class TextEditor {
    private SpellChecker spellChecker;

    public SpellChecker getSpellChecker() {
        return spellChecker;
    }

    @Autowired
    public void setSpellChecker(SpellChecker spellChecker) {
        this.spellChecker = spellChecker;
    }

    public void spellCheck() {
        spellChecker.checkSpelling();
    }

}

 

MainApp.java:

 

package com.lee.autowired;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MainApp {

    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("Beans2.xml");
        TextEditor td = (TextEditor) context.getBean("textEditor");
        td.spellCheck();

    }

}

 

 

Beans2.xml:

<?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
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <context:annotation-config />

    <bean id="textEditor" class="com.lee.autowired.TextEditor"></bean>    
    <bean id="spell" class="com.lee.autowired.SpellChecker"></bean>

</beans>

 

 

属性中的@Autowired属性

只有TextEditor不一样:

package com.lee.autowired2;

import org.springframework.beans.factory.annotation.Autowired;

public class TextEditor {
    @Autowired
    private SpellChecker spellChecker;

    public TextEditor() {
        System.out.println("Inside TextEditor constructor");
    }

    public SpellChecker getSpellChecker() {
        return spellChecker;
    }


    public void spellCheck() {
        spellChecker.checkSpelling();
    }
}

 

构造函数中的@Autowired属性

package com.lee.autowired2;

import org.springframework.beans.factory.annotation.Autowired;

public class TextEditor {
    
    private SpellChecker spellChecker;
    @Autowired
    public TextEditor(SpellChecker spellChecker) {
        this.spellChecker=spellChecker;
        System.out.println("Inside TextEditor constructor");
    }

    public void spellCheck() {
        spellChecker.checkSpelling();
    }
}

 

以上是关于Spring基于注解的配置之@Autowired的主要内容,如果未能解决你的问题,请参考以下文章

Spring 注解之@Autowired、@Qualifer以及@Resource的区别

Spring之IOC-注解方式

Spring(七)

Spring 基于注解的配置 -实验介绍

Spring中@Autowired注解@Resource注解的区别

spring装配之 @Autowired 和 @Resource 注解的区别