Spring Boot JPA(2.x.x 기준)에서 사용 가능한 Connection Pool은 아래의 3가지가 있습니다. HikariCP Tomcat pooling Datasource Commons DBCP2 Spring Boot 1.x.x 에서는 Tomcat을 Default로 사용하였으나 Spring Boot 2.0.0 에서부터 default JDBC connection pool(이하 'CP')을 Tomcat에서 HikariCP로 변경하였습니다. 그래서 spring-boot-starter-jdbc, spring-boot-starter-data-jpa를 사용하면, HikariCP(가장 높음) -> Tomcat pooling -> Commons DBCP2 의 우선 순위로 CP가 적용 됩니다. 위의 우선순위를..
API 요청의 처리가 오래 걸리게 되면, java.net.SocketTimeoutException 가 발생합니다. tomcat 문서를 보면, defualt 값은 1분으로 되어 있습니다.( tomcat 8.5 버전 기준 ) Spring의 property 파일( application.yaml )의 timeout 시간을 늘려주면 됩니다. -1을 설정하면 timeout이 무한대가 되어 timeout이 발생하지 않습니다. 그렇지 않으면 ms 단위로 원하는 시간을 입력해주면 됩니다. server: tomcat: connection-timeout: -1
목차 ComponentScan 이란? @ComponentScan은 스프링부트에서 제공하는 어노테이션으로써, 스프링 빈으로 만들기 위한 컴포넌트를 스캔할 곳을 설정하는 역할을 합니다. 스프링에서는 여러 빈들을 관리하면서 의존성을 주입해 주는데 이때 전체 코드에서 컴포넌트를 찾아 빈을 생성하는 것이 아니라 범위를 지정하여 그 범위 안에서 어노테이션 된 클래스들을 찾아 빈을 생성 및 관리합니다. 빈으로 등록하기 위해 스캔하는 어노테이션은 @Component, @Repository, @Service, @Controller, @Configuration 가 있습니다. com.example.component.SlideComponent와 com.example.component2.BarComponent가 있는데 둘은 서..
목차 Query 클래스 쿼리를 작성하기 이전에 몇 가지 인터페이스와 클래스에 대해 간단히 살펴보겠습니다. JPQLQuery 인터페이스는 JPQL 쿼리를 위한 Query 인터페이스이며, JPAQuery 클래스는 JPQLQuery 인터페이스를 구현한 클래스이며, 쿼리를 작성하고 실행하는 역활을 합니다. JPAQueryFactory도 JPAQuery를 생성해주는 factory클래스입니다. 결국은 JPAQuery를 사용하든, JPAQueryFactory를 사용하든 JPAQuery를 사용하는건 마찬가지 이지만, JPAQuery를 생성할 때 누가 더 간략하나 정도의 차이가 있어 코드 가독성 측면에서 Factory를 사용하는 것이 더 좋고, 많은 snippets 코드들이 Factory를 사용하므로 Factory를 사..
starter-test 의존성도 잘 추가가 되어있고, 테스트 코드도 test/java 경로에 잘 들어가 있는데, IntelliJ에서 아래 테스트 코드를 수행하면 junit 패키지를 찾지 못한다는 에러가 발생하는 경우가 있습니다. import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; import org.springframework.test.context.junit4.SpringRunner; import static org...
Springboot에서 컨트롤러를 개발하면, JSON으로 값을 받아 Java Object에 값을 저장하고, 반대로 Java Object 값을 JSON 으로 변환해서 응답으로 주는 경우가 많다.( 또는 XML ) 직접 String 으로 JSON 을 만들거나, JSON 값을 Java Object에 일일히 값을 설정해줘도 되지만 Spring과 Jackson 라이브러리를 함께 사용하면, JSON POJO 간 변환을 알아서 해준다. POJO : Plain Old Java Object의 약자로 특정 자바 모델이나 기능, 프레임워크를 따르지 않는 순수? 자바 오브젝트 이다. Jackson : Java를 위한 고성능 JSON 라이브러리이다. Spring에서는 기본으로 탑재가 되어있다. POJO 먼저, JSON 값을 저..
@EnableScheduling @SpringBootApplication public class ScheduleApplication { public static void main(String[] args) { SpringApplication.run(ScheduleApplication.class, args); } } 먼저, background task executor 를 생성하기 위해 @EnableScheduling 을 추가합니다. 이 annotation 이 없으면, @Scheduled에 의해 task가 동작하지 않습니다. @Component @Log public class ScheduledTasks { @Scheduled(fixedDelay = 10000) public void runEvery10Sec(..
- Total
- Today
- Yesterday
- docker
- Postman
- AWS
- Index
- tomcat
- spring
- elasticsearch
- JPA
- Git
- gradle
- Container
- Size
- scala
- spring boot
- mac
- install
- Linux
- Spark
- Filter
- JSON
- error
- Kibana
- maven
- SpringBoot
- intellij
- plugin
- apm
- Java
- logstash
- Log
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |