본문 바로가기
자바과정/스프링

스프링 실습 예제(static과 load로 외부 데이터 2개)

by Parkej 2021. 4. 7.

 

파일 구조
- java : AdminConnection, AppConfig, MainClass.java
- resource : appCTX.xml, pej.properties, pej2.properties
- Annotation과 xml방식 포함.
- 추가 예정: 주석, 분석

 

appCTX.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"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<!-- 
	<context:property-placeholder location = "classpath:pej.properties, classpath:pej2.properties" />
	
	<bean id = "adminConnection" class = "com.javalec.ex.AdminConnection">
		<property name="adminId">
			<value>${admin.id}</value>
		</property>
		<property name="adminPw">
			<value>${admin.pw}</value>
		</property>
		<property name="sub_adminId">
			<value>${sub_admin.id}</value>
		</property>
		<property name="sub_adminPw">
			<value>${sub_admin.pw}</value>
		</property>
	</bean> -->
</beans>

 

 

 

pej.properties / pej2.properties
// pej.properties
admin.id=pej 
admin.pw=12345


// pej2.properties
sub_admin.id=jep
sub_admin.pw=54321

 

 

 

AdminConnection.java
package com.javalec.ex;

import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;

public class AdminConnection implements InitializingBean, DisposableBean {
	
	private String adminId;
	private String adminPw;
	private String sub_adminId;
	private String sub_adminPw;

	public String getAdminId() {
		return adminId;
	}

	public void setAdminId(String adminId) {
		this.adminId = adminId;
	}

	public String getAdminPw() {
		return adminPw;
	}

	public void setAdminPw(String adminPw) {
		this.adminPw = adminPw;
	}

	public String getSub_adminId() {
		return sub_adminId;
	}

	public void setSub_adminId(String sub_adminId) {
		this.sub_adminId = sub_adminId;
	}

	public String getSub_adminPw() {
		return sub_adminPw;
	}

	public void setSub_adminPw(String sub_adminPw) {
		this.sub_adminPw = sub_adminPw;
	}

	@Override
	public void afterPropertiesSet() throws Exception {
		System.out.println("AfterProperties");
	}

	@Override
	public void destroy() throws Exception {
		System.out.println("destroy");		
	}

	
}

 

 

 

 

AppConfig.java
package com.javalec.ex;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;

@Configuration
public class AppConfig {
	@Value("${admin.id}")
	private String adminId;
	@Value("${admin.pw}")
	private String adminPw;
	@Value("${sub_admin.id}")
	private String sub_adminId;
	@Value("${sub_admin.pw}")
	private String sub_adminPw;
	
	@Bean
	public static PropertySourcesPlaceholderConfigurer Properties() {
		// static의 기능 : 외부에서 실행하기 때문에..
		PropertySourcesPlaceholderConfigurer configurer = new PropertySourcesPlaceholderConfigurer();
		
		Resource[] locations = new Resource[2];
		locations[0] = new ClassPathResource("pej.properties");
		locations[1] = new ClassPathResource("pej2.properties");
		configurer.setLocations(locations);
		return configurer;
	}
	
	@Bean
	public AdminConnection adminConfig() {
		AdminConnection adminConnection = new AdminConnection();
		adminConnection.setAdminId(adminId);
		adminConnection.setAdminPw(adminPw);
		adminConnection.setSub_adminId(sub_adminId);
		adminConnection.setSub_adminPw(sub_adminPw);
		
		return adminConnection;
	}
}

 

 

 

 

MainClass.java
package com.javalec.ex;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;

public class MainClass {

	public static void main(String[] args) {

//		AbstractApplicationContext ctx = new GenericXmlApplicationContext("classpath:appCTX.xml");
		
		
		AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(AppConfig.class); 
		
		AdminConnection connection = ctx.getBean("adminConfig", AdminConnection.class);
		
		System.out.println("adminID : " + connection.getAdminId());
		System.out.println("adminPW : " + connection.getAdminPw());
		System.out.println("sub_adminID : " + connection.getSub_adminId());
		System.out.println("sub_adminPW : " + connection.getSub_adminPw());
		
		ctx.close();
		
	}

}
반응형

댓글