Guice依赖注入的三种方式和injectMembers方法的使用

前端之家收集整理的这篇文章主要介绍了Guice依赖注入的三种方式和injectMembers方法的使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
package com.ilucky.guice.test4;

import com.google.inject.Guice;
import com.google.inject.Injector;

/** * v1.0:20161114 * 注解:依赖注入@Inject * 依赖注入的方式有三种:属性注入,构造方法注入和setter方法注入. * Injector.injectMembers方法的使用: * 即如果某个对象是new出来的,但是它里面的对象需要依赖需要注入,则可使用injectMembers方法. * @author IluckySi */
public class MainTest {

    public static void main(String[] args) {
        Injector injector = Guice.createInjector();
        Person person = injector.getInstance(Person.class);
        person.diplayInfo();

        System.out.println("-------------Injector.injectMembers------------------");
        Person2 person2 = injector.getInstance(Person2.class);
        person2.diplayInfo();

    }
}
/** Mobile:[Mobile: 988438434] Laptop:[Laptop: HP 323233232,$545034] Other:[Other: IluckySi] -------------Injector.injectMembers------------------ Laptop:[Laptop: HP 323233232,$545034] */
package com.ilucky.guice.test4;

import com.google.inject.Inject;

public class Person {

    private Other other;
    private Mobile mobile;
    @Inject
    private Laptop laptop;

    @Inject
    public Person(Mobile mobile) {
        this.mobile = mobile;
    }

    @Inject
    public void setOther(Other other) {
        this.other = other;
    }

    public void diplayInfo() {
        System.out.println("Mobile:" + mobile);
        System.out.println("Laptop:" + laptop);
        System.out.println("Other:" + other);
    }
}
package com.ilucky.guice.test4;

public class Other {

    private String name;

    public Other() {
        this.name = "IluckySi";
    }

    public String toString() {
        return "[Other: " + name + "]";
    }
}
package com.ilucky.guice.test4;

public class Mobile {

    private String number;

    public Mobile() {
        this.number = "988438434";
    }

    public String toString() {
        return "[Mobile: " + number + "]";
    }
}
package com.ilucky.guice.test4;

public class Laptop {

    private String model;
    private String price;

    public Laptop() {
        this.model = "HP 323233232";
        this.price = "$545034";
    }

    public String toString() {
        return "[Laptop: " + model + "," + price + "]";
    }
}
package com.ilucky.guice.test4;

import com.google.inject.Guice;
import com.google.inject.Injector;

public class Person2 {

    private Home h;

    public Person2() {
        h = new Home();
    }

    public void diplayInfo() {
        Injector injector = Guice.createInjector();
        injector.injectMembers(h);
        h.diplayInfo();
    }
}
package com.ilucky.guice.test4;

import com.google.inject.Inject;

public class Home {

    @Inject
    private Laptop laptop;

    public void diplayInfo() {
        System.out.println("Laptop:" + laptop);
    }
}
原文链接:https://www.f2er.com/javaschema/283087.html

猜你在找的设计模式相关文章