해결된 질문
작성
·
303
1
이렇게 해보니 MemberController 의
@GetMapping("...") URI 가 이 작동을 안하는데
왜 작동을 안하는지 여쭤봐도 될까요?
디버그 로 컨트롤러가 등록이 잘된지 해쉬값 확인으로 생성이 됬는지 확인은 했으나
URI 호출 시 GetMapping 주소가 작동하지 않는것을 보면..
등록이 잘 안됬나 싶기도 하구요...
의문이네요...
답변 5
2
안녕하세요. Truestar님^^
이번 강의에서는 자세히 소개하지 않았지만
@Controller, @Repository 같은 애노테이션들은 단순히 컴포넌트 스캔의 대상이 되는 것 뿐만 아니라, 스프링이 부가적인 기능들을 더해서 처리해줍니다.
@Controller는 스프링 MVC에서 컨트롤러로 사용되도록 다양한 부가 기능이 동작하고,
@Repository도 DB에 종속된 예외 처리를 스프링 기반의 예외 처리로 변경해주는 등 다양한 부가 기능이 동작합니다.
그래서 빈으로 직접 등록해도 해당 애노테이션이 없으면 이런 부가기능들이 동작하지 않습니다^^
도움이 되셨길 바래요.
1
질문 감사드립니다. 이해에 도움이 되었습니다
이후 강의에서 설명해주시는데요.
(Bean 등록 설정을 해놓고)
DI로 Bean을 주입받는 방법이
생성자로 방식일 때
생성자가 `딱 1개인 경우`에는
생성자에 `@Autowired 애노테이션을 생략해도
된다`고 설명해주십니다.
1
0
제가 알기론 원리는 이렇습니다.
많은 어노테이션 중에..
@Controller @Service @Repository 가 명시된 클래스 들은 모두 @Component 이기에
스프링 내부 컨테이너로 부터 @ComponentScan 대상이 되어 자동 등록이 되구요,
@Autowired 는
선언된 필드에 컨테이너의 빈 인스턴스를 연결짓는 역할을 합니다
그래서 @Autowired 는 컨트롤러 작동에 영향을 주지 않아서
빼도 작동하는 것 이겠지요
0
SpringConfig에서 service와 repository 를 bean 등록을 해줬으면 MemberController에서 MemberController 생성자에 대한 Autowired 어노테이션을 빼도 되는 건가요?
영상에서는 어노테이션이 있는데, 빼고 해도 잘 동작하길래 제가 맞게 이해한건지 질문드립니다.