xml방식
appbean_dev.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"
profile="dev"
>
<bean id="serverInfo" class="com.spring.profile.ServerInfo">
<property name="ipNum" value="localhost"></property>
<property name="portNum" value="8181"></property>
</bean>
</beans>
appbean_run.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"
profile="run">
<bean id="serverInfo" class="com.spring.profile.ServerInfo">
<property name="ipNum" value="192.168.0.253"></property>
<property name="portNum" value="8181"></property>
</bean>
</beans>
ServerInfo.java
package com.spring.profile;
public class ServerInfo {
String ipNum;
String portNum;
public String getIpNum() {
return ipNum;
}
public void setIpNum(String ipNum) {
this.ipNum = ipNum;
}
public String getPortNum() {
return portNum;
}
public void setPortNum(String portNum) {
this.portNum = portNum;
}
}
MainClass.java
package com.spring.profile;
import java.util.Scanner;
import org.springframework.context.support.GenericXmlApplicationContext;
public class MainClass {
public static void main(String[] args) {
// TODO Auto-generated method stub
String config=null;
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
if(str.equals("dev")){
config="dev";
}
else if(str.equals("run")){
config="run";
}
scanner.close();
GenericXmlApplicationContext ctx = new GenericXmlApplicationContext();
ctx.getEnvironment().setActiveProfiles(config);
ctx.load("profile/appbean_dev.xml", "profile/appbean_run.xml");
ctx.refresh();
ServerInfo serverInfo = ctx.getBean("serverInfo", ServerInfo.class);
System.out.println(serverInfo.getIpNum());
System.out.println(serverInfo.getPortNum());
ctx.close
}
}
결과
java 방식
ServerInfo.java는 동일
ApplicationConfigRun.class
@Configuration
@Profile("run")
public class ApplicationConfigRun {
@Bean
public ServerInfo serverInfo(){
ServerInfo info = new ServerInfo();
info.setIpNum("192.168.0.253");
info.setPortNum("8181");
return info;
}
}
ApplicationConfigDev.class
@Configuration
@Profile("dev")
public class ApplicationConfigDev {
@Bean
public ServerInfo serverInfo(){
ServerInfo info = new ServerInfo();
info.setIpNum("localhost");
info.setPortNum("8181");
return info;
}
}
MainClass.java
package com.spring.profile;
import java.util.Scanner;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;
public class MainClass {
public static void main(String[] args) {
// TODO Auto-generated method stub
String config=null;
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
if(str.equals("dev")){
config="dev";
}
else if(str.equals("run")){
config="run";
}
scanner.close();
// GenericXmlApplicationContext ctx = new GenericXmlApplicationContext();
// ctx.load("profile/appbean_dev.xml", "profile/appbean_run.xml");
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
ctx.getEnvironment().setActiveProfiles(config);
ctx.register(ApplicationConfigRun.class, ApplicationConfigDev.class);
ctx.refresh();
ServerInfo serverInfo = ctx.getBean("serverInfo", ServerInfo.class);
System.out.println(serverInfo.getIpNum());
System.out.println(serverInfo.getPortNum());
ctx.close();
}
}
'기초 > spring framework' 카테고리의 다른 글
Spring JDBC (0) | 2015.07.06 |
---|---|
한글처리 (0) | 2015.07.02 |
외부로 부터 파일을 가져오기 (0) | 2015.06.25 |
InitializingBean, DisposableBean (0) | 2015.06.24 |
XML과 JAVA 를 같이 사용 (0) | 2015.06.24 |