小庆的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>
相关文章
相关标签/搜索