[JAVA] À propos des annotations liées à Spring DI

Types d'annotations relatives à Spring DI

Context Configuration Annotations   @Scope @Autowired @Resource @Inject @Required @Named @Order @PostConstruct @PreDestroy

@Scope

Généralement, un seul bean qui analyse automatiquement avec @Component @Service @Repository est généré en tant que singleton, mais vous pouvez utiliser l'annotation @Scope pour changer cela. En d'autres termes, je vais définir la gamme de beans.

singleton-Return un bean par ʻIoC container prototype --Crée un nouveau bean à chaque fois qu'il y a unedemandeet retourne request-renvoie un bean parobjet de requête HTTP session-renvoie un bean parobjet de session HTTP` globalSession - Renvoie un bean pour «toutes les sessions»  

Example


   @Component
   @Scope("prototype")
   Class Hoge { ... } 
   <bean id="hoge" class="aaa.java.bbb.ccc.hoge" scope="prototype" />

Si vous injectez un bean, vous pouvez utiliser les annotations suivantes.

@Autowired

Annotations appartenant au Spring Framework S'applique si l'ID ou le nom du bean correspond. Injection pilotée par type Si certains beans sont recherchés, ils se distinguent par l'annotation @Qualifier (name =" hoge "). Fondamentalement, tous les attributs @Autowired sont injectés avec des beans.  

@Resource

Annotations qui peuvent être utilisées dans Spring 2.5 et au-dessus et qui n'appartiennent pas à Spring Framework Trouvez le bean injecté par nom de bean. Pour l'utiliser, ajoutez la bibliothèque JSR.250 jsr250-api.jar au chemin de classe.  

Paramètres Maven


<dependency>
      <groupId>javax.annotation</groupId>
      <artifactId>jsr250-api</artifactId>
      <version>1.0</version>
</dependency>

@Inject

Il peut être utilisé avec Spring 3.0 ou supérieur. Il est recommandé d'utiliser @Inject pour configurer des applications qui n'appartiennent à aucun Framework particulier. Pour l'utiliser, ajoutez javax.inject-x.x.x.jar de la bibliothèque JSR.330 au chemin de classe.  

Paramètres Maven


<dependency>
      <groupId>javax.inject</groupId>
      <artifactId>javax.inject</artifactId>
      <version>1</version>
</dependency>

@Required

Il est utilisé pour écrire sur la méthode Setter et définir les propriétés requises. Pour l'utiliser, vous pouvez soit enregistrer la classe RequiredannotationBeanPostProcessor en tant que bean, soit ajouter le paramètre <context.annotation-config>.

Example


   package day1;
   public class Emp {
   private String ename;
   @Requried
   public void setEname( String ename ) { this.ename = ename; }
   public String getName() { return this.ename; }
   }

Beans.xml


<bean id="emp" class="day1.Emp" >
  <!--Erreur si les propriétés suivantes ne sont pas définies-->
  <!-- <property ename="ename" value="hoge" /> -->
</bean>

main()


   ApplicationContext ctx = new ClassPathXmlApplicationContext("Beans.xml");
   Emp emp = (Student) ctx.getBean("emp");
   System.out.println("Ename : " + emp.getEname());

Lorsque je l'exécute, j'obtiens l'erreur suivante:

>

#### **`Error`**
```ruby

   Property 'ename' is required for bean 'emp'

 

je suis un peu fatigué@Named @Order @À propos de PostConstruct demain ...

Recommended Posts

À propos des annotations liées à Spring DI
À propos de DI of Spring ①
À propos de DI of Spring ②
À propos du printemps ③
À propos de Spring AOP
À propos de Spring AOP
[Java] Spring DI ③
Modifications majeures liées au conteneur Spring Framework 5.0 DI
À propos de l'authentification Spring Security
Résumé de Spring Framework - À propos de DI
À propos de Bean et DI
Première botte à ressort (DI)
A propos de Spring AOP Pointcut
Les bases du printemps ~ Édition DI ~
[Spring boot] J'ai pensé au code testable par DI
[Notes personnelles] À propos du framework Spring
À propos de l'erreur de contexte Spring Framework
Introduction à Spring Boot ① ~ DI ~
Conseils relatifs à Spring Boot DB
[Java] Fonctionnement de Spring DI
Paramètres liés aux performances de Spring Boot
A propos de la liaison de l'annotation Spring AOP
Annotations fréquentes pour les tests Spring Boot
[Java] Spring DI ④ --Gestion du cycle de vie