728x90
반응형

프로그래밍 이야기/SPRING BOOT 공부 13

스프링부트 설정파일

- 애플리케이션 실행시 application.properties 설정파일 읽어들이는 위치 순서 1> 현재 디렉토리의 /config 서브 디렉토리 2> 현재 디렉토리 3> 클래스 경로의 /config패키지 4> 클래스 경로의 루트 - 설정파일은 프로파일이라는 단위로 별도의 설정을 가지며 개발환경, 프로덕션환경 등 환경별로 설정을 나누고 싶은 경우에는 application-{profile}.properties의 명명 규칙으로 설정 파일을 만든다. - 설정파일의 작성형식은 YAML로도 가능하며 YAML 형식의 설정을 사용하려면 application.properties 대신에 application.yml 파일을 배치하면 자동 로드 된다. - 속성형식 설정 foo.remote-address = 127.0.0.1 ..

@SpringBootApplication 자동구성, @EnableAutoConfiguration

- 스프링 부트에서 @Configuration 어노테이션을 사용하여 구성을 정의하면 된다 - 컴포넌트 스캔은 메인 애플리케이션 클래스의 @SpringBootApplication 어노테이션을 사용하여 스캔 대상 패키지를 지정한다. //디폴트를 설정을 위해 아무것도 설정하지 않는다 @Configuration public class ApplicationConfig implements WebMvcConfigurer{ } @SpringBootApplication(ScanBasePackages ={"com.sample.web"}) public class Application{ public static void main(String[] args) { SpringApplication.run(Application.cla..

스프링부트 공부- 그레이들정의

- 스프링 부트는 서드파티 라이브러리나 스프링 플랫폼 설정이 처음부터 들어 있어 최소한의 작업으로 개발을 시작할 수 있다. - 설정을 변경하지 않는다면 내장된 컨테이너로 톰캣을 사용해 미리 준비도니 환경에 따라 동작한다. - 명령줄로 실행 가능한 하나의 jar 파일 생성이 가능하며 cmd 창에서 java -jar 명령의 인수로 작성한 jar 파일을 지정해 실행하면 내장된 톰캣이 실행된 후 개발한 애플리케이션이 실행된다. - 스프링 부트는 스프링 MVC 프레임 워크를 사용한다. - 스타터 : 스프링 부트의 구성 요소중 하나이며 일련의 의존관계를 세트로 정리하는 모듈이다. - spring-boot-starter-web : 스프링MVC, 톰캣이 의존관계에 추가된다. - spring-boot-starter-jd..

@ResponseBody, @RequestBody

@ResponseBody : Http 통신에서 요청과 응답을 보낼때, 필요한 데이터를 담아서 보내는 공간으로 응답하는 본문 - 자바 객체를 HttpResponse의 본문 responseBody의 내용으로 매핑하는 역할을 한다. @RequesteBody : Http 통신에서 요청과 응답을 보낼때 필요한 데이터를 담아서 보내는 공간으로 요청을하는 본문 - HttpRequest의 본문 requestBody의 내용을 자바 객체로 매핑하는 역할을 한다. json 이나 xml 형식으로 많이 사용됨 MessageConverter를 통한 데이터 변환 과정을 거친다.

@ApiOperation, @apiparam, @Async,@RequestParam

@ApiOperation 어노테이션 : 스웨거 관련 문서 rest api 에 대한 응답을 문서화 하기 위해 제공되는 것으로 단일작업을 설명하는데 사용된다. 작업은 경로와 HTTP 메서드의 고유한 조합이다 내부에 정의된 응답 속성에는 일반 응답 유형이 포함되어야 한다. @Apiparam은 문서 자동화를 위한 스웨거에 쓰이는 어노테이션이고 @RequestParam 은 Http 부터 요청온 정보를 받아오기 위한 스프링 어노테이션이다. @Async : 스프링에서 제공하는 쓰레드 풀을 활용하는 비동기 메서드 지원 어노테이션이다. 스프링 부트에서는 @EnableAsnyc 어노테이션을 추가하고 비동기로 작동하길 원하는 메서드 위에 @Asnyc 어노테이션을 붙여주면 된다. - private method 는 사용 불가 ..

@RequestMapping,@api,@value 어노테이션 정리

@RequestMapping- 특정 uri 로 요청을 보내면 Controller에서 어떠한 방식으로 처리할지 정의 하는데 이때 들어온 요청을 특정 메서드와 매핑하기 위해 사용하는 어노테이션이다 여기서 가장 많이 사용하는 부분은 value 와 method 이다 value : 받을 url을 설정하게 된다 method : 어떤 요청으로 받을지 정의하게 된다 ( GET, POST, PUT, DELETE) @Api : 해당 API 설명하는 어노테이션 @value : Properties를 읽는 어노테이션으로써 propertySource를 사용하여 다양한 프로퍼티 파일을 쉽게 불러들여서 값을 지정한다는 장점이 있다.

@RestController / @EnableAsync 어노테이션

@RestController - Restful Web Service 에서 사용되는 컨트롤러 어노테이션이다 - @Controller + @ResponseBody가 합쳐진 형태로 Json 형태의 객체 데이터를 반환한다. -스프링 4.0 버전에서 추가되었다 최근에는 프론트앤드와 백앤드를 나누어 개발하는 경우가 많기에 BackEnd에서 Rest Api를 통해 json 으로만 전달하기 때문에 편리성을 위해 이를 사용한다 @Async : 스프링에서 제공하는 Thread Pool 을 활용하는 비동기 메소드 지원 어노테이션 java.util.concurrent.ExecutorService를 사용해서 비동기식 방식의 메서드를 정의할 때마다 Runnable의 run()을 재구현 하는 등 동일한 방법이 잦았으나 스프링 부트..

@RequiredArgsConstructor 어노테이션

@RequiredArgsConstructor - 롬복으로 스프링에서 의존성 주입의 방법중에 생성자 주입을 임의의 코드없이 자동으로 설정해주는 어노테이션으로 초기화 되지 않은 final 필드나 @NonNull이 붙으 필드에 대해 생성자를 생성해준다. 새로운 필드를 추가할 경우 다시 생성자를 만들어서 관리해야하는 번거로움이 없다 즉 @Autowired를 사용하지 않고도 의존성 주입이 가능하다. 보통 의존성 주입 방식에는 필드주입, 수정자주입, 생성자 주입 의 3가지 방법이 있는데 이중 가장 권장하는 방법은 생성자 주입이다 그러나 생성자 주입은 코드 작성 과정에서 번거로움이 많아 Lombok 을 사용하여 @getter @setter 과정을 축소하는 것처럼 @RequiredArgsConstructor 어노테이션..

웹애플리케이션컨테이너, 클래스로더의 특징

- 웹 애플리케이션컨테이너 : 웹 애플리케이션이 배포되는 공간 - 자바 특징 : 한번 작성하면 플랫폼에 상관없이 쓸 수 있다(Writer onec, run anyWhere) - 클래스로더 : JVM에서 실행 가능한 상태, JVM이 클래스를 실행하기 위해서는 클래스를 로딩하는 과정이 필요함. - classNotFoundException : 클래스 로더가 추가된 라이브러리 또는 클래스를 인식하지 못해서 발생하는 오류 - 클래스 패스에 추가되면 클래스 로더는 식별자로 클래스 파일 메타 정보 중 첫번째 싲가 필드를 이용해 클래스 로딩 - 클래스 로더의 특징 1> 구조가 계층적이다 2> 클래스 로딩을 위임할 수 있다. 3> 가시적인 규약이 있다. : 클래스를 로딩할때 가능한 범위 4> 클래스 언로딩 불가 - 클래..

스프링 프레임 워크의 변화

- 초기 오라클이나 IBM과 같은 업체들이 제공하는 솔루션을 주로 사용함 - 웹 로직(WebLogic), 웹 스파이어(WebSphere)와 같은 서버들을 많이 사용함 - EJB(Enterprise JavaBean)를 이용해서 개발 진행 - 스프링 프레임 워크도 2.5 버전 이후로 안정화 됨 - 일반 사용자들을 대상으로 하는 B2C 서비스의 경우에는 PaaS(Platform as a Service)로 서버를 물리적으로 증설하지 않고 인스턴스를 추가로 사용함에 따라 JDK와 톰캣을 설치하고, 스프링 관련 XML을 설정하는 일련의 작업들을 간소화 함 - 루비온레일스, 장고: 해당 기술들은 톰캣과 같은 별도의 애플리케이션 서버 설치 없이 웹 서버 만으로 클라우드 서비스를 이용해 쉽게 확장 할 수 있고 개발도 스..

728x90
반응형