Skip to content

Commit

Permalink
Merge pull request #275 from BidderOwn/develop
Browse files Browse the repository at this point in the history
배포 환경
  • Loading branch information
gkfktkrh153 authored Jul 13, 2023
2 parents 844d853 + 58a7735 commit 09ec9de
Show file tree
Hide file tree
Showing 101 changed files with 2,761 additions and 1,648 deletions.
3 changes: 3 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,9 @@ dependencies {
annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa" // querydsl JPAAnnotationProcessor 사용 지정
annotationProcessor "jakarta.annotation:jakarta.annotation-api" // java.lang.NoClassDefFoundError (javax.annotation.Generated) 대응 코드
annotationProcessor "jakarta.persistence:jakarta.persistence-api" // java.lang.NoClassDefFoundError (javax.annotation.Entity) 대응 코드

//swagger-springdoc
implementation 'org.springdoc:springdoc-openapi-ui:1.6.11'
}

tasks.named('test') {
Expand Down
19 changes: 0 additions & 19 deletions src/main/java/site/bidderown/server/ServerApplication.java
Original file line number Diff line number Diff line change
@@ -1,33 +1,14 @@
package site.bidderown.server;

import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Primary;
import org.springframework.core.task.TaskExecutor;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;

@SpringBootApplication
@EnableJpaAuditing
@EnableBatchProcessing
@EnableAsync
public class ServerApplication {

public static void main(String[] args) {
SpringApplication.run(ServerApplication.class, args);//////
}

@Bean
@Primary
TaskExecutor taskExecutor() {
ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
taskExecutor.setCorePoolSize(10);
taskExecutor.setMaxPoolSize(10);
taskExecutor.setThreadNamePrefix("batch-thread-");
taskExecutor.initialize();
return taskExecutor;
}
}
357 changes: 205 additions & 152 deletions src/main/java/site/bidderown/server/base/data/NotProd.java

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import site.bidderown.server.base.exception.ErrorCode;

public class ForbiddenException extends CustomException {
private static final ErrorCode errorCode = ErrorCode.NOT_FOUND;
private static final ErrorCode errorCode = ErrorCode.FORBIDDEN;

public ForbiddenException(String message) {
super(errorCode, message);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package site.bidderown.server.base.redis.buffer;

/**
* Redis buffer에 들어갈 데이터 타입
*/

public interface BufferTask {
Long getId();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package site.bidderown.server.base.redis.buffer;

import java.util.List;

public interface CountBuffer {
void push(CountTask bufferTask);
List<CountTask> popAll();
long size();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package site.bidderown.server.base.redis.buffer;

public interface CountTask extends BufferTask {
CounterTaskType getType();
int getDelta();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package site.bidderown.server.base.redis.buffer;

public enum CounterTaskType {
bid, comment, heart
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package site.bidderown.server.base.redis;
package site.bidderown.server.base.redis.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
package site.bidderown.server.base.redis;
package site.bidderown.server.base.redis.config;

import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.jsontype.BasicPolymorphicTypeValidator;
import com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
Expand All @@ -15,6 +20,8 @@
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import site.bidderown.server.base.redis.buffer.BufferTask;
import site.bidderown.server.base.redis.listener.ExpirationListener;

@RequiredArgsConstructor
@Slf4j
Expand All @@ -34,11 +41,11 @@ public RedisConnectionFactory redisConnectionFactory() {
}

@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
public RedisTemplate<?, ?> redisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<?, ?> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(connectionFactory);
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(String.class));
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
return redisTemplate;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package site.bidderown.server.base.redis;
package site.bidderown.server.base.redis.listener;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,23 +1,29 @@
package site.bidderown.server.base.scheduler;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import site.bidderown.server.bounded_context.item.scheduler.ItemCounterScheduler;
import site.bidderown.server.bounded_context.item.scheduler.ItemCountScheduler;

/**
* Scheduler 를 실행시키는 클래스
*/
@Slf4j
@RequiredArgsConstructor
@Component
@EnableScheduling
public class SchedulerRunner {

private final ItemCounterScheduler itemCounterScheduler;
private final ItemCountScheduler itemCountScheduler;

/**
* 30초마다 아이템 댓글, 입찰 개수 업데이트
* 5초마다 아이템 댓글, 입찰 개수 업데이트
*/
@Scheduled(cron = "0/30 * * * * *")
@Scheduled(cron = "0/5 * * * * *")
public void itemCounterRun() {
itemCounterScheduler.run();
log.info("itemCounterScheduler run");
itemCountScheduler.run();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package site.bidderown.server.base.swagger;

import io.swagger.v3.oas.models.Components;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import org.springdoc.core.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SwaggerConfig {
@Bean
public GroupedOpenApi publicApi() {
return GroupedOpenApi.builder()
.group("v1")
.pathsToMatch("/api/**")
.build();
}

@Bean
public OpenAPI openAPI() {
Info info = new Info()
.title("BidderOwn API Document")
.version("v0.0.1")
.description("비더원 프로젝트 API 명세서입니다.");
return new OpenAPI()
.components(new Components())
.info(info);
}
}
21 changes: 21 additions & 0 deletions src/main/java/site/bidderown/server/base/util/BeanUtils.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package site.bidderown.server.base.util;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;

@Component
public class BeanUtils implements ApplicationContextAware {
private static ApplicationContext applicationContext;

@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
BeanUtils.applicationContext = applicationContext;
}

public static <T> T getBean(Class<T> clazz){
return applicationContext.getBean(clazz);
}
}

34 changes: 0 additions & 34 deletions src/main/java/site/bidderown/server/batch/BatchScheduler.java

This file was deleted.

Loading

0 comments on commit 09ec9de

Please sign in to comment.