From 3642c4951039813e0bf93f870b6ce2c99ffbb946 Mon Sep 17 00:00:00 2001 From: Georgios Andrianakis Date: Wed, 13 Nov 2019 13:36:58 +0200 Subject: [PATCH 1/2] Add conversion table from Spring DI annotations to CDI / MicroProfile --- docs/src/main/asciidoc/spring-di.adoc | 44 +++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/docs/src/main/asciidoc/spring-di.adoc b/docs/src/main/asciidoc/spring-di.adoc index 23044b172364a..9e3ae38038faf 100644 --- a/docs/src/main/asciidoc/spring-di.adoc +++ b/docs/src/main/asciidoc/spring-di.adoc @@ -256,6 +256,50 @@ Spring classes and annotations are only used for reading metadata and / or are u What that means for end users, is that adding arbitrary Spring libraries will not have any effect. Moreover Spring infrastructure classes (like `org.springframework.beans.factory.config.BeanPostProcessor` for example) will not be executed. +== Conversion Table + +The following table shows how Spring DI annotations can be converted to CDI and / or MicroProfile annotations. + +|=== +|Spring |CDI / MicroProfile |Comments + +|@Autowired +|@Inject +| + +|@Qualifier +|@Named +| + +|@Value +|@ConfigProperty +|@ConfigProperty doesn't support an expression language the way @Value does, but makes the typical use cases much easier to handle + +|@Component +|@Singleton +|By default Spring stereotype annotations are singleton beans + +|@Service +|@Singleton +|By default Spring stereotype annotations are singleton beans + +|@Repository +|@Singleton +|By default Spring stereotype annotations are singleton beans + +|@Configuration +|@ApplicationScoped +|In CDI a producer bean isn't limited to the application scope, it could just as well be @Singleton or @Dependent + +|@Bean +|@Produces +| + +|@Scope +| +|Doesn't have a one-to-one mapping to a CDI annotation. Depending on the value of @Scope, one of the @Singleton, @ApplicationScoped, @SessionScoped, @RequestScoped, @Dependent could be used +|=== + == More Spring guides Quarkus supports additional Spring compatibility features. See the following guides for more details: From 89d1cac5c0f46572e7baec0d899d236200cafb11 Mon Sep 17 00:00:00 2001 From: Georgios Andrianakis Date: Wed, 13 Nov 2019 13:56:04 +0200 Subject: [PATCH 2/2] Add conversion table from Spring Web annotations to JAX-RS --- docs/src/main/asciidoc/spring-web.adoc | 48 ++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/docs/src/main/asciidoc/spring-web.adoc b/docs/src/main/asciidoc/spring-web.adoc index 15078f950b7ba..c487581691b6f 100644 --- a/docs/src/main/asciidoc/spring-web.adoc +++ b/docs/src/main/asciidoc/spring-web.adoc @@ -247,6 +247,54 @@ Spring classes and annotations are only used for reading metadata and / or are u What that means for end users, is that adding arbitrary Spring libraries will not have any effect. Moreover Spring infrastructure classes (like `org.springframework.beans.factory.config.BeanPostProcessor` for example) will not be executed. +== Conversion Table + +The following table shows how Spring Web annotations can be converted to JAX-RS annotations. + +|=== +|Spring |JAX-RS |Comments + +|@RequestController +| +|There is no equivalent in JAX-RS. Annotating a class with @Path suffices + +|@RequestMapping(path="/api") +|@Path("/api") +| + +|@RequestMapping(consumes="application/json") +|@Consumes("application/json") +| + +|@RequestMapping(produces="application/json") +|@Produces("application/json") +| + +|@RequestParam +|@QueryParam +| + +|@PathVariable +|@PathParam +| + +|@RequestBody +| +|No equivalent in JAX-RS. Method parameters corresponding to the body of the request are handled in JAX-RS without requiring any annotation + +|@RestControllerAdvice +| +|No equivalent in JAX-RS + +|@ResponseStatus +| +|No equivalent in JAX-RS + +|@ExceptionHandler +| +|No equivalent annotation in JAX-RS. Exceptions are handled by implementing `javax.ws.rs.ext.ExceptionMapper` +|=== + == More Spring guides Quarkus support has more Spring compatibility features. See the following guides for more details: