QCM Framework Spring – Partie 5

QCM sur le framework Spring avec des réponses pour la préparation des entretiens d’embauche, tests en ligne, examens et certifications. Ces questions et réponses sur Spring comprennent divers sujets tel que les bases du Spring, Injection de dépendance, MVC3, AOP, sécurité, annotation, intégration et concepts avancés de Spring. Et sont tirés d’un vrai entretien écrit et certaines parties sont en direct. Cette méthode d’apprentissage systématique préparera facilement toute personne pour réussir son test sur Spring.
 
 

1. Qu’est‐ce qui n’est pas vrai concernant les annotations @PostConstruct, @Resource et @PreDestroy?

A Ces annotations sont spécifiées dans la JSR-250

B La balise contexte:composant-scan permet d’activer ces annotations

C Le framework Spring intégre ces annotations

D La balise contexte:annotation-config permet d’activer ces annotations

C

 

2. Étant donné le fichier de configuration Spring, quelles sont les instructions correctes?
<bean class="com.spring.service.CompanyServiceImpl" p:CompanyName="WayToLearnX"> 
</bean>

A L’espace de noms p doit être déclaré

B L’identifiant du bean est CompanyServiceImpl

C CompanyServiceImpl fait référence à un bean qui s’appel WayToLearnX

D Aucune de ces réponses n’est vraie.

A

 

3. Compte tenu du fichier de configuration Spring suivant, quelle est la bonne réponse?
<bean class="com.spring.service.MyServiceImpl"> 
     <property name="repository" ref="jpaDao"/> 
</bean>

<bean class="com.spring.repository.JpaDao"/>

A Dans le premier bean déclaré sur MyServiceImpl. Il manque un identifiant nommé myService.

B Le deuxième bean déclaré JpaDao, il manque un identifiant doit être nommé jpaDao

C Les deux A et B sont vrais.

D Les deux A et B sont faux.

B
Ces beans sont anonymes car aucun identifiant n’est fourni explicitement. Ainsi, le conteneur Spring génère un identifiant unique pour ce bean. Il utilise le nom de classe complet et leur ajoute un numéro. Toutefois, si vous souhaitez faire référence à ce bean par son nom, vous devez fournir un nom via l’utilisation de l’élément ref. Pour être correct, le deuxiéme bean doit déclarer un attribut id jpaDao afin d’être référencé par la propriété repository du premier bean.

 

 

4. Quel est généralement le(s) cas où vous avez généralement besoin d’instancier manuellement un ApplicationContext?

A Dans une application Web

B Dans un test d’intégration exécuté avec SpringJUnit4ClassRunner

C Dans une application autonome démarrée avec la méthode principale main

D Aucune de ces réponses n’est vraie.

C
  • Dans une application Web, ContextLoaderListener est chargé de créer un WebApplicationContext.
  • Dans un test d’intégration basé sur Spring, SpringJUnit4ClassRunner crée le contexte de l’application pour vous. L’annotation @ContextConfiguration permet de spécifier des fichiers de configuration de contexte d’application.
  • Dans la méthode principale main, vous devez instancier une classe implémentant l’interface ApplicationContext (exemples: ClassPathXmlApplicationContext ou FileSystemXmlApplicationContext).

 

5. Comment s’appelle le bean défini dans la classe de configuration suivante. Sélectionnez une seule réponse?
@Configuration 
public class AppConfig { 

	@Autowired 
	private DataSource ds; 
	
	@Bean 
	ClientRepository clientRepository() { 
	
		ClientRepository cmpRepository = new JpaClientRepository(); 
		cmpRepository.setDataSource(ds); 
		
		return cmpRepository; 
	} 
	
}

A JpaClientRepository

B clientRepository

C Deux beans sont définis: data souce et repository

D Aucune de ces réponses n’est vraie.

B
L’annotation @Bean définit un bean String avec l’id clientRepository. JpaClientRepository est la classe d’implémentation du bean. Data source est injectée et n’est pas déclarée dans cette classe.

 

6. Quelle est la portée d’un bean stateless dans Spring?

A Singleton scope

B Prototype scope

A
Prototype scope. Si la portée est définie sur prototype, le conteneur Spring IoC crée une nouvelle instance de l’objet bean à chaque fois qu’une requête pour ce bean spécifique est effectuée. En règle générale, utilisez la portée du prototype(Prototype scope) pour tous les beans state-full et la portée du singleton(Singleton scope) pour les beans stateless(sans-état).

 

7. Comment auto-injecter dans un attribut un bean par son nom?

A Avec l’attribut name de l’annotation @Autowired

B En utilisant l’annotation unique @Qualifier

C En utilisant les annotations de spring @Autowired et @Qualifier

D Aucune de ces réponses n’est vraie.

C
Exemple:

public class ClientBean{
	
	@Qualifier("bean1")
	@Autowired
	private MonBean monBean;
	
	...
	
}

 

 

8. Quels sont les principaux avantages de l’utilisation de Spring lors de la rédaction de tests unitaires?

A Réutiliser les fichiers de configuration Spring de l’application

B Utiliser l’injection de dépendance

C Fournir des mocks pour les classes de servlets

D Tout les réponses sont vrais

C
Quels sont les principaux avantages de l’utilisation de Spring lors de la rédaction de tests unitaires?

  • Vous n’avez pas besoin du conteneur Spring pour écrire le test unitaire.
  • Le package org.springframework.mock fournit des classes fictives telles que MockHttpSession ou MockHttpContext. Ils pourraient être utiles pour les tests unitaires dans la couche de présentation et lorsque vous n’utilisez pas de framework fictif tel que Mockity ou EasyMock.

 

9. Sélectionnez la déclaration correcte concernant la gestion transactionnel du module de test du Spring?

A Le gestionnaire de transactions peut être défini avec l’annotation @TransactionConfiguration

B La méthode avec l’annotation @Before est exécutée en dehors de la transaction du test

C Le test du framework Spring peut annuler la transaction d’un service configuré avec la propagation REQUIRES_NEW

D Tout les réponses sont vrais

A
TransactionConfiguration définit les métadonnées au niveau de la classe pour la configuration des tests transactionnels.

 

10. Sélectionnez la déclaration correcte concernant le développement du test d’intégration avec Spring?

A Un nouveau contexte Spring est créé pour chaque classe de test

B Pour obtenir une référence sur le bean que vous voulez tester, vous devez appeler la méthode getBean() du contexte Spring.

C La configuration du contexte Spring pourrait hériter de la classe super

D Le fichier de configuration du contexte Spring doit être fourni dans les paramétres de l’annotation @ContextConfiguration.

C
  • Le contexte Spring est mis en cache dans les tests, sauf si vous utilisez l’annotation @DirtiesContext.
  • Avec le module de test Spring, l’injection de dépendance est disponible en cas de test. Donc, vous pouvez automatiquement injecter le bean pour le tester
  • Par défaut, une classe avec l’annotation @ContextConfiguration hérite des emplacements de fichier de configuration de contexte définis par l’annotation d’une superclasse. InheritLocations de cet attribut permet de modifier ce comportement par défaut.
  • Si aucun fichier de configuration de contexte n’est fourni à l’annotation @ContextConfiguration, Spring utilise un nom de convention. Il essaie de charger un fichier nommé avec le nom de la classe de test avec le suffixe « -context.xml » (c’est-à-dire MaClasseDeTest-context.xml).

 

 
 
Partagez cet article

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *