依赖注入而不是静态块

时间:2019-05-15 07:55:40

标签: java spring spring-boot

我想知道如何使用DI代替静态块

private static String p1;

private static String p2;

private static String p3;

private static interface i1;

static {

Interface1  i2 =    new Class1  ( new Class2 ( p1 ,  p2 ) );

Class2      c1 =    new Class2  ( p3 , parameter);

i1         = //some statement

}

1 个答案:

答案 0 :(得分:0)

要在Spring中使用DI,您需要在要注入的类之上使用@Component或@Service,例如:

@Component
class Class1 implements Interface1 {
...
}

@Component
class Class2 {
 ...
}

现在在要注入bean的类中这样做:

@Component
class ClassOfInjection {
 @Autowired
private Class1 c1;

@Autowired
private Class2 c2;

}

您可以找到更多详细信息here