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:

扫描二维码关注公众号,回复: 2179450 查看本文章
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();
    }
}

猜你喜欢

转载自www.cnblogs.com/lemon-le/p/9317091.html