@Autowired
의존 관계를 자동 설정 할 때 사용하며 타입을 이용하며 의존하는 객체를 주입한다. @Autowired 를 사용하면 new 연산자를 통해 객체를 생성하지 않아도 접근이 가능하다. 따라서 해당 타입의 bean 객체가 존재하지 않거나 두개 이상이면 에러를 발생시킨다.
- @Autowired(required=false) 라고 사용하면 해당 타입의 객체가 존재하지 않아도 에러가 발생하지 않는다.
- 같은 타입의 bean 객체가 두 개 이상 존재 할 때 @Qualifier('Bean 이름') 처럼 bean 이름을 지정해 주면 에러가 발생하지 않는다.
@Component
Autowired 할 클래스 위에 명시한다.
@Bean
리턴값이 컴포넌트가 되도록 한다.
@Configuration 안에 있어야 bean이 생성된다.
1
2
3
4
5
6
7
8
9
10
|
@Configuration
public interface BeanInterface {
@Bean
default SomeBean someBean() {
return new SomeBean();
}
}
|
cs |
@Service
Service 클래스에 쓰인다. 비지니스 로직을 수행하는 클래스라는 의미를 타나낸다.
@Controller
Controller 클래스에 쓰인다.
@Resource
@Autowired 와 쓰임이 비슷하지만 타입이 아닌 이름으로 연결된다는 차이점이 있다.
Ex) @Resource(name="bean 이름")
@Value
프로퍼티에서 값을 가져와 주입한다.
1
2
3
|
@Value("${system.mail.from}")
private String mailFrom;
|
cs |
@RestController
@Controller 와 @ResponseBody 를 합쳐놓은 의미로서 리턴되는 값이 View 로 응답하는 것이 아닌 HttpResponse 로 바로 응답한다.
@RequestMapping
요청받은 URL 을 어떤 메소드가 처리할 지 매핑해주는 역할을 한다.
1
2
3
4
5
6
7
8
9
10
11
12
|
/**
* 요청 URL 예시 : https://localhost:8443/admin-web/api/projects
*
**/
@RestController
@RequestMapping(value = "/api/projects")
public class ProjectController {
// ... logic area
}
|
cs |
@PathVariable
요청 URL 중 변수값을 파싱한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
/**
* 요청 URL 예시 : [GET] https://localhost:8443/admin-web/api/projects/1
*
**/
@RestController
@RequestMapping(value = "/api/projects")
public class ProjectController {
@GetMapping("/{id}")
public ResponseEntity find(@PathVariable(value = "id") Long id) {
// ... logic here
}
}
|
cs |
@RequestBody
POST, PUT 등으로 요청 받았을 때, 요청 값으로 넘어오는 body 값 들을 자바 타입으로 파싱한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
/**
* 요청 URL 예시 : [POST] https://localhost:8443/admin-web/api/projects/1
*
**/
@RestController
@RequestMapping(value = "/api/projects")
public class ProjectController {
@GetMapping("/{id}")
public ResponseEntity find(@PathVariable(value = "id") Long id) {
// ... logic here
}
@PostMapping("/{id}")
public ResponseEntity find(@PathVariable(value = "id") Long id, @RequestBody Module paramModule) {
// ... logic here
}
}
|
cs |
@RequestParam
'?paramName=paramValue' 와 같은 쿼리 파라미터를 파싱한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
/**
* 요청 URL 예시 : [GET] https://localhost:8443/admin-web/api/projects/1?paramNm=test
*
**/
@RestController
@RequestMapping(value = "/api/projects")
public class ProjectController {
@GetMapping("/{id}")
public ResponseEntity find(@PathVariable(value = "id") Long id, @RequestParam String paramNm) {
// ... logic here
}
}
|
cs |
계속 추가될 예정 ...
2019/08/01 최초 작성
- https://backback.tistory.com/115
' └ JAVA' 카테고리의 다른 글
[Java] Maven Spring 메일 보내기 (email 보내기) - 1. Basic (0) | 2019.08.16 |
---|---|
[JAVA] 현재 시간, 날짜 구하기 (0) | 2019.08.16 |
[JAVA] Map에 배열/List 넣기 (Object형 사용) (2) | 2017.12.20 |
[JAVA] 무한대 정수 BigInteger 사용하기 (0) | 2016.04.11 |
[Java] 스트림의 개념, 종류/파일 입출력/InputStream/OutputStream/Reader/Writer (6) | 2015.07.28 |