JAVA Spring 궁금증 해결을 위한 대충 사용법 파악

study, share · 2021-6-28

← 리스트로

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
  • 등등