Skip to content

Commit

Permalink
Feature | #2 | @lcomment | domain 모듈 초기 세팅
Browse files Browse the repository at this point in the history
  • Loading branch information
lcomment committed Apr 19, 2024
1 parent d0a83ec commit 5e2c396
Show file tree
Hide file tree
Showing 6 changed files with 155 additions and 0 deletions.
50 changes: 50 additions & 0 deletions cakk-domain/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
//plugins {
// id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
//}

description = "domain module"

dependencies {
implementation(project(':cakk-common'))

// jpa
implementation('org.springframework.boot:spring-boot-starter-data-jpa')
implementation 'io.hypersistence:hypersistence-utils-hibernate-5:3.5.2'

// querydsl
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor 'com.querydsl:querydsl-apt:5.0.0:jakarta'
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"

// database
runtimeOnly 'com.mysql:mysql-connector-j'
runtimeOnly 'com.h2database:h2'
}

//def querydslDir = layout.buildDirectory.dir("generated/querydsl").get().asFile
//
//querydsl {
// jpa = true
// querydslSourcesDir = querydslDir
//}
//sourceSets {
// main.java.srcDir querydslDir
//}
//compileQuerydsl {
// options.annotationProcessorPath = configurations.querydsl
//}
//configurations {
// compileOnly {
// extendsFrom annotationProcessor
// }
// querydsl.extendsFrom compileClasspath
//}

bootJar {
enabled = false
}

jar {
enabled = true
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.cakk.domain.config;

import javax.sql.DataSource;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;

@Configuration
public class DataSourceConfig {

@Bean
@ConfigurationProperties(prefix = "storage.datasource.core")
public HikariConfig hikariConfig() {
return new HikariConfig();
}

@Bean
@Primary
public DataSource dataSource() {
return new HikariDataSource(hikariConfig());
}
}
15 changes: 15 additions & 0 deletions cakk-domain/src/main/java/com/cakk/domain/config/JpaConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.cakk.domain.config;

import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@Configuration
@EnableJpaAuditing
@EnableTransactionManagement
@EntityScan("com.cakk.domain.entity.**")
@EnableJpaRepositories("com.cakk.domain.repository.**")
public class JpaConfig {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.cakk.domain.config;

import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.querydsl.jpa.JPQLTemplates;
import com.querydsl.jpa.impl.JPAQueryFactory;

@Configuration
public class QuerydslConfig {

@PersistenceContext
private EntityManager entityManager;

@Bean
public JPAQueryFactory queryFactory() {
return new JPAQueryFactory(JPQLTemplates.DEFAULT, entityManager);
}
}
24 changes: 24 additions & 0 deletions cakk-domain/src/main/java/com/cakk/domain/entity/AuditEntity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.cakk.domain.entity;

import java.time.LocalDateTime;
import jakarta.persistence.Column;
import jakarta.persistence.EntityListeners;
import jakarta.persistence.MappedSuperclass;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import lombok.Getter;

@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public class AuditEntity {

@CreatedDate
@Column(updatable = false)
private LocalDateTime createdAt;

@LastModifiedDate
@Column
private LocalDateTime updatedAt;
}
21 changes: 21 additions & 0 deletions cakk-domain/src/main/resources/db-local.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
spring.config.activate.on-profile: local

spring:
jpa:
open-in-view: false
hibernate:
ddl-auto: update
properties:
hibernate:
format_sql: true
show_sql: true

storage:
datasource:
core:
jdbc-url: jdbc:mysql://localhost:3306/cakk
username: cakk
password: Cakkproject1!
driver-class-name: org.mysql.Driver
data-source-properties:
rewriteBatchedStatements: true

0 comments on commit 5e2c396

Please sign in to comment.