[Spring] Annotation(어노테이션) 정리

Whatever·2022년 2월 7일
0

Spring(스프링)

목록 보기
11/29

@Repository

  • 매퍼 xml을 실행해주는 클래스.
  • 어노테이션을 붙여서 이 클래스는 데이터에 접근하는 클래스라는 것을 Spring에게 알려줌
  • Spring이 데이터를 관리하는 클래스라고 인지해서 자바 빈(java bean)으로 등록해서 관리
@Repository
public class BuyerDao {	
	//Lprod
	public List<BuyerVO> lpordList(){
		return this.sqlSessionTemplate.selectList("buyer.lprodList");
	}
}


@Autowired, @Inject

  • sqlSessionTemplate 사용 - root-context에서 가져옴
  • new 키워드를 통해 직접 생성 안함.
  • 의존성 주입(Dependency Injection - DI)을 통해 주입받음.
  • 스프링은 미리 만들어 놓은 sqlSessionTemplate 타입 객체를 BookDao 객체에 주입
  • 이 과정은 자동으로 스프링에서 실행되며, 개발자가 직접 객체를 생성하지 않음(IoC)
@Autowired
	SqlSessionTemplate sqlSessionTemplate;
	//거래처 별 상품목록
	public List<BuyerVO> list(){
		//namespace.id
		return this.sqlSessionTemplate.selectList("buyer.list");
	}


@Controller, Service

  • Controller / Service라고 지정해주는 어노테이션
@Controller
public class BuyerController {

	@RequestMapping("/lprodList")
	public String lprodList(Model model) {
		List<BuyerVO> list = this.buyerService.lpordList();
		
		model.addAttribute("list", list);
		
		return "buyer/lprodList";
	}
}


@RequestMapping

  • 클래스 경로를 매핑하거나, View를 매핑해주는 어노테이션.

클래스경로 Mapping

//클래스경로까지 매핑해준다.
@RequestMapping(value="/buyer")

View Mapping

	@RequestMapping("/lprodList")
	public String lprodList(Model model) {
		List<BuyerVO> list = this.buyerService.lpordList();
		
		model.addAttribute("list", list);
		
		return "buyer/lprodList";
	}

@ResponseBody

  • JSON 객체 타입/객체 배열 타입의 데이터를 만들어서 반환하는 용도로 사용됨
  • JSON? {"id":"a001","name":"개똥이"}
  • json 데이터 바인딩을 위한 의존 라이브러리를 pom.xml에 추가
    jackson-databind
  • VO -> JSON
    {"id":"a001","name":"개똥이"}
  • List<VO> -> JSON
    [{"id":"a001","name":"개똥이"},
    {"id":"b001","name":"소똥이"}]
  • Map<String, Object> -> JSON
    {"key1":{"id":"a001","name":"개똥이"},
    "key2":{"id":"b001","name":"소똥이"}}
  • String -> JSON
    a001, b001

0개의 댓글