Les annotations Autowired utilisées lors de la DI au printemps sont faciles et pratiques à utiliser! Cependant, il existe plusieurs façons de l'utiliser, et je ne sais pas laquelle utiliser. Je l'utilise souvent dans les constructeurs, mais j'aimerais savoir comment cela s'est passé.
Examen approximatif. Il existe trois façons de définir Autowired.
Il s'agit d'un type de méthode de déclaration qui est écrit directement dans le champ.
public class A {
@Autowired
private B b;
}
C'est le type de méthode de déclaration à écrire dans le constructeur.
public class A {
private final B b;
@Autowired
public A(B b) {
this.b = b;
}
}
Il s'agit d'un type de méthode de déclaration à écrire dans le setter.
public class A {
private B b;
@Autowired
public void setB(B b) {
this.b = b;
}
}
Vous pouvez utiliser final pour le terrain et garantir l'immuabilité. La raison en est excellente. En faisant cela, il est sûr car il ne sera pas réécrit au milieu du traitement. (Même si vous ne comprenez pas la maintenance, vous obtiendrez une erreur de compilation lors de la réécriture finale. Vraiment) De plus, c'est formidable que vous puissiez faire un nouveau test. Personnellement, je suis heureux de pouvoir choisir entre DI dans le test ou simplement nouveau.
En premier lieu, il n'est pas recommandé par le fonctionnaire. (Sûr) Il ne servirait à rien de l'utiliser.
Je ne fais pas confiance à la source de l'échantillon pour utiliser l'injection de champ. Je pense personnellement que ce n'est pas bon. (C'est vraiment facile)
Utilisons l'injection de constructeur sans nous lasser de toute source.
Recommended Posts