Spring 5

[java] Tomcat server.xml에서 커넥션 풀 설정하기

Spring Boot에서는 간단하게 appliation.yml 파일에서 DB 커넥션 설정이 가능한데...안타깝게 레거시를 사용하는 우리 회사는 톰캣을 까고... xml 파일을 수정해야 하는 슬픈 상황이 있다...server.xml과 applicationContext.xml을 이용해JDBC 커넥션 풀(Connection Pool) 을 설정하고 연결해야 했는데,이번 글에서는 그 방법과 커넥션 풀의 개념까지 정리하려고 합니다.1. server.xml에서 커넥션 풀(DataSource) 설정Tomcat의 server.xml 파일에 를 추가해서커넥션 풀을 정의합니다.server.xml 예시 maxIdle="10" minIdle="5" initialSize="5" maxWaitMillis="10000..

[Spring] @Async

최근 재고 업무 때문에 블로그에 소홀했다. 업무를 하며 기록해야 할 것은 많았지만 정작 그러지 못해서 아쉽다. 재고를 테이블에 insert 하며 한번에 대량의 트래픽이 발생하여 생기는 문제를 방지하기 위해 Async를 사용하고 있다. @Async Async 어노테이션은 스프링에서 제공하는 Thread Pool을 사용하는 비동기 메소드 지원 어노테이션이라고 한다. 사용 방법은 Class에 @EnableAsync 어노테이션을 추가하고, @EnableAsync @SpringBootApplication public class SpringBootApplication { ... } 사용하고자 하는 메소드에 다음과 같이 어노테이션을 사용하면 된다. public class GillogAsync { @Async publ..

[Spring] @CacheEvict

@Caching(evict = { @CacheEvict(value="", key="", beforeInvocation = true) }) 다음과 같은 어노테이션이 메소드에 선언되어 있었을 때, 에러 없이 실행은 되었지만 아무런 결과가 나오지 않았다. 결론은 실행되지 않았던 것이다. 이는 beforeInvocation = true 때문이었다. beforeInvocation 속성으로 메서드 실행 이후(기본값)나 이전에 제거를 해야 하는 지를 지정할 수도 있다. 메서드 실행 이후에 실행되는 경우는 다른 어노테이션과 같은 의미를 가져서 메서드가 성공적으로 완료되면 캐시에서 동작(여기서는 제거)이 실행된다. 메서드가 실행되지 않거나(캐시 되어서) 예외가 던져지면 제거가 실행되지 않는다. 메서드 실행 이전에 실행되..

[JUnit5] No ParameterResolver registered for parameter 에러

JUnit으로 테스트를 하던 도중에 다음과 같은 에러가 났다. 새로운 컴포넌트를 만들어서 의존성 주입을 하고 있었고, 불가능하다는 뜻이었다. @RequiredArgsConstructor 로 의존성 주입을 할 때는 불가능했고, @Autowired로 의존성 주입을 할 때는 가능했다. 찾아본 결과 , JUnit은 Spring과 다르기 때문에 생성자 매개변수 관리는 스프링 컨테이너가 JUnit이 하는 것이고, 따라서 생성자에 적당한 매개변수를 DI해야하는 데 그때 파라미터를 찾아줄 적당한 ParameterResolver를 못찾게 된다고 한다. 오류 코드 @Slf4j @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @Requi..

반응형