1. Scénarios commerciaux
Il existe des méthodes statiques dans les applications du framework Spring qui doivent s’appuyer sur des classes gérées par des conteneurs, comme ceci :
Cela rapportera définitivement java.lang.NullPointerException : null exception.
2. Analyse des principes
Les variables statiques et les variables de classe ne sont pas des propriétés d’objets, mais des propriétés d’une classe, donc les méthodes statiques appartiennent à des classes, les méthodes ordinaires aux objets entités (c’est-à-dire de nouveaux objets), et l’injection de ressort instance des objets dans des conteneurs, donc les méthodes statiques ne peuvent pas être utilisées.
L’utilisation de variables statiques et de variables de classe élargit le champ d’application des méthodes statiques. Les méthodes statiques ne sont pas recommandées au printemps, et l’objectif principal de l’injection de dépendances est de permettre aux conteneurs de générer des instances d’un objet puis de les utiliser tout au long de leur vie, tout en facilitant les tests.
Une fois la méthode statique utilisée, vous n’avez plus besoin de générer des instances de cette classe, ce qui rend les tests plus difficiles, et vous ne pouvez pas compter sur l’injection pour générer plusieurs instances avec des dépendances différentes pour une classe donnée, qui est implicitement partagée et constitue un état global, ce qui n’est pas non plus recommandé par Spring.
3. Solution
1. Ajouter @Autowire à la méthode de construction
2. Annoter avec @PostConstruct
|