티스토리 뷰

JSpring project의 기본적인 이해와 Bean의 생명주기를 간단하게 코드를 보면서 익혀보도록 할게요.

불러올 Bean을 만들기 전에 일단 간단하게 데이터를 전달받을 class를 만들어줍니다. 

 

 

Student.java

세터를 이용하는 대신 생성자를 이용해 name 값과 age값을 받는 class입니다. 

값은 저장해야되니까 getter는 남겨뒀어요 

 

이제 위의 클래스를 bean객체로 만들기 위해서 xml파일을 하나 만들어줄게요 

 

 이 xml은 일반적인 xml파일이 아닌 Spring Bean Configuration이라는 항목으로 만들어 줘야합니다. 

이름같은경우는 임의로 정할 수 있습니다.  Next를 누르고 원하는 xml 파일은 만들면 

src/main/resources 폴더안에 xml파일이 생성된것을 확인할 수 있습니다. 

xml파일을 생성하면 자동적으로 안에 구조가 생성되고 그 안쪽에 내가 원하는 bean을 만들어주면 됩니다.

이런식으로 만들어주시면 됩니다.  

<bean 

id="내가 이 bean을 불러올 때 쓰고 싶은 id 임의로 정할 수 있어요"

class="bean에서 불러올 class Student라는 클래스는 com.com.com 이라는 폴더안에 있기 때문에 위와같이 com이 붙어있습니다." 

>

다시 Student class로 들어와서 Student class는 생성자가 존재합니다.  그래서 해당 생성자 값을 만족해주지 않으면 오류가 납니다. 생성자 값으로 제가 받게 될 값은 Name과 age입니다. 이 값을 bean에서 받아오는 방식은

<constructor-agr></constructor-agr> 입니다. constructor는 말그대로 생성자라는 의미가 있습니다.

value값도 쥐어줘야하는데 방식에는 크게 두가지가 있습니다. 

<constructor-agr value="Name의 값"/> 을통해 값을 넣어줌과 동시에 닫아줄 수 있고

<constructor-agr>

<value>

Name의 값

</value>

</constructor-agr>

와 같은 방식으로 넣어줄 수도 있습니다. 

가장 간단한 방식으로는 

<bean id="" class="" c:name="Name값"> 처럼 한줄로 넣을 수도 있습니다. 

본인의 상황이나 입맛에 맞게 사용하면 될 것 같습니다. 

다만 c:변수명="value" 는 사용하기 위해서 

www.springframework.org/schema/c"라는 값을 추가해야합니다. 

자주쓰는 방식은 <constructor-agr>방식이니 일단 생성자값은 이런식으로 넣는다고 생각해주세요.

그리고 한가지더, 생성자를 활용하는 것이기 떄문에 해당 생성자에서 받아야하는 값을 모두 넣어줘야해요 

name 값만 넣는게 아닌 age값도 받아줘야합니다. 

그렇기에 <constructor-agr>이 두번 사용됩니다. 

bean에 밸류값을 넣어줬고 다음으로는 이 bean을 불러와야합니다. 

bean 을 불러오는 방법에는 여러가지가 있지만 이번에는 ctx.load와 ctx.refresh를 통해서 

bean 객체를 불러와 볼게요 

MainClass.java를 하나 만들어주고 아래와 같이 입력해줍니다. 

ctx.load를 위해서는 

import org.springframework.context.support.GenericXmlApplicationContext;

라는 구문을 MainClass에 넣어줘야하고 

가장 첫번째로 불러오기위한 준비를 해야합니다. 

GenericXmlApplicationContext ctx=
new GenericXmlApplicationContext(); 

ctx안에 Xml App을 사용하기 위한 준비를 합니다. 

다른 방식을 사용하면 ()안에 불러올 xml파일의 값을 넣지만 

Generic방식이기 때문에 

ctx.load("classpath:(불러올xml파일.xml)");을 통해 불러와 줍니다. 

제가 불러올 xml파일의 이름은 app1.xml이기 때문에 해당 값을 넣어줍니다. 

ctx.refresh();통해 설정을 마무리해주면 bean 객체가 생성이 됩니다. 

bean객체가 생성되었다고 아직 사용할준비가 끝난건 아니에요 

Student student1(그릇준비)=ctx.getBean("Student1",Student.class);(ctx에 담긴 bean중에 ("Student1"이라는id를 가진,Student.class를 가져와서 Student1안에 담겠다) 

라는 의미를 가지고 있어요 

이제 student1안에는 bean이 가지고 있는 value값들이 모두 들어있습니다. 

그래서 print를 했을때 .getName .getAge를 통해 저희가 bean에서 넣어줬던 값들이 출력되는 것을 볼 수 있습니다. 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함