티스토리 뷰

728x90

 

 의존성 주입 용도  

 

@Required 

필수 프로퍼티를 설정, 코드 내에 프로퍼티 설정 메서드에 @Required 어노테이션을 붙인다.

@Required
public void setName(String name) {
	this.name = name;
}

 

 

@Autowired

의존관계를 자동으로 설정해주는 어노테이션, Controller클래스에서 DAO나 Service에 관한 객체들을 주입시킬 때 많이 사용.

@Autowired
private DefaultBeanValidator beanValidator;

 

 

@Inject 

객체의 타입을 보고 주입될 클래스를 탐색한다.

@Autowired와 차이점은 

@Autowired는 스프링에서 지원하고, @Inject은 자바에서 지원하는 어노테이션이다. 

 

 

 컨트롤러 관련  

 

@Controller

: @Controller어노테이션은 MVC패턴에서 Controller클래스에 선언, @Component어노테이션을 써도 상관없다. 하지만 @Controller 어노테이션을 사용함으로 @RequestMapping 등의 추가 어노테이션을 사용 가능

@Controller
public class AdmController {

 

 

@RequestMapping

: @RequestMapping 어노테이션은 Spring 웹 애플리케이션에서 가장 자주 사용 

http request로 들어오는 url 특정 controller 클래스나 메서드로 연결시키는 역할

controller에 class에 적용할 수 있고 특정 method에 적용 가능 

@RequestMapping(value="/adm")
public class AdmController {

 

 

@PathVariable

: URL 경로에 변수를 넣어주는 기능 

@RequestMapping(value="/{page}")
public String onlyPageFowarding(@PathVariable String page,Model model){
	return "ttest/adm/"+page;
}

 

 

@ResponseBody
: 자바 객체를 HTTP 요청의 body 내용으로 매핑하는 역할을 함

@RequestBody

: @RequestBody에 붙은 파라미터는 HTTP 요청의 본문 body부분이 자바 객체 그대로 전달 

@RequestMapping(value="/bi200.do")
@ResponseBody
public Map<String, Object> exSelect (
	@RequestBody List<HashMap<String, String>> exc,

 

웹페이지에서 json으로 request 한 파라미터들을 java에서 받으려면 java object로의 변환이 필요하며

마찬가지로 response 시에도 java object에서 json으로 변환이 필요하다.

이러한 작업들을 해주는 어노테이션이 바로 @RequestBody와 @ResponseBody이다. 

컨트롤러에 두 어노테이션을 추가해주면, JSON이나 key/value 방식 xml 등으로 송수신할 수 있다.

 

 

 

@RequestParam

: 단일 HTTP 요청 파라미터를 method 파라미터에 넣어주는 어노테이션

가져올 요청 파라미터 이름을 @RequestParam 어노테이션의 기본값으로 지정해주면 된다. 

@RequestMapping(value="/admUpdateView.do", method=RequestMethod.POST)
public @ResponseBody Map<String, Object> adm03UpdateView(
	@RequestParam("unId") String unId,
	@ModelAttribute("searchVO") UserDefaultVO userSearchVO,

 

 

 

@ModelAttribute

@RequestParam과 비슷하고 

Controller 메소드의 파라미터나 리턴 값을 Model 객체와 바인딩하기 위한 어노테이션



 데이터 접근 관련  

 

@Service

: Service 레이어 클래스들에 사용되는 어노테이션, @Component어노테이션을 써도 상관없다.

@Service어노테이션을 사용함으로써 해당 클래스가 서비스 레이어 클래스라는 것을 명확히 함  

@Service("admService")
public class AdmServiceImpl extends EgovAbstractServiceImpl implements AdmService {

 

 

@Repository

: DAO에 특화된 어노테이션, @Component어노테이션을 써도 상관없다. 

 

 

 

 

 

 

참고 : medium.com/@aaaalpooo/%EB%A7%8E%EC%9D%B4-%EC%93%B0%EB%8A%94-spring-framework-annotation-%EC%A0%95%EB%A6%AC-summary-of-annotations-frequently-used-in-spring-framework-935e1c1a4877