JAVA Spring 궁금증 해결을 위한 대충 사용법 파악
- 전통적인 mvc패턴을 따른다.
- 모듈 관리는 maven이라는 도구를 사용하며 필요한 모듈은 xml로 정의한다
- cli명령어로 설치하거나 빌드할 수 있지만, 대부분 통합 IDE기능에 도움을 받아 설치하는게 일반적인 사용성 같아 보인다.
- 대부분의 정의 파일은 xml을 표준으로 사용한다.
- annotation이라는 기능을 사용하여 특정 클래스의 기능 유형을 분류 하거나 의존성 주입 등 여러가지 기능에 활용된다.
- 기본적으로 스프링에서 쓰이는 @Controller, @Service, @Repository, @Autowired, @Quailitify 등등 mvc패턴과 의존성 주입등에 사용되는 기본적으로 알아야하는 어노테이션이 있다
- lombok을 설치하면 특정 어노테이션을 사용하여 getter나 setter와 같은 보일러플레이터 코드들을 자동으로 넣어줄 수 있다
- 특정 logger를 사용하거나 jpa와 같은 인터페이스를 사용하는 경우 알아야 하는 어노테이션이 있다.
- 관점지향 프로그래밍을 할수 있으며, 다른 언어의 데코레이션 처럼 특정 기능을 자동화 할 수 있다고 생각하면 된다.
자주 사용되는 어노테이션 파악
@Controller
- 말 그래도 mvc패턴의 컨트롤러 역할 (서비스와 뷰의 중재역할)
- client의 요청을 처리하고 어떻게 응답할지 결정하는 곳
- 뷰 리졸버를 사용할수도 있고 @RequestBody를 사용해서 직접 바디를 만들어 줄 수도 있다.
@RestController
- @Controller에 @ResponseBody가 추가된것, 주 용도는 JSON을 반환하는 api형태로 쓰임
@RequestMapping
- @controller에 url매핑을 위해 쓰임
@Service
- 비지니스 로직 처리
- 컨트롤러와 모델 연결
@Repository
- DAO - data에 직접 access하는 부분
@Autowired
- bean xml파일을 일일이 정으하지 않고도 간편하게 의존성을 주입해준다.
- 생성자에서 쓰이는경우 생략해도 작동한다는 것 같다.
@Quailitify
- autowired 할때 동일한 타입을 가진 bean객체가 두개일 경우 선택할수 있게 해준다.
lombok
- @Getter - 게터만듬
- @Setter - 세터 만듬
- @AllArgsConstructor - 존재하는 모든 필드를 고려하여 생성자를 만들어줌
- @NoArgsConstructor - 인자가 없는 기본 생성자를 만들어줌
- @Bulder- 체이닝패턴으로 특정 클래스의 객체생성이 가능하게 함
- 등등
jpa
- @Entity
- @Table
- @Id
- 등등