春の学習_3種類の依存関係注入オブジェクト属性_さまざまな種類の注入_特別な値注入_自動アセンブリ_アノテーションがiocコンテナーに追加されました

1. 3種類の依存関係注入オブジェクトプロパティ

セット注入コンストラクター注入名前空間注入

<?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:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="UserDao" class="com.itheima.ioc.UserDaoImpl"/>
    <bean id="teacher" class="com.itheima.entity.Teacher">
        <!--<property name="name" value="张老师"></property>-->
        <!--<property name="age" value="13"></property>-->
        <constructor-arg  value="张老师"></constructor-arg>
        <constructor-arg  value="13"></constructor-arg>
    </bean>
    <bean id="course" class="com.itheima.entity.Course" p:courseHour="2" p:courseName="数学" p:teacher-ref="teacher">
        <!--&lt;!&ndash;相当于person.setId(1);&ndash;&gt;-->
        <!--<property name="courseHour" value="2"></property>-->
        <!--<property name="courseName" value="数学"></property>-->
        <!--&lt;!&ndash;非简单类型用ref&ndash;&gt;-->
        <!--<property name="teacher" ref="teacher"></property>-->
    </bean>
</beans>

2.さまざまなタイプの注入

新しいクラス:AllCollectionType.java

package com.itheima.entity;
import java.util.*;

public class AllCollectionType {
    
    
    private List<String> list;
    private String[] array;
    private Set<String> set;
    private Map<String, String> map;
    private Properties props;

    @Override
    public String toString() {
    
    
        return "AllCollectionType{" +
                "list=" + list +
                ", array=" + Arrays.toString(array) +
                ", set=" + set +
                ", map=" + map +
                ", props=" + props +
                '}';
    }

    public AllCollectionType(List<String> list, String[] array, Set<String> set, Map<String, String> map, Properties props) {
    
    
        this.list = list;
        this.array = array;
        this.set = set;
        this.map = map;
        this.props = props;
    }
    public AllCollectionType() {
    
    
    }

    public List<String> getList() {
    
    
        return list;
    }

    public void setList(List<String> list) {
    
    
        this.list = list;
    }

    public String[] getArray() {
    
    
        return array;
    }

    public void setArray(String[] array) {
    
    
        this.array = array;
    }

    public Set<String> getSet() {
    
    
        return set;
    }

    public void setSet(Set<String> set) {
    
    
        this.set = set;
    }

    public Map<String, String> getMap() {
    
    
        return map;
    }

    public void setMap(Map<String, String> map) {
    
    
        this.map = map;
    }

    public Properties getProps() {
    
    
        return props;
    }

    public void setProps(Properties props) {
    
    
        this.props = props;
    }
}

リスト、配列、セット、マップ、およびプロパティタイプの注入。

    <bean id="collectionDemo" class="com.itheima.entity.AllCollectionType">
        <property name="list">
            <list>
                <value>list足球</value>
                <value>list篮球</value>
                <value>list乒乓球</value>
            </list>
        </property>
        <property name="array">
            <array>
                <value>数组足球</value>
                <value>数组篮球</value>
                <value>数组乒乓球</value>
            </array>
        </property>
        <property name="set">
            <set>
                <value>map足球</value>
                <value>map篮球</value>
                <value>map乒乓球</value>
            </set>
        </property>
        <property name="map">
            <map>
                <entry>
                    <key><value>foot</value></key>
                    <value>map足球</value>
                </entry>
                <entry>
                    <key><value>bask</value></key>
                    <value>mao篮球</value>
                </entry>
                <entry>
                    <key><value>pingpang</value></key>
                    <value>map乒乓球</value>
                </entry>
            </map>
        </property>
        <property name="props">
            <props>
                <prop key="foot">prop足球</prop>
                <prop key="bask">prop篮球</prop>
                <prop key="pingpang">prop乒乓球</prop>
            </props>
        </property>
    </bean>

3.特別な値の注入

<value/>和<value></value>的区别

ここに画像の説明を挿入
一般的に使用される特殊文字の引用:
ここに画像の説明を挿入

赋空值直接写<null>标签

4.自動アセンブリ(参照参照タイプにのみ適しています)

規約は構成よりも優れており、単純なタイプインジェクションには適していません
。IDに基づく自動アセンブリ(autowire = "byName")に
基づく自動アセンブリ。使用できるのは1つだけです。タイプ(autowire = "byType")
コンストラクタに基づく自動アセンブリ(autowire = "コンストラクタ")

<bean id="teacher" class="com.itheima.entity.Teacher">
  	<!--<property name="name" value="张老师"></property>-->
    <!--<property name="age" value="13"></property>-->
    <constructor-arg  value="张老师"></constructor-arg>
    <constructor-arg  value="13"></constructor-arg>
</bean>
<bean id="course" class="com.itheima.entity.Course" autowire="byName">
    <!--<bean id="course" class="com.itheima.entity.Course" p:courseHour="2" p:courseName="数学" p:teacher-ref="teacher">-->
    <!--相当于person.setId(1);-->
    <property name="courseHour" value="2"></property>
    <property name="courseName" value="数学"></property>
    <!--非简单类型用ref-->
    <!--<property name="teacher" ref="teacher"></property>-->
</bean>

グローバル自動組立

ローカル自動組立
ここに画像の説明を挿入

5. iocコンテナーに注釈を追加する

新しいdaoクラスを作成します。StudentDaoImpl.java@
Component()は、次のように
調整できる一般的なアノテーションです。daoレイヤーアノテーション:@Repository
サービスレイヤーアノテーション:@Service
コントローラーレイヤーアノテーション:@ControllerConfiguration
ここに画像の説明を挿入
スキャナー
ここに画像の説明を挿入

心が花や木のように

おすすめ

転載: blog.csdn.net/nbcsdn/article/details/98960423