前端之家收集整理的这篇文章主要介绍了
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