FrameWork/Spring&Spring-boot
-
Spring Boot API - Spring SecurityFrameWork/Spring&Spring-boot 2024. 2. 21. 16:45
Spring Security spring 기반 애플리케이션 보안(인증, 권한)을 처리하는 프레임워크 https://spring.io/projects/spring-security implementation group: 'org.springframework.boot', name: 'spring-boot-starter-security', version: '3.1.5' RESTful API에서는 어플리케이션의 인증 처리를 위해서는 다양한 방식이 있는데 Oauth, Token, 아이디-비밀번호 등을 통해서 인증을 할 수 있다. 스프링 시큐리티가 적용된 상태에서 security password 없이 전체 user를 조회하는 위와 같은 uri를 호출하면 401 Unauthorized와 같은 오류가 발생하는 것을 확인..
-
Spring Boot API - Swagger, Actuator, HAL ExplorerFrameWork/Spring&Spring-boot 2024. 2. 21. 14:41
Swagger + Spring Boot 3.x implementation group: 'org.springdoc', name: 'springdoc-openapi-starter-webmvc-ui', version: '2.2.0' @OpenAPIDefinition( info = @Info(title = "My Resful Service API 명세서", description = "Spring Boot로 개발하는 RESTful API 명세서 입니다.", version = "v1.0.0" ) ) @Configuration @RequiredArgsConstructor public class SwaggerConfig { @Bean public GroupedOpenApi customTestOpenAPI(){ Stri..
-
Spring Boot API - User Service, Exception Handing...FrameWork/Spring&Spring-boot 2024. 2. 19. 12:24
User Service 도메인 도메인 각 회사들이 가지고 있는 도메인을 뜻하는게 아니라 도메인 knowledge라고 해서 비지니스 서비스에서 사용되는 업무 영역, 업무 규칙, 업무 지식을 의미한다. User도메인 사용자 정보를 어떤 형태,어떤 구조로 저장할지 어떤 데이터를 저장할지에 대해 설계를 하고 사용자에 아이디, 이름, 가입 날짜와 같은 것들이 들어 갈 것이다. UserDaoService.java @Component public class UserDaoService { } 스프링 컨텍스트에 Component로 등록 스프링 컨텍스트가 이해할 수 있는 빈의 유형을 등록하는 것이다. Retrieve User resource @RestController public class UserController {..
-
SpringBoot - Bean추가, Configuration, Path VariableFrameWork/Spring&Spring-boot 2024. 2. 19. 09:38
Bean추가 Java 형태의 Bean으로 반환시켜주는 메소드 @RestController public class HelloWorldController { //GET //URI - /hello-world //@RequestMapping(method=RequestMethod.GET, path="/hello-world") @GetMapping(path = "/hello-world") public String helloWorld(){ return "Hello World"; } @GetMapping(path = "/hello-world-bean") public HelloWorldBean helloWordBean(){ return new HelloWorldBean("Hello World"); } } 두번 째 메서드..
-
SpringBoot - SpringBoot API 시작하기FrameWork/Spring&Spring-boot 2024. 1. 31. 14:51
SpringBoot API 시작하 Spring Boot의 장점 스프링 부트 어플리케이션은 최소한의 설정 작업만으로도 바로 실행하 수 있다. 스프링 부트가 단독 실행형 프로덕션 등급의 스프링 어플리케이션을 생성할 수 있는 이유는 스프링 부트안에 Java 진영에서 일반적으로 많이 사용하는 WAS Tomcat이 내장형으로 이미 탑재 되어 있기 때문이다. 이외에도 Jetty라든가 Undertow라는 웹 어플리케이션 서버를 내장하고 있기 때문에 실행을 위해서 별도의 서버를 설치할 필요가 없고, 기본적으로 스프링 부트 어플리케이션을 실행하는 것만으로도 웹 어플리케이션을 실행할 수 있게되는 것이다. 물론 개발된 스프링 부트 어플리케이션은 별도의 스프링 MVC 어플리케이션과 마찬가지로 WAR파일, 다시 말해서 웹 아카..
-
스프링 MVC 2 - 메시지, 국제화(소개, 스프링 메시지 소스 설정)FrameWork/Spring&Spring-boot 2023. 12. 7. 13:20
메시지, 국제화 소개 메시지 상품명이라는 단어를 모두 상품이름으로 고쳐달라고 하면 어떻게 해야할까? → 여러 화면에 보이는 상품명, 가격, 수량 등 `label`에 있는 단어를 변경하려면 다음 화면들을 다 찾아가서 모두 변경해야 한다. 지금 처럼 화면 수가 적으면 문제가 되지 않지만 화면이 수십개 이상이라면 수십개의 파일을 고쳐야 한다. `addForm.html`, `editForm.html`, `item.html`, `item.html` 왜냐하면 해당 HTML 파일에 메시지가 하드코딩 되어 있기 때문이다. 이런 다양한 메시지를 한 곳에서 관리하도록 하는 기능을 메시지 기능이라고 한다. 예를 들어서`messages.properteis`라는 메시지 관리용 파일을 만들고 item = 상품 item.id = ..
-
Spring 기본 37 - 웹 스코프(request스코프 예제 만들기)FrameWork/Spring&Spring-boot 2023. 11. 30. 14:39
웹 스코프 웹 스코프의 특징 웹 스코프는 웹 환경에서만 동작한다. 웹 스코프는 프로토타입과 다르게 해당 스코프의 종료시점까지 관리한다. 따라서 종료 메서드가 호출된다. 웹 스코프 종류 request : HTTP 요청 하나가 들어오고 나갈 때 까지 유지되는 스코프, 각각의 HTTP 요청마다 별도의 인스턴스가 생성되고, 관리된다. session : HTTP Session과 동일한 생명주기를 가지는 스코프 application : 서블릿 컨텍스트(`ServletContext`)와 동일한 생명주기를 가지는 스코프 websocket : 웹 소켓과 동일한 생명주기를 가지는 스코프 request스코프를 예제로 알아보자 HTTP request 요청 당 각각 할당되는 request 스코프 Request스코프 예제 만들기..
-
Spring 기본 36 - 프로토타입 스코프(싱글톤 빈과 함께 사용시 Provider로 문제 해결)FrameWork/Spring&Spring-boot 2023. 11. 30. 11:26
프로토타입 스코프(싱글톤 빈과 함께 사용시 Provider로 문제 해결) 싱글톤 빈과 프로토타입 빈을 함께 사용할 때, 어떻게 하면 사용할 때 마다 항상 새로운 프로토타입 빈을 생성할 수 있을까? 스프링 컨테이너에 요청 가장 간단한 방법은 싱글톤 빈이 프로토타입을 사용할 때 마다 스프링 컨테이너에 새로 요청하는 것이다. package com.hello.core.scope; import lombok.RequiredArgsConstructor; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org...