본문 바로가기

프레임워크/Spring boot Annotation

(3)
@Repository자리와 @Service자리를 바꾼다면? Annotation 메타데이터란? Annotation(@)은 사전적 의미로는 주석이라는 뜻이다. 자바에서 Annotation은 코드 사이에 주석처럼 쓰이며 특별한 의미, 기능을 수행하도록 하는 기술이다. 즉, 프로그램에게 추가적인 정보를 제공해주는 메타데이터라고 볼 수 있다. 그렇다면 @Service ? @Repository ? 위에서 말했다싶이 추가적인 정보 제공에 의미를 두어야 한다. 기본적으로, 개발자는 문제가 발생하면 빠르게 문제 원인을 찾고 판단하여 해결하여야 한다. 그러기 위해서는 각 패키지별로 역할을 나누어야 한다. 각 비즈니스 로직과 관련된 로직은 @Service annotation을 사용한 Service 패키지에 위임하고, DB 접근과 관련된 부분은 Repository 패키지에 위임한다...
@RestController와 @ResponseBody의 상관관계 HTTP 통신 HTTP통신은 Header와 Body로 정보를 주고 받으면 통신을 한다. 여기서 ResponseBody란 Body에 해당 정보를 넣어서 응답을 하겠다는 의미이다. 현재는 주로 JSON Format을 활용한 방식이 주가 되었다. Spring MVC 흐름 @RestContoller를 설명하기전에 스프링에서 데이터가 송수신되는 과정을 살펴보자. 1. 클라이언트는 웹서버에 요청을 보내게 된다. 2. Dispatcher Servlet을 Front controller로써, 그 요청을 받게되고 요청을 처리할 Hanlder Mapping을 찾게 된다. 3. Hadler Mapping을 찾고, Handler Mapping에 의해 적합한 Controller을 찾고 Controller은 작업후 결과를 반환하게..
@Qualifier, @Primary @Autowired, @Resource, @Inject 어노테이션으로만 자동적으로 객체를 주입할 경우 컨테이너에서 주입할 대상이 여러개여서 의존성을 주입하지 못하는 경우가 발생할 수 있다. public class Player { @Autowired private Weapon weapon; Player(){ } public Player(Weapon weapon) { super(); this.weapon = weapon; } public void setWeapon(Weapon weapon) { this.weapon = weapon; } public Weapon getWeapon() { return weapon; } public void usePlayerWeapon() { weapon.useWeapon(); ..