Annotation | Package Detail/Import statement |
---|---|
@Service | import org.springframework.stereotype.Service; |
@Repository | import org.springframework.stereotype.Repository; |
@Component | import org.springframework.stereotype.Component; |
@Autowired | import org.springframework.beans.factory.annotation.Autowired; |
@Transactional | import org.springframework.transaction.annotation.Transactional; |
@Scope | import org.springframework.context.annotation.Scope; |
Spring MVC Annotations | |
@Controller | import org.springframework.stereotype.Controller; |
@RequestMapping | import org.springframework.web.bind.annotation.RequestMapping; |
@PathVariable | import org.springframework.web.bind.annotation.PathVariable; |
@RequestParam | import org.springframework.web.bind.annotation.RequestParam; |
@ModelAttribute | import org.springframework.web.bind.annotation.ModelAttribute; |
@SessionAttributes | import org.springframework.web.bind.annotation.SessionAttributes; |
Spring Security Annotations | |
@PreAuthorize | import org.springframework.security.access.prepost.PreAuthorize;
[출처] [펌] spring annotation 관련|작성자 정서 |
@Controller
: 클래스 타입에 적용되며, @Controller 를 붙이면 해당 클래스를 웹 요청을 처리하는 컨트롤러로 사용할 수 있다.
컨트롤러로 사용하기 위해 @Controller 가 적용된 클래스는 <bean> 태그에서 스프링 빈으로 등록해주면 된다.
@RequestMapping
: 컨트롤러가 처리할 요청 URL 을 명시하는데 사용되며, 클래스나 메서드에 적용된다.
클래스에 적용하지 않고 메서드에만 적용할 경우 각각의 메서드가 처리할 요청 URL 을 명시하게 된다.
@PathVariable
@RequestParam
: 표시된 요청 파라미터값에 대해서 값을 채우는 역할..
@ModelAttribute
: 웹단에서 넘어오는 model에 대해서 데이터를 채워주는 역할을 한다..
@SessionAttributes
:웹단에서 사용되는 ModelAttributes에 대해서 자동 설정을 해준다.
위에 있는 @ModelAttributes 와는 달리 session에 저장된 model값에 대해서만
설정을 해주는 것 같다.
@Controller
@RequestMapping("/owners/{ownerId}/pets/{petId}/edit")
@SessionAttributes("pet")
public class EditPetForm {
@ModelAttribute("types")
public Collection<PetType> populatePetTypes() {
return this.clinic.getPetTypes();
}
@RequestMapping(method = RequestMethod.POST)
public String processSubmit(@ModelAttribute("pet") Pet pet, BindingResult result, SessionStatus status) {
new PetValidator().validate(pet, result);
if (result.hasErrors()) {
return "petForm";
}else {
this.clinic.storePet(pet);
status.setComplete();
return "redirect:owner.do?ownerId=" + pet.getOwner().getId();
}
}
}
*Spring Security Annotations
@PreAuthorize
: 함수에 대한 접근 권한 설정할 수 있다. ( ex) Admin )
@Transactional
@PreAuthorize("hasRole('ROLE_ADMIN')")
public void removeContact(Integer id){
contactDAO.removeContact(id);
}
&pathVariable과 RequestParam의 차이점
@출처 : http://www.techferry.com/articles/spring-annotations.html
============================= 자바 annotation =================================
@Override
: 기반 클래스의 메소드를 오버라이드한 것을 표시한다.
메소드 이름을 잘못 표기하거나 시그니처를 잘못 지정할 경우 컴파일 에러 발생
@Deprecated
: 해당 요소가 사용될 경우 컴파일러가 경고를 발생 시킨다.
@SuppressWarning
: 부적절한 컴파일러의 경고를 제거하기 위해 사용된다.
HTML "속성(Attribute)"와 "요소(property)"의 차이점.. (0) | 2014.12.02 |
---|---|
[eclispe] java version error 발생시..(1.7version 을 지원하지 않습니다..) (0) | 2014.10.22 |
[퍼옴] spring framework 구조 (0) | 2014.10.12 |
cvc-complex-type.2.3: Element 'bean' cannot have character [children], because the type's content type is element-only. (0) | 2014.03.05 |
iBatis에서 CDATA를 적는 목적(xml파일..) (0) | 2014.01.13 |