PostConstruct(2)
-
@PostConstruct와 no EntityManager
에러 메시지 Caused by: javax.persistence.TransactionRequiredException: No EntityManager with actual transaction available for current thread - cannot reliably process 'persist' call 웹 개발중 테스트 데이터를 매 실행마다 입력하기 번거로워서 jpa: hibernate: ddl-auto: create update로 변경할까 하다가, 그냥 애플리케이션이 실행할때마다 샘플 데이터를 저장하기로 했다. 일단 트랜잭션이 걸려있는 Service 단에서 sampleData 메소드를 작성했다. 빈 생성(여기서는 해당 코드가 있는 Service 클래스)과 의존관계 주입이 완료된 다음, sa..
2022.05.31 -
[Spring] 빈(Bean) 생명주기 콜백+ 빈 의존관계 주입 후 콜백
데이터베이스 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면, 객체의 초기화와 종료 작업이 필요하다. 스프링을 통해 이러한 초기화 작업과 종료 작업을 어떻게 진행하는지 예제로 알아보았다. 간단하게 외부 네트워크에 미리 연결하는 객체를 하나 생성한다고 가정해보자. 이 NetworkClient 는 애플리케이션 시작 시점에 connect() 를 호출해서 연결을 맺어두어야 하고, 애플리케이션이 종료되면 disConnect() 를 호출해서 연결을 끊어야 한다. 현재는 생성자에서 connect()를 호출하여 연결을 맺는다. public class NetworkClient { private String url; p..
2022.04.16