432 votes

Qu'est-ce que les haricots de printemps ?

Je n'ai pas encore trouvé de définition de haut niveau des Spring beans que je puisse comprendre. Je les vois souvent référencés dans la documentation et les livres sur Grails, mais je pense qu'il serait utile de comprendre ce qu'ils sont. Qu'est-ce que les Spring beans ? Comment peut-on les utiliser ? Ont-ils quelque chose à voir avec l'injection de dépendance ?

2 votes

Grails est construit sur Spring. Si vous n'êtes pas familier avec Spring, je vous suggère au moins de lire quelques documents à ce sujet afin de comprendre les technologies que vous utilisez.

33 votes

Je pense que les commentaires ici souffrent du même problème que l'OP voit dans les références dans les docs et livres Grails : ils ne sont faciles que pour les gens qui savent déjà ce qu'ils veulent dire. Je trouve que l'article de Wikipedia décrit bien mieux les choses pour un débutant.

12 votes

@MarcoForberg l'une des raisons pour lesquelles l'ancienne version de Spring est en tête de liste sur Google est que les gens continuent à faire des liens vers elle à partir d'endroits comme SO... static.springsource.org/spring/docs/3.2.x/ serait un meilleur point de départ de nos jours.

9voto

Spring dispose d'un conteneur IoC qui transporte le sac de haricots ; la création, la maintenance et la suppression relèvent de la responsabilité du conteneur Spring. Nous pouvons intégrer le bean dans Spring par Wiring et Auto Wiring. Le câblage signifie que nous le configurons manuellement dans le fichier XML et le "câblage automatique" signifie que nous plaçons les annotations dans le fichier Java, puis Spring scanne automatiquement le contexte-racine où le fichier de configuration Java, le crée et le place dans le sac de Spring.

Voici l'URI détaillé où vous avez obtenu plus d'informations sur les haricots

9voto

maniBrock Points 81
  • Les Spring beans sont des instances d'objets gérées par le conteneur Spring IOC.

  • La création, la maintenance et la suppression des haricots relèvent de la responsabilité du conteneur Spring.

  • Nous pouvons mettre le haricot au printemps par le câblage et le câblage automobile.

  • Le câblage signifie que nous le configurons manuellement dans le fichier XML.

  • Le câblage automatique signifie que nous plaçons les annotations dans le fichier Java et que Spring analyse automatiquement le contexte racine dans lequel se trouve le fichier de configuration Java, le crée et le met dans le sac de Spring.

9voto

Zhenyang Hua Points 1377

Les haricots de printemps sont des classes. Au lieu d'instancier une classe (en utilisant new ), vous obtenez une instance sous la forme d'un bean vers votre type de classe à partir du contexte d'application, où le bean est ce que vous avez configuré dans la configuration du contexte d'application. De cette manière, l'application entière maintient une instance singleton-scope tout au long de l'application. Tous les beans sont initialisés selon leur ordre de configuration juste après l'instanciation du contexte d'application. Même si vous n'avez pas de beans dans votre application, toutes les instances de beans sont déjà créées au moment où vous avez créé le contexte d'application.

5voto

jurez Points 1247

Dans le cas d'une application Spring boot, un haricot est simplement un objet Java créé par le cadre Spring au démarrage de l'application.

Le but de l'objet peut être à peu près n'importe quoi - une configuration, un service, une usine de connexion à une base de données, etc. - Spring ne s'en préoccupe pas vraiment.

La plupart des haricots dépendent d'autres haricots pour fonctionner. Par exemple, un gestionnaire d'entités peut avoir besoin d'une connexion à une base de données. Le cadre Spring est capable de déterminer automatiquement comment les beans doivent être reliés entre eux. En tant que développeur d'applications, il vous suffit de déclarer les beans dont vous avez besoin et ils apparaissent "comme par magie" dans votre application, prêts à être utilisés.

3voto

Wiqi Points 470

La configuration XML de Spring est composée de Beans et les Beans sont essentiellement des classes. Ce sont juste des POJO que nous utilisons à l'intérieur de notre ApplicationContext. La définition des Beans peut être considérée comme le remplacement du mot-clé new. Ainsi, chaque fois que vous utilisez le mot-clé new dans votre application, quelque chose comme :

MyRepository myRepository =new MyRepository ();

Où vous utilisez ce mot-clé nouveau c'est là que vous pouvez envisager de supprimer cette configuration et de la placer dans un fichier XML. Nous allons donc coder comme ceci :

<bean name="myRepository " 
      class="com.demo.repository.MyRepository " />

Maintenant, nous pouvons simplement utiliser l'injection de setter ou l'injection de constructeur. J'utilise l'injection de setter.

public class MyServiceImpl implements MyService {
    private MyRepository myRepository;
    public void setMyRepository(MyRepository myRepository)
        {
    this.myRepository = myRepository ;
        }
public List<Customer> findAll() {
        return myRepository.findAll();
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X