boot
-
spring boot 세션만료 감지IT/spring 2021. 4. 22. 16:41
spring boot 세션 만료 감지 @Slf4j @Component public class SessionSestoryListener implements ApplicationListener { @Autowired ActionHistoryRepository actionHistoryRepository; @Override public void onApplicationEvent(SessionDestroyedEvent event) { List securityContexts = event.getSecurityContexts(); log.debug("--->{}, {}", event, securityContexts); for (SecurityContext sc: securityContexts) { log.debug(..
-
spring data jpa @Entity schema, catalog properties처리하기.IT/spring 2021. 3. 24. 16:49
spring data jpa @Entity schema, catalog properties처리하기. @Component @Slf4j public class HibernateInterceptor extends EmptyInterceptor { private static Environment env; public HibernateInterceptor() { } @Autowired public HibernateInterceptor(Environment env) { this.env = env; } @Override public String onPrepareStatement(String sql) { if (null != env) { String regEx = "\\$\\{([\\\\.\\w_-]+)\\}"; Pa..
-
spring boot 로컬에서 smtp mail 테스트하기IT/spring 2021. 2. 18. 11:11
로컬에서 smtp mail 테스트 하는 방법 입니다. maildev docker 준비 docker run -p 80:80 -p 25:25 maildev/maildev dependencies { ... implementation 'org.springframework.boot:spring-boot-starter-mail' } test { ... String activeProfile = System.properties['spring.profiles.active'] println "zone: $activeProfile" systemProperty "spring.profiles.active", activeProfile } build.gradle @Slf4j @Configuration public class Cor..
-
logback 5분 마다 logfile 생성하기IT/spring 2021. 2. 5. 12:41
안녕하세요고객사의 요청으로 5분마다 logfile을 남겨야할 상황이 있어서 공유합니다. logback.xml log/%d{yyyyMMdd, aux}/${serviceName}.%d{yyyyMMddHHmm}.log @Component public class FiveMinAppender extends RollingFileAppender { public static ProjectProperties projectProperties; private static long nextMillis = -1; private int rollOverTimeInMinutes = 5; @Autowired public void setProjectProperties(ProjectProperties projectProperties) {..
-
spring boot swagger settingIT/spring 2021. 2. 5. 12:13
@Configuration @EnableSwagger2 public class SwaggerConfig { @Value("${project.properties.swagger-host}") private String swaggerHost; @Autowired ServerProperties serverProperties; @Autowired private TypeResolver typeResolver; @Bean public Docket api(TypeResolver typeResolver) { ResolvedRecursiveType resolvedRecursiveType = new ResolvedRecursiveType(Integer.class, null); Optional typeInt = Optiona..
-
spring boot 에서 JOOQ 사용시, 구동 1분이상 느려짐 현상 (버그)IT/spring 2021. 2. 4. 15:32
spring boot 에서 JOOQ사용시 구동 1분이상 느려짐 현상 (버그) 1. 현상 boot 구동시에 80초이상 느려짐 발생 2. 윈인점 파악 AOP쪽 execution 표현식에 따른 JOOQ와의 버그 https://github.com/jOOQ/jOOQ/issues/5902 @Aspect @Component @Order @Slf4j public class CheckHeaderAOP { @Before("execution(* com.omnicns.omnifit2.api.controller..*Controller.*(..))") public void checkHeaderBefore(JoinPoint joinPoint) throws IOException { log.debug("AOP"); } } aspect..
-
JWT Token을 spring security에서 손쉽게 검증하기 위한 방법IT/spring 2021. 1. 26. 15:21
안녕하세요 JWT Token를 Controller에서 손쉽게 검증하기 위한 점진적 발자취입니다. 0. JWT Token 검증 - spring security 쪽에 Filter를 걸어 이미 Token 검증을 하고있음 1. 문제 인식 (상황) - 사용자가 접근 가능한 URL @PathVariable 에만 접속 가능하도록 하고싶다. 2. PermissionEvaluator 처리. - https://www.baeldung.com/spring-security-create-new-custom-security-expression public class CustomMethodSecurityExpressionRoot extends SecurityExpressionRoot implements MethodSecurityEx..
-
spring boot 다중 커넥션 multiple dataSource + hikariIT/spring 2020. 9. 30. 03:41
구성 Database1 = d1 Database2 = d2 build.gradle plugins { id 'org.springframework.boot' version '2.3.4.RELEASE' id 'io.spring.dependency-management' version '1.0.10.RELEASE' id 'java' } group = 'com.khh' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' configurations { compileOnly { extendsFrom annotationProcessor } } repositorie..