spring中DI依赖注入的两种方式set方法注入(property )、构造器注入(constructor-arg)

文章目录

  • 依赖注入:
  • spring依赖注入的两种方式
    • 第一种set方法注入(property标签)
    • 第二种构造器注入


依赖注入:

类有属性,创建过程中向属性赋值

1.创建实体类:

public class Book {

    private  String  name;

    private String  auth;
//set
    public void setName(String name) {
        this.name = name;
    }

    public void setAuth(String auth) {
        this.auth = auth;
    }

    
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", auth='" + auth + '\'' +
                '}';
    }

    //构造器
    public Book(String name, String auth) {
        this.name = name;
        this.auth = auth;
    }

    public Book() {
    }

2.测试:

 public static void main(String[] args) {

        //传统方式---原生态
//set注入属性值
        Book book = new Book();
        book.setAuth("c++");

        book.setName("name");
        //构造器注入属性值

        Book book1 = new Book("java", "李白");
    }
}

原生态的方式进行set和构造器的赋值方式在new创建对象时进行属性的赋值

spring依赖注入的两种方式

第一种set方法注入(property标签)

实体类同上
3.spring配置文件bean.xml

//bean创建对象
 <!--set方法注入:赋值-->
    <bean id="book" class="com.guigu.dl.Book">
        <property name="name" value="java"></property>
        <property name="auth" value="spring注入方式set方法注入"></property>
    </bean>
    <!--set方法注入:赋值-->

4.测试:

  ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
        //根据id获取bean对象
        Book book =(Book) context.getBean("book");
        System.out.println("book = " + book);
        //根据id和类型获取bean对象

        Book book1 = context.getBean("book", Book.class);
        System.out.println("book1 = " + book1);

第二种构造器注入

1.创建类。定义属性。生成构造方法(constructor-arg标签)
bean.xml

<!--构造方法注入-->
    <bean id="bookCon" class="com.guigu.dl.Book">
        <constructor-arg name="name" value="mysqlocp"></constructor-arg>
        <constructor-arg name="auth" value="oracle"></constructor-arg>
        <!--构造方法注入-->
    </bean>

测试:

//根据id获取bean对象

        Book bookCon = (Book)context.getBean("bookCon");
        System.out.println("bookCon = " + bookCon);

你可能感兴趣的:(spring,spring,java,后端)