-
Annotation으로 객체(bean)을 생성하기JAVA/웹 프로그래밍 - Spring 2020. 12. 14. 22:11
아래의 내용의 연장선이다.
designatedroom87.tistory.com/337
기존의 프로젝트에 src폴더에 anotest패키지를 만든다.
기존에 xml설정 파일에서 bean에서 객체를 생성했다.
객체를 생성하는 부분 전체를 주석처리 하자.그리고 config.xml에서 아래와 같이 두 문장을 추가해야 한다.
config.xml
더보기<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd"> <!-- @Autowired를 사용하기 위해서는 추가 --> <context:annotation-config/> <context:component-scan base-package="anotest"/> <!-- 주석 단췩키는 CTRL + SHIFT + / --> <!-- <bean id="sungjuk" class="anotest.Sungjuk" /> --> <!-- <bean id="sungjuk1" class="anotest.Sungjuk"> <constructor-arg value="10"></constructor-arg> <constructor-arg value="10"></constructor-arg> <constructor-arg value="10"></constructor-arg> </bean> <bean id="sungjuk2" class="anotest.Sungjuk"> <property name="kor" value="20"></property> <property name="eng" value="20"></property> <property name="math" value="20"></property> </bean> <bean id="sungjuk3" class="anotest.Sungjuk" p:kor="30" p:eng="30" p:math="30" /> --> <!-- 아래는 Sungjuk클래스와 상관없는 객체이다. bean은 객체를 생성한다. int는 값이다. --> <bean id="s1" class="java.lang.String"> <constructor-arg><value>50</value></constructor-arg> </bean> <bean id="s2" class="java.lang.String"> <constructor-arg><value>60</value></constructor-arg> </bean> <bean id="s3" class="java.lang.String"> <constructor-arg><value>70</value></constructor-arg> </bean> </beans>
객체를 생성하기 위해서는 Sungjuk클래스에 @Component를 붙인다.
그리고 보통 성적 클래스에 국어,영어, 수학 점수는 자료형을 int가 아닌 String으로 두는 이유는
앞에서 값을 주입하는 방법은 2가지 방법이 있다.
생성자에서 한 번에 매개변수를 통해 받는 방법과 set함수를 통해 전달 받는 방법이 있다.
여기서 중요한 점은 전달 받을 시에, 매개변수는 일반 변수가 아닌, 객체를 통해 받아야 한다.
즉, int kor, int eng, int math등을 클래스에 정의하면 안 된다.
@Value를 통해 필드에 직접 값을 입력가능하다.
그리고 만약 어노테이션 @Qualifier가 해당 위치에 허용이 되지 않는다 라는 에러 메시지가 뜨면
이는 spring의 버전이 낮아서 발생하는 문제일 수 있다.
이는 위의 게시글의 끝 부분에서 버전을 pom.xml에서 높이는 부분이 있다. 이를 참고 하자.
Sungjuk.java
아래의 Main.java는 실행파일이다.
Main.java
'JAVA > 웹 프로그래밍 - Spring' 카테고리의 다른 글
Spring MVC2 - 2. (0) 2020.12.16 Spring MVC2 - 1. 기본 설정 (0) 2020.12.15 자바 프로젝트를 Spring으로 만들기(전체 처음부터 다시 보기) (0) 2020.12.11 자바 프로젝트를 Spring으로 만들기(Interface 다시 보기) (0) 2020.12.09 프로젝트를 Maven 프로젝트로 변경하기 (0) 2020.12.08