Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 안드로이드
- 개발
- annotation
- JPA 동시성
- Pessimistic Lock
- 스프링
- spring security 인증
- 암호화
- 캠프
- JPA 낙관적락
- JPA
- flask
- 디자인 패턴
- spring
- 서버개발캠프
- 스프링 log
- bean
- component
- spring security
- Transaction isolation level
- JPA Lock
- Android
- Optimistic Lock
- 스프링 로그
- JPA 비관적락
- 낙관적락 비관적락 차이
- 서버
- Redis
- Inno DB
- 스마일게이트
Archives
- Today
- Total
모르는게 많은 개발자
[Spring] @Component를 이용한 객체 생성 방법 본문
반응형
이번 포스팅에서는 기존의 XML에 bean(객체를)을 생성했던 방식에서 직접 JAVA 코드에서 객체를 생성하는 방법에 대해 알아보자.
1. @Component
먼저 기존의 XML을 통해 bean을 만들던 것을 보자.
<bean id="console" class="spring.di.ui.InlineExamConsole" />
위의 코드처럼 <bean>태그를 사용해서 객체를 생성했다. 이것을 @Component Annotation을 이용해서 아래와 같이 할 수 있다.
@Component("console") //"console"은 bean의 id
public class InlineExamConsole implements ExamConsole {
@Autowired
private Exam exam;
public InlineExamConsole() {
}
public InlineExamConsole(Exam exam) {
this.exam = exam;
}
//후략..
}
@Component의 의미는 클래스를 bean으로 등록한다라는 의미이다.
주의할 점은 @Component를 선언하고 이것을 xml에서 읽게 하기 위해서는 XML에 아래와 같은 태그를 달아줘야한다.
<!-- @Component가 있는 클래스의 Package를 스캔하라는 뜻 --!>
<!-- @Component가 있는 클래스가 여러 패키지에 있을 경우 ,를 통해 여러개 입력 --!>
<context:component-scan base-package="spring.di.ui, spring.di.entity" />
2. @Value
그렇다면 @Component를 이용해서 객체를 만들었는데 안의 property는 어떻게 설정할까? 기존에는 아래처럼 <constructor-arg>, <property>를 이용해 변수에 값을 설정해줬다. 이것을 @Component를 이용해 만든 객체에서는 @Value를 이용해 값을 설정할 수 있다.
<bean id="exam" class="spring.di.entity.NewlecExam">
<constructor-arg name="kor" value="30"/>
<constructor-arg name="eng" value="20"/>
<constructor-arg name="com" value="10"/>
<constructor-arg name="math" value="0"/>
</bean>
@Component("exam")
public class NewlecExam implements Exam {
@Value("20")
private int kor;
@Value("40")
private int eng;
private int math;
private int com;
//후략..
}
각 변수에 @Value Annotation을 사용해 값을 설정한다. NewlecExam도 bean으로 생성하기 때문에 @Component를 사용한다.
참고
https://www.youtube.com/watch?v=pyMzPpK4uXk&list=PLq8wAnVUcTFUHYMzoV2RoFoY2HDTKru3T&index=16
반응형
'스프링' 카테고리의 다른 글
[Spring] Boot와JPA(Mysql)을 이용한 Rest API 간단 예제 (0) | 2020.05.07 |
---|---|
[Spring] XML Configuration와 Java Configuration 비교 (0) | 2020.04.08 |
[Spring] @Autowired @Qualifier 개념/예제 (0) | 2020.04.04 |
[Spring] AppicationContext, XML Configuration 예제 (0) | 2020.04.02 |
[Spring] DI 개념 정리 (0) | 2020.03.31 |
Comments