분류 전체보기(173)
-
DI 주입 방법
DI 주입 방법 1) 필드 주입 @Autowired private MemberService memberService; Java의 Reflection API를 사용하여 접근 제한자를 무시하고 필드에 직접 접근할 수 있다. Spring Framework는 이러한 Reflection API를 사용해 private으로 선언된 필드에도 의존성을 주입할 수 있다. final로 되어 있어도 Reflection API로 변경이 가능하기 때문에 변경이 가능하다. 따라서 객체가 생성된 후에도 의존성이 변경될 수 있다. 이것은 객체의 불변성을 해칠 수 있다. 또한 테스트를 위해서 스프링 컨테이너가 필요하여 테스트하기 어렵다. 2) setter 주입 private MemberService memberService; @Auto..
2024.05.14 -
@Configuration 스프링빈 등록
객체를 스프링 빈으로 등록할때 @Service, @Repository 와같이 annotation으로 스프링빈 등록 방법이 있다. 이 방법 말고 @Configuration 으로 스프링빈 등록 방법이 있다. package groupInfo.study.service;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import groupInfo.study.repository.MemberRepository;import groupInfo.study.repository.MemoryMemberRepository;@Configurationpublic class Sprin..
2024.05.14 -
@Configuration 스프링빈 등록
객체를 스프링 빈으로 등록할때 @Service, @Repository 와같이 annotation으로 스프링빈 등록 방법이 있다. 이 방법 말고 @Configuration 으로 스프링빈 등록 방법이 있다. package groupInfo.study.service;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import groupInfo.study.repository.MemberRepository;import groupInfo.study.repository.MemoryMemberRepository;@Configurationpublic class Sprin..
2024.05.14 -
컴포넌트 스캔으로 의존관계 설정
스프링에서 각 객체를 스프링컨테이너에 빈으로 등록해서 이중에 필요로하는 객체에서 빈을 가져다가 사용한다. 그렇게 하려면 객체를 빈으로 등록해줘야 한다. 빈으로 등록하는 방법중에서 컴포넌트 스캔 방법을 알아보자.package groupInfo.study.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import groupInfo.study.service.MemberService;//@Controller 어노테이션을 넣으면 MemberController 객체를 생성해서 스피링에 넣어두고 관리한다.//스프링 컨테이너에서 빈이 관리되는것@Co..
2024.05.13 -
회원 레파지토리 테스트케이스 작성
회원을 관리하는 repository를 만들었다. 일단 repository를 interface로 선언하여 repository를 구현하는 객체를 유연하게 바꿀수 있도록 한다. MemberRepository.java package groupInfo.study.repository; import java.util.List; import java.util.Optional; import groupInfo.study.domain.Member; public interface MemberRepository { Member save(Member member); Optional findById(Long id); Optional findByName(String name); List findAll(); //Optional로 감싸..
2024.03.23 -
스프링부트 웹 개발 방식(api)
결론부터 말하면 우리가 브라우저에서 서버로 요청을 보내면 controller에서 요청을 받아 @ResponseBody 를 이용해 객체를 응답 body 부분에 담아서 응답해주는걸 api 방식이라고 한다. 밑에 예시를 봐보자. 1) 요청을 보냄(url) ex1) http://localhost/hello-json?name=spring //문자열 반환을 위한 예시 ex2) http://localhost/hello-json //json 반환을 위한 예시 2) 서버의 controller에 요청이 매핑됨 기존에는 데이터를 받아서 viewResolver한테 넘겨주어서 화면에 렌더링 되어 반환되는데 @ResponseBody가 있는 경우 HttpMessageConverter가 동작하여 데이터를 응답 body에 담아서 반환..
2024.03.19