小慶的Spring學習筆記

該內容所有基於xml的配置java

1、建立Bean的方式

1.經過構造器建立bean對象,只須要在配置文件中聲明bean的id和class,就會默認使用bean的無參構造方法建立bean,bean會很好的被建立,這種方式最好用了。this

2.經過靜態工廠建立bean,這種方法容許咱們自定義返回的是什麼bean,須要在配置中制定靜態工廠方法,該方法返回一個bean對象。xml

 <bean id="student" class="com.yqg.bean.Student" factory-method="getInstance"></bean>
package com.yqg.bean;

/**
 * @author yqg
 * @date 2019/01/29
 */
public class Student {
    private String name;
    private Integer age;
    private String sex;
    public static Student getInstance(){
        return new Student();
    }
    public void speak (){
        System.out.println("I speak chinese ,teacher!");
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
}

  

3.使用實例工廠建立bean,須要在配置文件中聲明工廠類,而後聲明須要被工廠建立的bean,並指定工廠方法,這也是一種注入bean的方法。對象

  <bean id="factory" class="com.yqg.util.Factory"></bean>
  <bean id="student1" factory-bean="factory" factory-method="getStudent"></bean>
package com.yqg.util;

import com.yqg.bean.Student;

/**
 * @author yqg
 * @date 2019-01-30 09:22
 */
public class Factory {
    public Student getStudent(){
        System.out.println("。。。");
        return new Student();
    }
}

 

4.經過java註解聲明beanblog

get

2、依賴注入bean的方式和實現方法

1.經過setter方法注入,在bean中聲明須要被注入的屬性,並生成get和set方法,這是最經常使用的方式。class

 

2.經過構造器注入,在構造器中聲明須要注入的bean,其目的是爲了在建立bean時強制將一些必須的該bean依賴的bean同時建立。import

<!--經過構造方法注入bean-->
<bean id="school" class="com.yqg.bean.School"> <constructor-arg ref="teacher"></constructor-arg> </bean>
<!--經過set方法注入bean--> <bean id="teacher" class="com.yqg.bean.Teacher"> <property name="student" ref="student"></property> <property name="name" value="泰羅"></property> </bean>
<!--經過靜態工廠建立bean--> <bean id="student" class="com.yqg.bean.Student" factory-method="getInstance"></bean>

 

3.自動注入,使用自動注入策略可以將該bean在被須要的時候依據自動注入策略注入到其餘bean對象中。配置

自動注入有no、byType、byName、constructor、autodecet五種方式,no就是不使用自動注入策略,在須要的使用時經過構造或者set手工注入依賴,byType意味着該類在其餘bean中若是有相同類型的屬性,該bean將會被注入到類中,同理byName意味着在其餘bean中若是有屬性的名稱與該bean的id相同,就會被注入進去,constructor方式在構造器須要使用的時候以byType方式被注入,autodect是一種全能方案,若是有有參構造器使用constructor方式,不然使用byType自動裝配。date

注意,byType的生成策略不能有多個相同類型可是不一樣id的bean,也就是一個類型只能有一個bean,不能有多個對象。

<!--該bean使用byType裝配策略--><bean id="teacher" class="com.yqg.bean.Teacher" autowire="byType">
         <property name="name" value="泰羅"></property>
</bean>
相關文章
相關標籤/搜索