스프링 다중XML설정파일, XML import, XML설정파일의분리(스프링동영상/자바동영상/자바교육/스프링교육/SpringFramework/스프링프레임워크/스프링학원/자바학원/자바/JAVA)
http://ojc.asia/bbs/board.php?bo_table=LecSpring&wr_id=866

스프링 다중XML설정파일, XML import, XML설정파일의분리(스프링동영상/자바동영상/자바교육/스프링교육/SpringFramework/스프링프레임워크/스프링학원/자바학원/자바/JAVA)

스프링 다중XML설정파일, XML import, XML설정파일의분리(스프링동영상/자바동영상/자바교육/스프링교육/SpringFramework/스프링프레임워크/스프링학원/자바학원/자바/JAVA)
1. 다중 XML 설정 파일
크고 복잡한 Spring 기반 애플리케이션의 경우 애플리케이션의 XML 설정(빈 정의)을 더 작은 조각으로 모듈화하여 유지 관리를 쉽게하기도 합니다.
여러 개의 XML 파일을 ApplicationContext 생성시 하나씩 로딩 할 수 있습니다. 새 파일을 추가해야 하는 경우 소스코드를 변경해야한다.
ApplicationContext factory = new ClassPathXmlApplicationContext("controller.xml","service.xml","dao.xml");
<import> 요소를 이용하면 설정파일을 단일 XML 파일로 구성 할 수 있습니다. 하나의 XML 파일에 아래 내용을 기술하고 그 파일만 로딩하면 된다.
[applicationContext.xml]
<import resource="dao.xml" />
<import resource="service.xml" />
<import resource="controller.xml" />
ApplicationContext factory = new ClassPathXmlApplicationContext(“applicationContext.xml");
2. 실습

사진 삭제
자바/스프링프레임워크/자바교육/스프링교육/스프링동영상

사진 삭제
자바/스프링프레임워크/자바교육/스프링교육/스프링동영상
사진 설명을 입력하세요.
project name : multixml
--------------------- pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>multixml</groupId>
<artifactId>multixml</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>multixml</name>
<description>multixml</description>
<properties>
<java-version>1.8</java-version>
<org.springframework-version>5.2.9.RELEASE</org.springframework-version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework-version}</version>
</dependency>
</dependencies>
</project>
-------------------- Emp.java
package multixml;
public class Emp {
private String empno;
private String ename;
public Emp(String empno, String ename) {
super();
this.empno = empno;
this.ename = ename;
}
@Override
public String toString() {
return "Emp [empno=" + empno + ", ename=" + ename + "]";
}
public String getEmpno() {
return empno;
}
public void setEmpno(String empno) {
this.empno = empno;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
}
-------------------- EmpDao.java
package multixml;
import java.util.ArrayList;
import java.util.List;
public class EmpDao {
public List<Emp> getAllEmps() {
List<Emp> emps = new ArrayList<Emp>();
emps.add(new Emp("1", "이종철"));
emps.add(new Emp("2", "오라클자바커뮤니티"));
return emps;
}
}
------------------- EmpService.java
package multixml;
import java.util.List;
public class EmpService {
private EmpDao empDao;
public void setEmpDao(EmpDao empDao) {
this.empDao = empDao;
}
public List<Emp> getAllEmps() {
return empDao.getAllEmps();
}
}
-------------------- EmpController.java
package multixml;
import java.util.List;
public class EmpController {
private EmpService empService;
public void setEmpService(EmpService empService) {
this.empService = empService;
}
public void getAllEmps() {
List<Emp> emps = empService.getAllEmps();
emps.forEach( emp -> System.out.println(emp) ); //jdk 1.8이상
}
}
------------------ EmpTest.java
package multixml;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class EmpTest {
public static void main(String[] args) {
ApplicationContext factory = new ClassPathXmlApplicationContext("controller.xml","service.xml","dao.xml");
//ApplicationContext factory = new ClassPathXmlApplicationContext("applicationContext.xml");
EmpController empController = factory.getBean(EmpController.class);
empController.getAllEmps();
}
}
------------------ applicationContext.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<import resource="dao.xml" />
<import resource="service.xml" />
<import resource="controller.xml" />
</beans>
------------------- dao.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="empDao" class="multixml.EmpDao" />
</beans>
------------------- service.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="empService" class="multixml.EmpService ">
<property name="empDao" ref="empDao" />
</bean>
</beans>
-------------------- controller.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="empController" class="multixml.EmpController">
<property name="empService" ref="empService" />
</bean>
</beans>
[실행결과]
Emp [empno=1, ename=이종철]
Emp [empno=2, ename=오라클자바커뮤니티]
#스프링설정파일, #XML파일분리, #스프링DI, #스프링IoC, #SpringDI, #SpringIoC, #자바스프링, #Spring동영상, #Spring강의, #스프링프레임워크, #스프링교육, #스프링학원, #스프링강좌, #스프링강의, #자바학원, #자바, #스프링동영상, #자바동영상, #스프링프레임워크교육, #스프링프레임워크강의, #스프링프레임워크학원
댓글 없음:
댓글 쓰기