JAVA/Spring 4

쓰레드로컬 Thread Local (데이터 경합 방지)

정의 쓰레드별 데이터를 보관하는 전용보관소, 쓰레드별 데이터 경합을 방지해준다. 사용법 // 값 선언 ThreadLocal threadLocalValue = new ThreadLocal(); // 값 저장 threadLocalValue.set(1); // 값 조회 threadLocalValue.get(); // 값 제거 threadLocalValue.remove(); 예시 // 쓰레드 로컬을 사용하는 서비스 만들기 public class ThreadLocalService { private ThreadLocal context = new ThreadLocal(); public String begin(String value) { context.set(value) return context.get(); } pu..

JAVA/Spring 2023.07.08

@RequestMapping 과 @Controller

@RequestMapping @Controller @RequestMapping("sample") public class SampleController { @RequestMapping("/process") public ModelAndView process() { return new ModelAndView("view"); } } @RequestMapping(value = "/get/{id}", method = RequestMethod.GET) @RequestMapping이 클래스에 붙은 경우 HandlerMapping에서 매핑정보로 인식합니다. 예를 들어 /sample URL로 요청이 오면 SampleController를 호출합니다. @RequestMapping이 메소드에 붙은 경우 @RequestMappi..

JAVA/Spring 2022.01.26

Spring MVC 구조

1. MVC 패턴 MVC 패턴이란, Model - View - Controller로 이루어진 구조를 말합니다. 애플리케이션(프로그램)을 데이터 영역, 비즈니스 영역, UI 영역으로 역할을 나누어 관리하는 것을 말합니다. 모델(Model) 데이터를 관리하는 역할을 담당하는 객체입니다. 데이터를 담아서 화면에 전달하는 역할을 합니다. 모델을 사용하면, 화면은 비즈니스 로직, 데이터 접근 방법을 몰라도 되기 때문에, 화면 구현에만 집중할 수 있습니다. 뷰(View) 화면을 렌더링하는, UI 영역을 담당하는 객체입니다. HTML 파일을 만들어 웹 브라우저에서 접근할 수 있도록 해줍니다. 컨트롤러(Controller) 비즈니스 영역을 담당하는 객체입니다. 요청을 받아 비즈니스 로직을 처리한 뒤, 결과를 모델에 담..

JAVA/Spring 2022.01.23

스프링 빈과 의존성 주입 (DI)

제어 역전 Inversion Of Control 과 Ioc Container IoC Inversion Of Control 제어 역전이란, 클라이언트 코드 관리하던 의존관계 제어를 프레임워크에서 가져가 관리하는 것을 말합니다. Ioc Container란 프레임워크에서 객체의 생성과 객체 간의 의존관계를 관리하는 컨테이너입니다. 스프링 프레임워크의 ApplicationContext가 대표적입니다. 그리고 스프링의 IoC 컨테이너에서 관리하는 객체를 빈(Bean)이라 합니다. 스프링 빈 등록 @Component와 @Bean 빈을 등록하는 방법은 크게 2가지가 있습니다. 첫 번째로 @Component를 이용해 클래스를 바로 빈으로 등록하는 방법입니다. @Component public class Company {..

JAVA/Spring 2022.01.12