본문 바로가기

Spring Boot

(3)
WSL2에서 윈도우 로컬 스프링 서버로 통신하기 이 글에서 WSL2 윈도우11 터미널 기본 프로필로 설정했었다. 단순히 PowerShell을 쓰기 싫어서 설정한 건 아니었고 윈도우라는 환경이 VisualStudio로 C++ 소켓 프로그래밍을 할 때를 제외하고는 그다지 개발자 친화적이지 않아서 불편하다. jline 라이브러리가 시스템 터미널을 사용하게 해서 동작하게 만들어야 하는데 PowerShell, CMD 모두 잘 안 됐다. 더 알아 보면 방법이 있을 순 있겠으나 그냥 WSL2로 하는 게 마음이 편하다. 어쨌든 콘솔 클라이언트를 WSL2로 지정하고 윈도우에서 동작하는 스프링 웹 소켓 서버에 연결하니 연결이 안 됐다. git bash로 지정하니까 잘 됐다. 아, WSL2에서 윈도우와 통신을 못하고 있구나. Hyper-VWSL2 설정할 때 Hyper-V..
[IntelliJ] 타임리프 및 클래스 변경 핫 리로드 적용하기 application.yml spring thymeleaf: cache: false devtools: livereload: enabled: true restart: enabled: true 디펜던시에 devtools도 꼭 추가해주자. IntelliJ 메뉴 상단 Run -> Edit Configurations Modify optinos를 클릭해서 On 'Update' action과 On frame deactivation 에서 Update classes and resources를 해주면 된다. 새로고침 하면 타임리프와 클래스의 변경사항을 감지해서 서버 리스타트 혹은 리로드를 한다.
@Configuration 테스트 코드를 작성하는데, 클래스에 @Configuration을 붙이지 않아도 getBean 메서드로 빈이 획득됐다. 관련 내용을 찾아 보니 공식 문서에 꽤나 친절하게 설명이 있었다. https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/Bean.html 요약하자면 @Configuration이 붙은 클래스는 정식 스프링 빈이 된다. 해당 클래스를 부모 클래스로 하는 CGLIB(라이브러리)가 적용된 서브 클래스가 반환된다. 정식 스프링 빈으로 싱글톤으로 동작한다. 클래스와 메서드는 final이나 private으로 선언되면 안 된다. 싱글톤 동작은 다음 테스트 코드가 통과하는 ..