일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Servlet cookie
- 오라클 TRUNCATE
- properties 파일 주입
- JSR - 303
- 자바스크립트
- Spring MVC5 기본 세팅
- 자바오류
- 스프링 파라미터 추출
- properties 변수
- annotation
- 자바
- properties 파일
- Dependency Injection
- 코드로 배우는 스프링 웹 프로젝트
- collection framework
- Spring MVC Interceptor
- Spring Cookie
- Spring 객체로 주입받기
- Spring message
- ddl alter
- Spring
- DDL TRUNCATE
- Spring 커맨드 객체
- DDL DROP
- 오라클 CREATE
- 자바 List
- 스프링 인터셉터
- 오라클 DROP
- Mybatis 오류
- JSR - 380
- Today
- Total
개발이좋아
[Java] Annotation 본문
자바 Annotation은 컴파일러에게 특정 정보를 주는 역할을 한다.
Annotation의 사전적 의미는 '주석'으로 @기호와 함께 쓰인다.
@Annotation
위와 같은 형식으로 사용하며 @뒤에 Annotation의 이름이 오면 된다.
예를 들어 @Override와 같은 어노테이션은 이 메서드가 하위 클래스에서 재정의된 메서드라는 뜻이다.
이 외에도 스프링과 같은 프레임워크에서 사용하는 @Autowired, @Service, @Component, @Controller 등등 다양한 Anntation이 있다.
웹 같은 경우 자바로 많이 개발하는데 웹 개발 시 사용하는 스프링 프레임워크에서 어노테이션을 많이 사용하므로 잘 알아두면 좋다.
필요의 의해 개발자가 직접 Annotation을 만들어 사용할 수도 있다.
@Override : 컴파일러에게 해당 메서드가 재정의된 메서드라고 정보를 제공함
@FunctionalInterface : 함수형 인터페이스라는 정보 제공
@Deprecated : 이후 버전에서 사용되지 않을 수 있는 변수, 메서드에 사용되며 해당 변수와 메서드를 사용하지 않도록 유도
@SuppressWarnings : 특정 경고가 나타나지 않도록 함
위의 Annotation들이 자바에서 제공하는 표준Annotation중 자주 쓰이는 것들이다.
이 외에도 어노테이션에 대해 좀 더 많은 정보를 추가할 수 있는 '메타 어노테이션'을 제공한다.
https://docs.oracle.com/javase/8/docs/api/
Java Platform SE 8
docs.oracle.com
위 사이트는 오라클에서 제공하는 자바8버전 레퍼런스 사이트로 어노테이션의 관한 더 자세한 설명은 위 사이트에서 검색해보면 좋다.
위 사진에 12행을 보면 @Override라고 선언되어 있다.
이는 toString( ) 메서드가 재정의된 메서드라고 컴파일러에게 알리는 역할을 한다.
어노테이션을 작성하지 않아도 정상작동하나 어노테이션을 작성하지 않으면 예외를 발생시키는 경우도 있다.
예를 들어 스프링에서 의존성 자동 주입등의 기능을 사용할 때에는 꼭 @Autowride 어노테이션을 붙여주어야 한다.
이렇듯 어노테이션은 컴파일러에게 정보를 알려주는 역 할부터 시작해 다양하고 편리한 기능을 제공한다.
개발자가 직접 만드는 Custom Annotation은 인터페이스로 만들 수 있다.
인터페이스를 생성한 후 public interface에서 @interface와 같이 interface앞에 @를 붙여 주고 구현부에 필요한 기능을 정의하면 된다.
어노테이션을 만들 때 targer이나 default 등 지정할 수 있는 속성들이 많다.
본 포스팅은 필자가 공부한 내용을 정리한 것으로 오류가 존재할 수 있습니다.
참고: Do it! 자바 프로그래밍 입문
'Java' 카테고리의 다른 글
[Java] Collection Framework - List 인터페이스 (0) | 2019.12.19 |
---|---|
[Java] 컬렉션 프레임워크란? (Collection Framework) (0) | 2019.12.18 |
[Java] 향상된 for문 (Enhanced for loop) (0) | 2019.12.16 |
[Java] 정보은닉과 getter/setter (0) | 2019.12.15 |
[Java] 싱글톤 패턴 (Singleton Pattern) (0) | 2019.12.14 |