DDD START! μ¬μΆκ°νμΈ λλ©μΈ μ£Όλ κ°λ° μμνκΈ° μ± μ μμ€ μ½λλ https://github.com/madvirus/ddd-start2 리ν¬μ§ν 리μ νμΈ κ°λ₯ν©λλ€.
μμ μλ΄
μ€λΉ
μλ νλ‘κ·Έλ¨μ μ€λΉνλ€.
- JDK 1.8
- λ©μ΄λΈ
- MySQL
μμ€ λ€μ΄λ‘λ
gitμ μλ€λ©΄ μλ λͺ λ Ήμ΄λ‘ 리ν¬μ§ν 리λ₯Ό ν΄λ‘ νλ€.
git clone https://github.com/madvirus/ddd-start.git
gitμ λͺ¨λ₯Έλ€λ©΄ μ°μΈ‘ μλ¨μ Download ZIPμ ν΄λ¦ν΄μ μ½λλ₯Ό λ€μ΄λ‘λ λ°κ³ μμΆμ νΌλ€.
MySQL DB μμ± λ° λ°μ΄ν° μ΄κΈ°ν
- src/sql/ddl.sql νμΌμ μ΄μ©ν΄μ λ°μ΄ν°λ² μ΄μ€μ ν
μ΄λΈ μμ±
- shop λ°μ΄ν°λ² μ΄μ€ μμ±
- shopuser μ¬μ©μ μμ±
- κ΄λ ¨ ν μ΄λΈ μμ±
- src/sql/init.sql νμΌλ‘ μμ μ€νμ νμν λ°μ΄ν° μ΄κΈ°ν
docker-compose μ¬μ©μ
docker-compose up
JPA λ©νλͺ¨λΈ μμ±
OrderSummary_ μ κ°μ΄ μ΄λ¦μ '_'κ° ν¬ν¨λ JPA λ©ν λͺ¨λΈ ν΄λμ€λ₯Ό μμ±νλ €λ©΄ λ€μ μ€ ν λ°©λ²μ μ¬μ©νλ€.
- mvn compile λͺ λ Ήμ΄λ‘ μμ±
- mvn generate-sources λͺ λ Ήμ΄λ‘ μμ±
mvn compile λͺ λ Ήμ΄λ‘ μμ±νκΈ°
νμ¬ pom.xml νμΌμ mvn compile λͺ λ Ήμ΄λ₯Ό μ€ννλ κ³Όμ μμ JPA λͺ¨λΈ ν΄λμ€λ₯Ό μμ±νλ€. mvn compile λͺ λ Ήμ΄λ₯Ό μ€ννλ©΄ λ€μ ν΄λμ λ©νλͺ¨λΈ ν΄λμ€κ° μμ±λλ€.
- target/generate-soruces/annotations
mvn generate-sources λͺ λ Ήμ΄λ‘ μμ±νκΈ°
generate-sources λͺ λ Ήμ΄λ‘ μ€ννλ €λ©΄ pom.xml νμΌμ λ€μκ³Ό κ°μ΄ maven-process-plugin μ€μ μ μΆκ°νλ€.
<!-- κΈ°μ‘΄ maven-compiler-plugin μ£Όμ μ²λ¦¬
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArguments>
<processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor>
</compilerArguments>
</configuration>
</plugin>
-->
<plugin>
<groupId>org.bsc.maven</groupId>
<artifactId>maven-processor-plugin</artifactId>
<version>2.2.4</version>
<executions>
<execution>
<id>process</id>
<goals>
<goal>process</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<processors>
<processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor>
</processors>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jpamodelgen</artifactId>
<version>${hibernate.version}</version>
</dependency>
</dependencies>
</plugin>
pom.xml μ€μ μ λ³κ²½νμΌλ©΄ λ€μ λͺ λ Ήμ΄λ₯Ό μ€ννλ€.
$ mvn generate-sources
μ΄ λͺ λ Ήμ΄λ₯Ό μ€ννλ©΄ target/generate-sources/apt ν΄λμ λ©νλͺ¨λΈ ν΄λμ€κ° μμ±λλ€.
μμ μ€ν
νλ‘μ νΈ ν΄λμμ λ€μ λͺ λ Ήμ΄λ‘ μμ λ₯Ό μ€ννλ€.
$ mvn spring-boot:run
http://localhost:8080μ μ μνλ©΄ κ²°κ³Ό νλ©΄μ λ³Ό μ μλ€.