Annotations communes au printemps

@Configuration

Apparu à partir de spring3.0, il est équivalent au fichier xml de configuration du bean. Cette annotation peut être utilisée pour réaliser la configuration basée sur la classe java (les deux autres moyens peuvent se référer à cet article: Spring summary (2) Comment configurer bean d'injection de métadonnées dans le conteneur Spring ).

Le code source est le suivant:

La classe marquée par cette annotation créera un objet et l'injectera dans le conteneur IOC.

Utilisation simple:

package spring;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import entity.Person;

@Configuration
public class Config {
  @Bean
  public Person person() {
    return new Person(18,"dreamcasher");
  }

  public static void main(String[] args) {
    //创建IOC容器,并将实例创建后注入到容器中
    ApplicationContext app = new AnnotationConfigApplicationContext(Config.class);
    Object person = app.getBean("person");
    System.out.println(person);
  }
}

résultat de l'opération

@ComponentScan

Selon le chemin du package d'analyse personnalisé, injectez les classes annotées avec @Component, @Controller, @Service et @Repository sous le chemin dans le conteneur Spring.

ps: Voici un enregistrement d'une fosse rencontrée lors de l'utilisation. Il existe un attribut useDefaultFilters dans l'annotation. La valeur par défaut est true. Si la valeur est true, les annotations telles que @Controller, @Service, @Repository seront ajoutées pendant l'analyse. La classe est injectée dans le conteneur Spring, donc en général, si vous souhaitez utiliser la propriété includeFilters, useDefaultFilters doit être défini sur false.

@Fainéant

Le conteneur de ressort créera un singleton chargé non paresseux pendant le processus de démarrage. La classe annotée @Lazy ne sera pas créée lors du démarrage du conteneur de ressort, mais sera créée au démarrage du conteneur de ressort.

@Portée

Vous pouvez définir si le bean est singleton ou prototype. La valeur par défaut est singleton.

@Conditionnel

Une fois qu'une certaine condition générale est remplie, le grain sera injecté dans le récipient. Affichez le code d'origine comme suit:

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
public @interface Conditional {
    Class<? extends Condition>[] value();
}

L'objet de classe entrant doit implémenter l'interface Condition

@Importer

L'objet de classe entrant peut être injecté dans le conteneur. Il n'y a aucune restriction sur le type, comme la classe sous le fichier de classes, la classe dans le package tiers ou la classe qui implémente l'interface ImportBEANDefinitionRegistrar

@Autowired @Qualifier @Resource @Primary 

L'utilisation peut se référer à l'article: @Resource et @Autowired comparaison

Je suppose que tu aimes

Origine blog.csdn.net/qq_28411869/article/details/89314667
conseillé
Classement