[Mise à jour continue] Notes d'étude Java : je veux apprendre SpringBoot

@RunWith(SpringRunner.class)

Le rôle de @RunWith(SpringRunner.class) indique que la classe de test Test doit utiliser des classes injectées, telles que les classes injectées avec @Autowired. Ce n'est qu'avec @RunWith(SpringRunner.class) que ces classes peuvent être instanciées dans le conteneur Spring, et automatiquement l’injection peut faire effet.

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)

Généralement utilisé pour les tests d'intégration dans les applications Spring Boot. Il précise que le test doit être exécuté sur un port aléatoire, plutôt que sur le port par défaut de l'application. L'utilisation de cette annotation évite les problèmes liés aux tests en conflit avec l'application en cours d'exécution et garantit que les tests seront toujours exécutés dans une configuration de type production.

Plus précisément, @SpringBootTestle contexte complet de l'application Spring est démarré dans le contexte du test JUnit, c'est-à-dire que l'application Spring Boot est démarrée et tous les beans sont chargés. webEnvironmentLes paramètres précisent dans quel type d'environnement Web le test doit être exécuté. RANDOM_PORTLe mode signifie que l'application démarrera sur un port disponible aléatoire au lieu du port par défaut (généralement 8080). Cela permettra à plusieurs tests de s'exécuter en parallèle sans avoir à gérer manuellement les numéros de port ni à vous soucier des conflits de ports.

@LocalServerPort

Utilisé pour injecter le numéro de port sur lequel l'application actuelle s'exécute dans les tests Spring Boot. Il est généralement @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)utilisé avec une annotation spécifiant que le test doit être exécuté sur un port aléatoire.

Dans les tests d'intégration, le numéro de port de l'application est attribué au moment de l'exécution et peut changer car d'autres processus occupent le même port. À l'aide @LocalServerPortd'annotations, vous pouvez obtenir par programme le numéro de port réel et l'utiliser à des fins de test. Par exemple, vous pouvez utiliser le numéro de port pour créer un client HTTP afin d'interagir avec votre application, ou le transmettre à d'autres composants de votre test qui doivent utiliser le numéro de port.

Voici un @LocalServerPortexemple utilisant l'annotation :

@RunWith(SpringRunner.class)

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)

public class MyIntegrationTest {

        @LocalServerPort private int port;

        // other test methods...

}

Dans cet exemple, portla variable recevra le numéro de port sur lequel l'application actuelle s'exécute.

@Test

Si vous utilisez l'annotation @Test dans le framework JUnit pour marquer une méthode, la méthode sera automatiquement reconnue comme un scénario de test et appelée lors de l'exécution du test.

Par conséquent, que la méthode soit appelée ou non par l'instance, tant que le test JUnit est exécuté, la méthode sera automatiquement exécutée.

Il convient de noter que la méthode de test marquée de l'annotation @Test doit répondre à certaines exigences. Par exemple, la méthode doit avoir une visibilité publique (public), aucune valeur de retour (void), aucun paramètre et ne doit lever aucune exception, etc. Sinon, le test pourrait échouer.

@RestController

Dans le framework Spring, vous pouvez utiliser @Controllerdes annotations pour marquer une classe en tant que contrôleur, puis définir des méthodes de gestion des requêtes HTTP dans cette classe. Lorsqu'une requête arrive, Spring MVC trouvera le contrôleur et la méthode correspondants en fonction de l'URL de la requête pour gérer la requête et renvoyer une réponse.

Si l'annotation est utilisée @ResponseBody, cela signifie que le contenu de la réponse renvoyé par cette méthode n'est pas une vue, mais un objet ordinaire. Spring MVC convertira automatiquement cet objet au format JSON ou XML et l'écrira dans le corps de la réponse HTTP.

@RestControllerL'annotation combine ces deux annotations. Il indique à Spring MVC que cette classe n'est pas seulement un contrôleur, mais doit également sérialiser la valeur de retour de la méthode au format JSON ou XML et la renvoyer à l'appelant en tant que corps de la réponse HTTP. C'est-à-dire que dans une @RestControllerclasse, toutes les méthodes seront déclarées comme , nous n'avons donc pas besoin d'ajouter d'annotations @ResponseBodyà chaque méthode .@ResponseBody

En bref, @RestControllercela peut nous aider à créer des services Web RESTful plus facilement.

@SpringBootApplication

@SpringBootApplicationest l'une des annotations principales de Spring Boot. Il s'agit d'une annotation combinée qui inclut les fonctions de trois annotations @Configuration: , @EnableAutoConfigurationet .@ComponentScan

  • @Configuration L'annotation indique que cette classe est une classe de configuration et sera utilisée par le conteneur Spring IoC pour analyser et assembler des beans.
  • @EnableAutoConfiguration Les annotations peuvent configurer automatiquement les applications Spring Boot et configurer le démarrage en fonction des dépendances ajoutées au projet. Il utilise le mécanisme de configuration automatique de Spring Boot pour configurer automatiquement les applications Spring en fonction des classes et des packages jar existants dans le projet.
  • @ComponentScan L'annotation analysera toutes les classes du package spécifié et ses sous-packages pour rechercher et enregistrer les beans gérés par le conteneur. Cela permet à Spring Boot d'analyser automatiquement les contrôleurs, services et autres composants que nous avons écrits.

Par conséquent, nous devons généralement ajouter @SpringBootApplicationdes annotations à la classe de démarrage du projet Spring Boot afin de terminer la configuration de base et le démarrage de l'application.

@Serveur

@ServiceIl s'agit d'une annotation dans le framework Spring, généralement utilisée pour marquer une classe en tant que composant de couche de service. Cela indique que cette classe est un composant au niveau de la logique métier, utilisé pour gérer une logique métier spécifique, telle que le fonctionnement sur la base de données.

Dans les applications Spring, nous utilisons généralement @Servicedes annotations pour marquer les composants de la couche de service. Lorsqu'une classe est @Servicedécorée d'annotations, le conteneur Spring la reconnaît automatiquement comme un composant de couche de service et l'enregistre dans le conteneur pour la gestion.

Par exemple, dans le code suivant, MyServicela classe utilise @Servicedes annotations :

 
 

code de copie Java

@Service public class MyService { private final SomeThirdPartyObject someThirdPartyObject; public MyService(SomeThirdPartyObject someThirdPartyObject) { this.someThirdPartyObject = someThirdPartyObject; } // ... }

Cela signifie que MyServicela classe peut être injectée en dépendance par d'autres composants, et que d'autres beans dont elle dépend peuvent être automatiquement injectés via l'annotation @Autowiredou . @ResourceDe plus, nous pouvons également MyServicedéfinir certaines méthodes de logique métier dans la classe pour faciliter l'accès et le fonctionnement de la base de données ou d'autres ressources.

@Haricot

Dans Spring Boot, @Bean est une annotation utilisée pour enregistrer l'objet renvoyé par une méthode en tant que bean dans le contexte de l'application Spring. Les méthodes annotées avec @Bean doivent être déclarées dans une classe annotée avec @Configuration.

Lorsque le conteneur Spring démarre, il analyse toutes les classes marquées avec @Configuration et recherche les méthodes annotées @Bean. Le conteneur Spring appellera ces méthodes et enregistrera leurs valeurs de retour sous forme de beans. Ces beans peuvent être injectés dans d'autres composants de l'application à l'aide de l'annotation @Autowired.

Par conséquent, l'annotation @Bean fournit un moyen simple de définir et d'enregistrer des beans, permettant aux développeurs d'utiliser des implémentations personnalisées pour créer et gérer des objets dans les applications.

@Données

@Dataest une annotation fournie par Lombok, qui peut générer automatiquement le getter, le setter toString()et equals()les hashCode()méthodes d'une classe, réduisant ainsi la quantité de code requise pour écrire ces méthodes à la main. Dans le même temps, il peut également générer des constructeurs à paramètres complets et des constructeurs à paramètres vides.

Les classes utilisant des annotations doivent ajouter des annotations @Datasur la classe pour générer des constructeurs sans paramètre et paramétrés. De plus, vous devez ajouter des annotations et , qui généreront respectivement des méthodes et et .@NoArgsConstructor@AllArgsConstructor@ToString@EqualsAndHashCodetoString()equals()hashCode()

@DataEn bref, vous pouvez facilement générer certains codes couramment utilisés à l'aide de , rendant le code plus concis et lisible et améliorant l'efficacité du développement.

Je suppose que tu aimes

Origine blog.csdn.net/LforikQ/article/details/130573048
conseillé
Classement