BackEnd/Java Spring 6

Spring boot 의 구조

이전 포스팅에서 우리는 자바 JDK 설치, 환경 변수 설정, STS 설치 및 환경 설정, 스프링 부트 프로젝트 생성, 플러그인 설치 등의 작업을 진행하였습니다. 이번에는 생성한 프로젝트에서 중요한 역할을 하는 파일들과 기존 스프링 프로젝트와의 차이점 등에 대해 가볍게 알아보는 시간을 가져보도록 하겠습니다. 스프링 부트 프로젝트 구조 1. src/main/java 기존의 스프링과 마찬가지로 클래스, 인터페이스 등 자바 파일이 들어가는 디렉터리입니다. 이전 포스팅에서 생성한 com.board 패키지 안에 BoradApplication 클래스가 생성되어 있는 것을 볼 수 있는데요, 파일을 열어보면 클래스 선언부 위에 @SpringBootAplication이 선언되어 있습니다. 이 애너테이션은 다음의 세 가지 ..

BackEnd/Java Spring 2020.05.23

Spring annotation @Component, @Configuration

Spring 프로젝트를 진행하면서 Bean으로 등록하기위해 @Component, @Configuration, @Controller … 등의 여러 어노테이션을 사용합니다. 그중에서도 @Component와 @Configuration은 사용상에 있어 차이가 있는데, 정확히 어떠한 차이로 이 어노테이션들을 구분하여 사용하는지 알아보도록 하겠습니다. Spring Bean Bean : Spring bean container에 존재하는 객체로써, default 설정으로는 싱글턴으로 존재합니다. 일반적으로 bean 으로 등록하기위해서는 다음과 같은 방법들이 존재합니다. xml 등록 레거시 방식으로, xml 방식으로 등록하는 방법입니다. 위와같이 xml에 class 경로와 id 를 직접 지정해주어 bean으로 등록해줄수..

BackEnd/Java Spring 2020.05.23

Spring IoC 컨테이너 , 빈 , 의존성 주입 개념정리

Spring IoC 컨테이너 IoC (Inversion of Control) 이름에서도 알 수 있듯 제어의 역전을 의미한다. 그렇다면 제어의 역전이 무슨 말일까? 보통 일반적인 프로그램을 작성할 때는 main 함수가 있어서 시작 부분을 자신이 컨트롤 할 수 있는데 프레임워크를 사용할 때는 main 함수에서 SpringApplication.run 을 해줄뿐 내가 작성한 코드는 따로 호출하지를 않는다. 처음 스프링 프레임워크를 사용했을때는 이 부분의 의아했었던 기억이 난다. 이 의아함을 해결해주는것이 바로 IoC 컨테이너이다. 생성하고 초기화 실행 소멸을 알아서 처리하는것이다. 어떤 요청이 들어왔을때 어떤 객체를 어떻게 조작할 것인가 를 대신 수행주는것이 이 컨테이너다. 개발자가 객체를 생성하고 작동하는 로..

BackEnd/Java Spring 2020.05.05

스프링 동작 정리-1

위 그림처럼 스프링의 대체적인 경로와 사용목적은 이렇게 된다. 하나하나 간단하게 설명을 하자면 src/main/java 에서는 보통 VO , DAO , Controller, Service 등 직접 개발자가 개발하는 주요 코드들이 동작하는곳이다. src/main/resources 는 서버가 실행될 때 필요한 파일들의 경로라고 되어있는데 예를 들자면 위의 그림과 같다. 서버가 작동할때 찍을 로그라던지 서버가 실행될때 DB를 조작하기 위한 mybatis 를 사용하기위한 설정파일 그리고 그것의 실질적인 동작을 표현하는 mappers 파일등이 여기에 들어간다. servlet-context 는 브라우저의 요청으로부터 그 요청을 처리한 controller를 이어주는 작업을 한다. 사진의 가장 아래에 component..

BackEnd/Java Spring 2020.05.05

Java Spring - @RequestBody, @ResponseBody 정리

1. @RequestBody ajax 를 사용할때 같이 쓰는데 이때 JSON.stringify 함수를 이용하여 데이터를 보내고 contentType을 "application/json"으로 설정해주어야 한다. 즉 ajax로 보낸 json 객체의 정보를 스프링에서 받아올때 사용한다. @Controller public class MainController { @ResponseBody @RequestMapping("/ex") public void init(@RequestBody User user) { user.getName(); user.getAge(); } } 스프링에서는 이렇게 받을 수 있다. 이때 User 클래스의 프로퍼티는 전송된 JSON 객체와 프로퍼티명이 일치해야하며 getter와 setter가 있어..

BackEnd/Java Spring 2020.04.14