Haricots à câblage automatique de printemps

Haricots à câblage automatique à ressort

Dans Spring Framework, vous pouvez câbler automatiquement les beans avec la fonction de câblage automatique. Pour l'activer, définissez simplement l'attribut «autowire» dans .

    

Au printemps, 5 modes de câblage automatique sont pris en charge.

  • non - Par défaut, pas de câblage automatique, définissez-le manuellement via l'attribut "ref"

  • byName - Câblage automatique par nom de propriété. Si le nom d'un bean est identique à celui d'une autre propriété de bean, câblez-le automatiquement.

  • byType - Câblage automatique par type de données de propriété. Si le type de données d'un bean est compatible avec le type de données d'une autre propriété de bean, câblez-le automatiquement.

  • constructeur - mode byType dans l'argument constructeur.

  • autodetect - Si un constructeur par défaut est trouvé, utilisez «autowired by constructor»; Sinon, utilisez «autowire by type».

Exemples

Un objet Client et Personne pour la démonstration de câblage automatique.

package com.example.common;

public class Customer
{
    private Person person;

    public Customer(Person person) {
        this.person = person;
    }

    public void setPerson(Person person) {
        this.person = person;
    }
    //...
}
package com.example.common;

public class Person
{
    //...
}

1. Câblage automatique «non»

C'est le mode par défaut, vous devez câbler votre bean via l'attribut 'ref'.

    
                  
    

    

2. Câblage automatique «byName»

Câblez automatiquement un bean par nom de propriété. Dans ce cas, puisque le nom du bean "personne" est le même que le nom de la propriété du bean "client" ("personne"), Spring le câblera automatiquement via la méthode setter - "setPerson(Person person)".

    

    

Voir l'exemple complet -Spring Autowiring by Name.

3. Câblage automatique «byType»

Câblez automatiquement un bean par type de données de propriété. Dans ce cas, étant donné que le type de données du bean «personne» est le même que le type de données de la propriété du bean «client» (objet Personne), Spring le câblera automatiquement via la méthode setter - «setPerson(Person person)».

    

    

Voir l'exemple complet -Spring Autowiring by Type.

4. «Constructeur» de câblage automatique

Câblez automatiquement un bean par type de données de propriété dans l'argument constructeur. Dans ce cas, puisque le type de données du bean "personne" est le même que le type de données de l'argument constructeur dans la propriété du bean "client" (objet Person), Spring l'a automatiquement câblé via la méthode du constructeur - "public Customer(Person person)".

    

    

Voir l'exemple complet -Spring Autowiring by Constructor.

5. Autodétection du câblage automatique

Si un constructeur par défaut est trouvé, utilise «constructeur»; Sinon, utilise «byType». Dans ce cas, comme il y a un constructeur par défaut dans la classe «Customer», Spring l'a automatiquement câblé via la méthode du constructeur - «public Customer(Person person)».

    

    

Voir l'exemple complet -Spring Autowiring by AutoDetect.

Note
Il est toujours bon de combiner à la fois "auto-wire" et "dependency-check" pour vous assurer que la propriété est toujours connectée automatiquement avec succès.

    

Conclusion

À mon avis, le «câblage automatique» de Spring accélère le développement à des coûts élevés - il a ajouté de la complexité à l’ensemble du fichier de configuration du bean, et vous ne savez même pas quel bean sera automatiquement câblé dans quel bean.

En pratique, je le câble plutôt manuellement, il est toujours propre et fonctionne parfaitement, ou mieux utilise@Autowired annotation, ce qui est plus flexible et recommandé.