본문 바로가기

Develop/Spring˙Spring Boot15

[Spring] 컴포넌트 탐색, 의존관계 주입과 서비스 로케이터 스프링 애플리케이션에서 빈을 등록하는 방식은 두 가지로 나눌 수 있다. 빈으로 등록될 클래스의 물리적 위치와 무관하게, 환경설정 클래스에서 직접 하나하나 빈으로 등록하기 그냥 빈의 존재를 플래그로 표시하기만 하고, 나머지는 스프링이 컴포넌트 탐색(Component Scanning)을 통해 자동으로 빈을 찾아내 등록하게 하기. 스프링 애플리케이션이 실행되면 모든 빈은 애플리케이션 컨텍스트(Application Context)에 등록된다. 스프링 애플리케이션에서는 의존관계 주입(DI, Dependency Injection)을 사용한다. 의존관계 주입 개념이 없던 2000년대 초반에는 서비스 로케이터(Service Locator) 패턴을 사용해서 서비스를 식별 가능한 어떤 주소와 함께 등록하고, 그 주소를 통.. 2023. 3. 7.
[Spring Boot] 애플리케이션 배포하기 다루는 내용 - WAR 파일 배포 - 클라우드에 배포 애플리케이션 서버에 배포하기 WAR 파일 생성하기 war 파일 생성 후 톰캣 등 서버에 올려서 사용한다. java -jar build/libs/readingList-0.0.1-SNAPSHOT.war 클라우드에 배포하기 PaaS 클라우드를 이용해 배포를 한다. 가장 유명한 플랫폼인 '클라우드 파운드리'와 '헤로쿠'에 배포할 것이다. 가 책의 내용이지만... 요즘 트렌드와 거리가 먼 것 같아서 가볍게 읽고 넘어간다. 도커를 안 쓸 때인가 아무튼 배포 라인은 따로 공부할 예정이다. 2023. 2. 18.
[Spring Boot] 액추에이터로 내부 들여다보기 - 2 다루는 내용 - 액추에이터 원격 셸에 접속하기 - 액추에이터 보안 원격 셸을 이용해 접속하기(DEPRECATED) 엔드포인트를 이용한 방법 말고도 원격 셸을 이용하면 작동 중인 애플리케이션의 내부를 알 수 있다. 스프링 부트는 CRaSH를 내장하고 있는데 이 셸은 어떤 자바 애플리케이션에서든 내장할 수 있다. 또 스프링 부트는 액추에이터의 엔드포인트와 거의 동일한 기능을 스프링 부트에 특화된 명령으로 제공하려고 CRaSH를 확장했다. 쩝... 대략 18년 이후부터 deprecated 되었나보다. 이런 방법이 있었다~ 액추에이터 사용자화하기 엔드포인트 ID 변경하기 management: endpoints: shutdown: id: kill 엔드포인트 활성화/비활성화하기 management: endpoint.. 2023. 2. 17.
[Spring Boot] 액추에이터로 내부 들여다보기 - 1 다루는 내용 - 액추에이터 웹 엔드포인트 - 액추에이터 조정 액추에이터의 엔드포인트 살펴보기 애플리케이션을 먼저 기동한 후 http://localhost:8080/actuator 에 접속하면 웹 환경의 기본으로 적용되는 엔드포인트를 확인할 수 있다. 기본적으로 웹 환경에서는 health, info가 제공된다. { "_links": { "self": { "href": "http://localhost:8080/actuator", "templated": false }, "health": { "href": "http://localhost:8080/actuator/health", "templated": false }, "info": { "href": "http://localhost:8080/actuator/inf.. 2023. 2. 7.
[Spring Boot] 스프링 부트 테스트하기 다루는 내용 - 통합 테스트 - 서버에서 애플리케이션을 테스트하는 방법 - 스프링 부트 테스트 유틸리티 ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆ 6년 전 기술이므로 현재 용어가 많이 바뀌었다. 흐름만 파악하고 공식문서를 참고하여 개발하도록하자. https://spring.io/guides/gs/testing-web/ ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆ 통합 테스트를 위한 자동 구성 스프링 애플리케이션 컨텍스트를 로드하고 테스트 클래스에 자동으로 주입하는 기능을 확성화하는 JUnit 클래스 러너인 SpringJUnit4ClassRunner를 제공하는 형태로 통합 테스트를 지원한다. @RunWith(SpringJUnit4ClassRunner.class) @SpringApplicationC.. 2023. 2. 5.
[Spring Boot] 구성을 사용자화하기 다루는 내용 - 자동 구성된 빈을 오버라이드 하는 방법 - 외부 프로퍼티를 이용하여 구성하는 방법 스프링 부트 자동 구성 오버라이드 하기 스프링 부트가 미리 구성한 빈을 명시적으로 오버라이드 하는 방법과 프로퍼티를 세밀하게 구성하는 방법을 알아본다. 대체로 자동 구성된 빈은 원하는 것을 정확하게 제공하므로 오버라이드할 필요가 없다. 하지만 자동 구성으로 원하는 기능이 잘 작동하지 않을 때도 있다. 예를 들어 보안 같은 경우 한 번에 완성할 수 없고 상세한 보안 요구 사항을 오버라이드해야 한다. 대표적으로 spring security 가 있다. 다양한 자동 구성을 커스텀하여 사용할 수 있다. package readinglist; import ... // 생략 @Configuration @EnableWebS.. 2023. 2. 3.
[Spring Boot] 스프링 부트 애플리케이션 개발하기 스프링 부트 사용하기 @SpringBootApplication 애너테이션은 스프링 컴포넌트 검색과 스프링 부트 자동 구성을 활성화한다. 아래 세 가지 구성을 묶은 애너테이션이다. - @Configuration: 애너테이션이 붙은 클래스를 스프링의 자바 기반 구성 클래스로 지정한다. - @ComponentScan: 컴포넌트 검색 기능을 활성화해서 웹 컨트롤러 클래스나 다른 컴포넌트 클래스들을 자동으로 검색하여 스프링 애플리케이션 컨텍스트에 빈으로 등록시킨다. - @EnableAutoConfiguration: 이 구성 한 줄로 스프링의 수맣은 구성 코드를 대체할 수 있다. 스타터 의존성 사용하기 빌드 플러그인의 주 기능: 프로젝트를 실행 가능한 우버 JAR로 패키징하는 것이다. 우버 JAR패키징 작업으로 애.. 2023. 1. 26.