Framework & Runtime/Spring 6

Initialized JPA EntityManagerFactory for persistence unit 'default' Stuct 문제 해결

2021-09-28 09:44:56.028 INFO 24956 --- [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 위의 메세지는 에러가 아닙니다. 하지만 Spring Application 를 Run 또는 Debug 할 경우 저 부분에서 계속 멈춰있게 됩니다. 해결 빌드 결과물에 문제가 생겼던 것 같습니다. gradle clean -> build 이후에 해결 되었습니다.

RestTemplate 와 ObjectMapper 활용기(스프링에서 다른 서버의 JSON API Token 을 가져와서 이용해야 할 때)

우선 API 서버의 스펙을 확인하고 data class 를 만들어 줍니다. data class GetToken( val responseCode: String, val token: String ) Http Request 이후 Json 을 담아줄 클래스에 아래 내용을 추가해 줍니다. @Autowired lateinit var restTemplate: RestTemplate var mapper: ObjectMapper = ObjectMapper().registerModules(KotlinModule()) 펑션을 하나 만드셔서 안에 아래 내용을 작성하기 시작합니다. val headers = HttpHeaders() headers.contentType = MediaType.APPLICATION_JSON conte..

Kotlin Spring Boot 에 Querydsl 종속성이 추가된 프로젝트 소스 공유

스프링 이니셜라이저에는 왜 querydsl 이 없는가! 그래서 제가 공개 템플릿 레포를 하나 만들었습니다. https://github.com/Kuass/Kotlin-Spring_Boot-Example GitHub - Kuass/Kotlin-Spring_Boot-Example: Why isn't there a querydsl in the spring initializer! Why isn't there a querydsl in the spring initializer! - GitHub - Kuass/Kotlin-Spring_Boot-Example: Why isn't there a querydsl in the spring initializer! github.com

Spring Boot REST API Spring Security 고유키 만들어서 접근 제한하기(api key and secret)

망 자체는 공용망을 사용하지만, 접근은 특정 인증키를 확인하여 접근을 가능토록 구현을 하고 싶었습니다. 구글에 일반적으로 Spring Security API Key 등을 검색하면 JWT 등과 로그인.. 비밀번호 와 같은 포스팅이 검색됩니다. 이 포스팅에서는 해당 내용이 아니니, 참고 바랍니다. 해당 포스팅은 https://stackoverflow.com/questions/48446708/securing-spring-boot-api-with-api-key-and-secret 해당 글을 인용하였으니 참고 바랍니다. 1. APIKeyAuthFilter.java 를 만들어줍니다. 필자 같은 경우는 이러한 경로에 만들었습니다. 2. 아래와 같이 시큐리티 필터 코드를 작성해줍니다. import org.springf..

[Querydsl] 하나의 응답을 원할 때, exist 사용을 자제하자.

우선, 제가 아는 지식내에서는 exist 메소드를 사용함으로 얻는 이점이 없으므로 작성한 내용입니다. 1 2 3 4 5 6 7 8 public Boolean memberExists(Long memberId) { Integer findMember = queryFactory .selectOne() .from(member) .where(member.memberId.eq(memberId)) .fetchFirst(); return findMember != null; } Colored by Color Scripter cs 위처럼 fetchFirst() 를 이용하자. limit(1) 과 동일한 개념이며 사용시 원하는 결과를 찾을경우 쿼리가 종료되기 때문에 성능에 도움이 된다. exist()를 사용할경우 select에..

[Querydsl] 동적 쿼리를 BooleanExpression 으로 작성하기

우선 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 @Override public List findDynamicQuery(String name, String age, String phoneNumber) { BooleanBuilder builder = new BooleanBuilder(); if (!StringUtils.isEmpty(name)) builder.and(member.name.eq(name)); if (!StringUtils.isEmpty(age)) builder.and(member.age.eq(age)); if (!StringUtils.isEmpty(phoneNumber)) builder.and(member.phoneNumber.eq(phoneNumbeR)); retu..