본문 바로가기

스프링4

[SpringBoot] 멀티모듈 구조에서, 다른 모듈의 테스트 클래스 사용하기 Gradle Test Fixture 사용해서 테스트 중복코드를 줄일 수 있어요. 멀티모듈 구조에서 다른 모듈의 Test 폴더를 사용할 수 없으니, 중복되는 클래스가 각각의 모듈의 Test 폴더에 포함되었어요. 저는, Gralde 멀티모듈 구조에서, 의존을 하는 모듈의 Test 폴더까지 사용하고 싶었어요. 이때 사용할 수 있는 것이 Gradle Test Fixture입니다 ㅎㅎ TestFixutre 적용 먼저 test fixture를 사용할 모듈에서 testfixture 의존성을 넣어요. (domain-cvi/build.gradle) plugins{ id 'java-library' //**new**!! id 'java-test-fixtures' //**new**!! id .. 2021. 11. 2.
[Spring] Bean 생명주기 콜백 콜백이란 어떤 이벤트가 발생했거나 특정 시점에 도달했을 때 시스템에서 호출하는 함수를 말해요. Bean 생명주기 콜백(Bean LifeCycle Callback)이란 단어를 들으면, 머릿속에 딱 와닿는 느낌이 없는듯해요. 각 단어에 많은 의미가 있기 때문이라 생각해요. 생명주기 콜백을 알아보기 전 각 용어에 대해 짚고 가볼 필요가 있어요. 스프링 빈 (Spring bean) 빈 또는 빈 객체는 스프링이 IoC 방식으로 관리하는 오브젝트라는 뜻이에요. 주의할 점은 스프링을 사용하는 애플리케이션에서 만들어지는 모든 객체가 다 빈은 아니라는 사실이에요. 그중에서 스프링이 직접 생성과 제어를 담당하는 객체만을 빈이라고 불러요. Bean 생명주기 Bean 객체가 생성되어 소멸하기 전까지의 모든 과정을 이르는 말이.. 2021. 8. 20.
[Spring] 애플리케이션 컨텍스트 애플리케이션 컨텍스트 오브젝트 팩토리(직접 설정 정보를 넣어주는 것, DaoFactory)에 대응하는 것이 스프링의 애플리케이션 컨텍스트예요. 스프링에서는 이 애플리케이션 컨텍스트를 IoC컨테이너라 하기도 하고, 간단히 스프링 컨테이너라고 부르기도 해요. 또는 빈 팩토리라고 부르기도 해요. ApplicationContext는 빈 팩토리가 구현하는 BeanFactory 인터페이스를 상속했으므로, 같이 봐도 괜찮아요. 특정 클래스를 설정정보를 등록하고, @Bean이 붙은 메소드의 이름을 가져와 빈 목록을 만들어줘요. 애플리케이션 컨텍스트의 getBean() 메소드를 호출하면 자신의 빈 목록에서 요청한 이름이 있는지 찾고, 있다면 빈을 생성하는 메소드를 호출해서 오브젝트를 생성시킨 후 클라이언트에게 돌려줘요... 2021. 5. 13.
[SpringBoot] HttpSession 대신 HandlerMethodArgumentResolver 사용하기 HandlerMethodArgumentResolver란? HandlerMethodArgumentResolver는 사용자 요청이 Controller에 도달하기 전에 그 요청에 포함된 파라미터들을 수정할 수 있게 해주는 역할을 해요. Controller에서 @RequestBody 어노테이션을 사용해 Request의 Body 값을 받아올 때, @PathVariable 어노테이션을 사용해 Request의 Path Parameter 값을 받아올 때 이 HandlerMethodArgumentResolver를 사용해서 값을 받아온다고 해요. 1. HttpSession을 @LoginUser로 변경하기 @PostMapping public ResponseEntity saveChess(@RequestBody final Ch.. 2021. 5. 3.