Spring boot annotation 정리

Daeun Jung·2022년 4월 21일
0

research

목록 보기
3/10

@Controller

  • 컨트롤러 클래스

@RestController

  • @controller + @responsebody
  • 컨트롤러 내 모든 메소드에 @responsebody 를 적용하는 역할

@Service

  • 서비스 클래스

@Repository

  • 다오 클래스

@Bean

  • 개발자가 직접 제어가 불가능한 외부 라이브러리 등을 Bean으로 만들 때 사용. ArrayList, RestTemplate 등
  • @Bean에 아무런 값을 지정하지 않는다면 Method 이름을 camelCase로 변경한 것이 Bean id로 등록된다. method 이름이 arrayList()인 경우 arrayList가 Bean id
  • @Bean에 name이라는 값을 이용하면 자신이 원하는 id로 Bean을 등록할 수 있다. @Bean(name="myarray")

@Configuration

  • 이 어노테이션을 클래스에 적용하고 @Bean을 해당 Class의 method에 적용하면 @Autowired로 Bean을 부를 수 있다.

@EnableAutoConfiguration

  • Spring Application Context를 만들 때 자동으로 설정하는 기능을 켠다. classpath의 내용에 기반해서 자동으로 생성해준다. 만약 tomcat-embed-core.jar가 존재하면 톰캣 서버가 setting된다.

@Component

  • @Component 은 개발자가 직접 작성한 Class를 Bean으로 등록하기 위한 Annotation이다.
  • @Bean과 다르게 @Component는 name이 아닌 value를 이용해 Bean의 이름을 지정한다. @Component(value="mystudent")
  • Component에 대한 추가 정보가 없다면 Class의 이름을 camelCase로 변경한 것이 Bean id로 사용된다.

@ComponentScan

  • @Component와 @Service, @Repository, @Controller, @Configuration이 붙은 클래스 Bean들을 찾아서 Context에 bean등록을 해주는 Annotation이다.
  • @Component Annotation이 있는 클래스에 대하여 bean 인스턴스를 생성
  • 자동으로 등록되는 Bean의 이름은 클래스의 첫문자가 소문자로 바뀐 이름이 자동적용된다. HomeController -> homeController

@SpringBootApplication

  • @Configuration, @EnableAutoConfiguration, @ComponentScan 3가지를 하나의 애노테이션으로 합친 것. 게임 시작프로그램 느낌..?

@EnableEurekaServer

  • Eureka 서버로 만들어준다.

@EnableDiscoveryClient

  • Eureka 서버에서 관리될 수 있는 클라이언트 임을 알려주기위한 Annotation

@LoadBalanced

  • 로드밸런스 어노테이션을 통해 resttemplate에 ribbon을 적용할 수 있다.

@Value

  • @Value("${server.port}")
    private String portnum;
  • .properties 의 설정 값을 클래스로 가져와 코드에 사용할 수 있다.
profile
백엔드 개발자입니다 :)

0개의 댓글