일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- spring boot
- ssh
- EC2
- db
- 코딩테스트
- 책 정리
- window
- AWS
- jdbc
- Git
- github
- Spring Legacy Project
- docker
- 프로그래머스
- vagrant
- TLS
- Java
- Hibernate
- spring
- sample
- mariadb
- Jenkins
- Client
- centos7
- WebHook
- DISTINCT
- SSL
- Linux
- 토비의스프링
- TypeScript
- Today
- Total
Woopii Vyeolog
어노테이션(@) 간략 설명 본문
************************* 참고 **************************
MVC모델을 만들때 각 영역의 이름을 아래 처럼 두고 하는 경우가 많다고 함(알파벳 순이라 보기 편한듯)
1. domain : 데이터 객체
2. repo(싱글턴으로 구현) : Repository
3. service(싱글턴으로 구현) : Service
4. web(싱글턴으로 구현) -- 컨트롤러가 여기로 들어간다
**********************************************************
프로그램이 거대해 짐에 따라 XML을 이용하여 IOC Container 를 설정하는 것이 점점 어려워졌고, 그에 따라
어노테이션(Annotation)이란것이 등장을 했다. 어노테이션은 코드에 메타데이터를 작성하여, 직관적인 코딩이
가능하게 만들어주며, 이에 따라 생산성이 증대되는 장점을 가지고 있다.
*********참고
메타데이터?? : 데이터에 관한 구조화된 데이터로, 다른 데이터를 설명해 주는 데이터이다. 대량의 정보 가운데에서 찾고 있는 정보를 효율적으로 찾아내서 이용하기 위해 일정한 규칙에 따라 콘텐츠에 대하여 부여되는 데이터이다.
어노테이션은 앞에 @를 쓰고 명명하고 싶은 이름을 적는다.
@Configuration : 스프링 IOC Container에게 해당 클래스는 Bean 구성 클래스임을 알려줌
@bean VS @Component
@Bean 어노테이션과 @Conponent 어노테이션 둘다 Spring IOC container에 Bean을 등록하도록
하는 어노테이션이다. 둘의 용도에서 약간의 차이가 있다.
@Bean : 개발자가 직접 제어가 불가능한 외부 라이브러리 등을 Bean으로 만들려고 할 때 사용됨
@Component : 개발자가 직접 작성한 클래스를 bean으로 등록하게 위한 어노테이션이다.
@Autowired(중요!!)
Bean의 의존성 주입은 @AutoWired를 이용하여 할 수 있다.
가져와서 사용하고 싶을 때 Singleton으로 사용될 수 있게끔 있는 거 찾아서 호출만 해주는거임
----> private로 해당 클래스 선언만 하고 어노테이션으로 autowired해주면 알아서 찾아서 호출 해줌
*******의존성 주입(Difendency Injection) 이란????
먼저, 한가지 예를 보면,
//먼저 Component 어노테이션으로 bean을 등록하고
@Component
public class Tire{
public void roll(){
//content
}
}
//Car라는 상위 모듈 안에 하위 모듈로서 Tire클래스가 들어가게 한다.
//여기서 Car는 Tire의 메소드를 이용하니 의존한다고 말할 수 있으며 둘은 의존 관계이다.
//그리고 new를 통해 객체를 만들거나 @AutoWried 어노테이션을 사용하여 해당 객체를 가져와서
//사용하게 하는 것을 의존성 주입(Defendency Injection)이라고 한다.
@Component
public class Car{
//Tire tire = new Tire();
@AutoWired
private Tire tire;
public void run(){
tire.roll();
...
...
...
}
}
@Repository(Compoenet 상속)
--> 해당 클래스가 Repository의 역활을 한다고 명시해주는 어노테이션
@Service(Compoenet 상속)
--> 해당 클래스가 Service의 역활을 한다고 명시해주는 어노테이션
@Controller(Compoenet 상속)
--> 해당 클래스가 Controller의 역활을 한다고 명시해주는 어노테이션
출처
'Spring Framework' 카테고리의 다른 글
Spring 다운, 설치, 한글 설정(UTF-8) (0) | 2020.03.16 |
---|---|
Spring FrameWork 에서 CSS파일 JS파일 가져오기가 안될 때 (2) | 2020.02.12 |
IOC container, DIP, DI Framework (1) | 2020.02.11 |
Bean VS POJO (1) | 2020.02.11 |
MVC 모델 (0) | 2020.02.10 |