스프링 - Annotation

BroJang·2022년 10월 18일

스프링

목록 보기
3/10

Annotation(어노테이션)
-> 사전적 의미로는 주석을 의미
-> 자바에서는 특별한 기능을 수행하도록 하는 기술

@Component
-> 타입을 통해 등록된 Bean 객체를 가져옴
-> 별다른 추가 정보가 없을 시 Class 명을 카멜케이스로 변경한 것을 Bean Id로 사용
-> name 대신 value로 Bean 이름을 지정

@Bean
-> 개발자가 Class 코드를 수정할 수 없을 때 사용
-> 같은 클래스 Bean을 여러개 등록 할 때 사용
-> name을 활용하여 원하는 id를 Bean으로 등록 가능

@Autowired
-> 속성, 생성자, setter 메소드에서 사용
-> 타입을 통해 자동으로 주입
-> property, constructor-arg 태그와 동일 역할

@Resource
-> 변수, Setter 메서드에서 사용
-> 이름을 통해 의존성 주입

@Inject
-> autowired annotation과 비슷하다.
-> Spring 3 부터 지원하기 시작

@Controller
-> Spring MVC에서 Controller Class에 쓰임
-> Controller를 의미
-> View Return을 하기 위해 사용

@RestController
-> View로 응답하지 않는 Controller
-> JSON 형태로 반환
-> HttpResponse로 바로 응답이 가능하며 ResponseBody 역할을 수행

@Service
-> Service Class에 쓰임

@Repository
-> DAO Class에서 사용
-> DB나 파일 등에 접근하는 method를 가지고 있는 Class에서 사용

@Configuration
-> @Bean이 1개 이상의 Class일 경우 Configuration을 사용하면 싱글톤 보장
-> 다형성을 활용하여 여러 구현체를 Bean으로 등록할 때 사용
-> 직접적인 제어가 불가능한 라이브러리 등록 시 사용

@EnableAutoConfiguration
-> Application Context를 생성할 때 자동 설정
-> classpath 내용을 기반으로 생성
-> 조건에 따라 Bean을 등록

@Required
-> 필수 Property 표시 (없을 경우 BeanInitializationException 발생)
-> Bean에 필수적으로 값을 넣어야 함.

@Qualifier
-> autowired와 같이 쓰임
-> 동일 타입의 Bean 객체가 있을 경우 해당 Id를 적어 원하는 Bean이 주입될 수 있도록 함

@PropertySource
-> @Configuration과 같이 사용
-> properties 위치를 넣어주면 Environment 객체에 Property 값이 자동으로 주입

@ConfigurationProperties
-> yaml 파일을 읽는데 사용
-> classpath:application.properties 파일이 조회됨

@Value
-> properties에서 값을 가져와서 적용할 때 사용(읽어들일 properties 지정)

@SpringBootApplication
-> @Configuration, @EnableAutoConfiguration, @ComponentScan 3가지 어노테이션을 하나로 합친 것

@RequestMapping
-> 요청 URL Mapping 목적으로 사용
-> Controller나 Controller의 Method에 적용
-> default로 GET 방식 설정

@ModelAttribute
-> View에서 전달해주는 파라미터를 VO 멤버변수로 바인딩
-> 태그의 name 값과 Class 멤버변수명과 일치해야 함(setmethod 포함)

@GetMapping
-> @RequestMapping(Method=RequestMethod.GET)과 동일

@SessionAttributes
-> Http 세선에 Model 정보 저장
-> session에 데이터 삽입

@RequestAttribute
-> Request 객체의 attribute를 가져올 수 있음

@RequestBody
-> HttpRequest의 requestBody의 데이터를 자바 객체로 맵핑

profile
끊임없이 배우고 진보하는 백엔드 개발자입니다. 배움에 있어서 최선을 다하자!

0개의 댓글