반응형
공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^
|
지난 포스팅에서는 DI in xml 에 대해서 공부했습니다.
2017/12/28 - [Spring(스프링)] - 스프링(Spring) DI설정방법[1] : DI in XML
이번 포스팅에서는
DI in JAVA 에 대해서 알아봅시다!
MAVEN 프로젝트를 만들어주시구요.
이번에는 DI를 자바에서 설정하기 때문에 별도의 스프링 설정 .xml 파일이 필요하지 않습니다.
총 세 개의 클래스를 사용합니다.
먼저 data가 될 클래스
Student.java
학생의 이름, 취미, 키를 담습니다.
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 32 33 34 35 36 37 38 39 40 41 | package org.mon.altong.di.java; import java.util.ArrayList; public class Student { private String name; private ArrayList<String> hobbys; private double height; public Student(String name, ArrayList<String> hobbys) { this.name = name; this.hobbys = hobbys; } public String getName() { return name; } public void setName(String name) { this.name = name; } public ArrayList<String> getHobbys() { return hobbys; } public void setHobbys(ArrayList<String> hobbys) { this.hobbys = hobbys; } public double getHeight() { return height; } public void setHeight(double height) { this.height = height; } } | cs |
그리고 두 번째로 스프링설정 .xml 파일이 아닌 자바 클래스를 만듭니다.
저는 AppConfig.java 라는 이름으로 만들었습니다.
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | package org.mon.altong.di.java; import java.util.ArrayList; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration // 스프링 설정에 사용되는 클래스라는 것을 명시해주는 어노테이션 public class AppConfig { @Bean public Student student1() { ArrayList<String> hobbys = new ArrayList<String>(); hobbys.add("Workout"); hobbys.add("Watching TV"); Student student = new Student("앑통몬", hobbys); student.setHeight(173); return student; } // 아래 bean 설정과 위 student1 의 설정은 같은 설정입니다. /*<bean id = "student1"class="org.mon.altong.di.java.Student"> <constructor-arg value="알통몬"/> <constructor-arg> <list> <value>Workout</value> <value>Watching TV</value> </list> </constructor-arg> <property name = "height"value="173"/> </bean>*/ @Bean public Student student2() { ArrayList<String> hobbys = new ArrayList<String>(); hobbys.add("Workout2"); hobbys.add("Watching TV2"); Student student = new Student("근육몬", hobbys); student.setHeight(175); return student; } } |
AppConfig 클래스에 @Configuration 어노테이션을 줌으로써 스프링 설정 클래스라고 명시합니다. 그리고 Student 타입을 반환하는 두 함수에는 @Bean 이라는 어노테이션이 있는데요.
<bean> </bean> 과 같은 의미입니다. 해당 함수를 bean으로 사용하겠다.
라는 어노테이션이 되겠습니다.
그럼 마지막으로 실행클래스입니다.
Running.java
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 | package org.mon.altong.di.java; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class Running { public static void main(String[] args) { AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(AppConfig.class); // src/main/resources 아래에 있는 .xml 스프링 설정 파일이 아닌, // 자바클래스 스프링 설정 파일을 불러 옵니다. Student student1 = ctx.getBean("student1", Student.class); System.out.println(student1.getName()); System.out.println(student1.getHobbys()); System.out.println(student1.getHeight()); Student student2 = ctx.getBean("student2", Student.class); System.out.println(student2.getName()); System.out.println(student2.getHobbys()); System.out.println(student2.getHeight()); ctx.close(); } } | cs |
이번 포스팅 역시 따라해보시면 쉽게 이해가 가능하실 거에요~
궁금하시거나, 이해가 안되는 부분은 댓글달아주세요
이상입니다.
감사합니다.
반응형
'Spring(스프링), Spring Boot(스프링부트), JSP' 카테고리의 다른 글
스프링(Spring) 스프링 컨테이너, 스프링 빈 생명주기 (0) | 2018.01.04 |
---|---|
스프링(Spring) DI설정방법[3] : DI java in XML and DI xml in JAVA (0) | 2018.01.02 |
스프링(Spring) DI설정방법[1] : DI in XML (0) | 2017.12.28 |
스프링(Spring) new 연산자를 이용한 객체생성과 DI를 이용한 객체생성의 관계 (0) | 2017.12.28 |
스프링(Spring) DI(의존관계주입) 이란? (0) | 2017.12.28 |