Add the hexagonal module: Hexagonal Architecture (Ports and Adapters) in Spring Boot 4
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>com.ankurm</groupId>
|
||||
<artifactId>hexagonal-parent</artifactId>
|
||||
<version>1.0</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>hexagonal-app</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<!-- The only module that depends on both adapters, and the only place @SpringBootApplication
|
||||
appears in this whole article. Wiring WalletService into both ports' beans happens here,
|
||||
in plain @Bean methods, because the core itself carries no component-scanning annotation
|
||||
for Spring to find. -->
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.ankurm</groupId>
|
||||
<artifactId>hexagonal-core</artifactId>
|
||||
<version>1.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.ankurm</groupId>
|
||||
<artifactId>hexagonal-persistence-adapter</artifactId>
|
||||
<version>1.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.ankurm</groupId>
|
||||
<artifactId>hexagonal-web-adapter</artifactId>
|
||||
<version>1.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<!-- TestRestTemplate itself survived Boot 4 (it's deprecated in favour of RestTestClient,
|
||||
not removed), but it moved out of spring-boot-test into its own artifact, package
|
||||
org.springframework.boot.resttestclient - confirmed by unzipping
|
||||
spring-boot-resttestclient-4.1.1.jar, which is where TestRestTemplate.class and its
|
||||
TestRestTemplateTestAutoConfiguration now live. -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-resttestclient</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<!-- TestRestTemplateTestAutoConfiguration's @ConditionalOnMissingBean reflectively
|
||||
introspects a RestTemplateBuilder-returning @Bean method, so RestTemplateBuilder
|
||||
itself (the production-side builder, confirmed in spring-boot-restclient-4.1.1.jar)
|
||||
has to be resolvable even though nothing in this module calls it directly. Without
|
||||
this, context startup fails with NoClassDefFoundError before a single test runs. -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-restclient</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<version>${spring-boot.version}</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
Reference in New Issue
Block a user