반응형
공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^
|
new 연산자를 이용한 객체생성과 DI를 이용한 객체생성의 관계에
대해서 알아보겠습니다.
공통
Sub.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | package smaple; public class Sub { private String name; public Sub() { System.out.println("Sub클래스 객체 생성."); } public void setName(String name) { this.name = name; } public String getName() { return name; } } | cs |
1. new 연산자를 이용
Running.java
1 2 3 4 5 6 7 8 9 10 11 12 13 | package smaple; public class Running { public static void main(String[] args) { Sub sub = new Sub(); sub.setName("알통몬"); System.out.println("티스토리 블로그하는 " + sub.getName()); } } | cs |
2. DI 적용
Running2.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | package smaple; import org.springframework.context.support.GenericXmlApplicationContext; public class Running2 { public static void main(String[] args) { //xml 설정 파일을 불러오는 코드 GenericXmlApplicationContext ctx = new GenericXmlApplicationContext("classpath:sample.xml"); //new 연산자 대신에 getBean()을 통해 객체 불러옴. // ""안의 값은 xml파일에서 id=""안의 값 // 두 번째 매개 변수는 객체 생성하려는 클래스 Sub sub = ctx.getBean("sub", Sub.class); System.out.println("티스토리 블로그하는 " + sub.getName()); } } | cs |
sample.xml => src/main/resources
1 2 3 4 5 6 7 8 9 10 11 | <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="sub" class="smaple.Sub"> <property name="name" value="알통몬"/> </bean> </beans> | cs |
어떤 관계인지 보이시나요?
가장 먼저
new 연산자는 xml 파일의 <bean> 태그와 대치됩니다.
그리고 객체 생성 시 setName() 했던 부분은
<property 와 대치되는데요.
name="" 에는 setter 에서 set을 뺀 즉, 필드이름과 같게 넣어주시면 되고요,
value="" 에 setName("") 처럼 값을 넣어주시면 됩니다.
그리고 DI를 적용하고자 하는 클래스에 필드가 존재한다면 꼭 setter도 같이 존재해야 합니다.
위 두 방법을 실행해 보면 실행 결과는 같습니다.
단 스프링을 적용한 방법에서는 로그가 같이 출력됩니다.
이상입니다.
다음 포스팅에서는 DI를 xml로 또는 java 코드로
적용하는 방법에 대해 알아보겠습니다.
반응형
'Spring(스프링), Spring Boot(스프링부트), JSP' 카테고리의 다른 글
스프링(Spring) DI설정방법[2] : DI in JAVA (0) | 2018.01.02 |
---|---|
스프링(Spring) DI설정방법[1] : DI in XML (0) | 2017.12.28 |
스프링(Spring) DI(의존관계주입) 이란? (0) | 2017.12.28 |
스프링(Spring) jdbcTemplate.queryForInt is Deprecated. 대체 방법 (1) | 2017.11.14 |
NoClassDefFoundError: org/junit/runner/JUnitCore 해결 방법 (0) | 2017.11.10 |