티스토리 뷰

카테고리 없음

[Jspring]annotation 2.

박강균 IT 2021. 4. 7. 17:23

xml을 사용하지않는 값의 전송방식 2번째입니다. 

MainClass부터 보도록 할게요.

package com.java.te;

import java.util.Scanner;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class MainClass {
	
	public static void main(String[] args) {
		
		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";
		}
	
		AnnotationConfigApplicationContext ctx= new
				AnnotationConfigApplicationContext(); // 클래스 등록 ApplicationConfig 안의 내용을 읽기 위해
		ctx.getEnvironment().setActiveProfiles(config);
		ctx.register(run.class, dev.class);
		
		
		ctx.refresh();

		
		ServerInfo connection
		= ctx.getBean("serverInfo", ServerInfo.class);
		System.out.println("ip : " + connection.getIpNum());
		System.out.println("port : "+ connection.getPortNum());
		ctx.close();
	}

}
​

Profile을 이용해서 원하는 값만 출력하도록 메인을 문을 작성했습니다.

Profile을 활용하는 방법은 아래서 설명하도록 하렉요 

Scanner를 통해서 config값을 설정해줍니다 config는 따로 기능이 있는 것이 아닌 String문을 담는 그릇입니다. 

 

package com.java.te;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;

@Configuration
@Profile("dev")
public class dev {
	
//	@Value("${ipNum}")// 프로퍼티에만 사용
//	private String ipNum;
//	@Value("${portNum}")
//	private String portNum;
	
	
	@Bean
	public ServerInfo serverInfo() {
		ServerInfo serverInfo = new ServerInfo();
		serverInfo.setIpNum("localhost2");
		serverInfo.setPortNum("81");
		return serverInfo;
		
	}

}
package com.java.te;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;

@Configuration
@Profile("run")
public class run {
	
//	@Value("${ipNum}")//프로퍼티에만 사용
//	private String ipNum;
//	@Value("${portNum}")
//	private String portNum;
	
	
	@Bean
	public ServerInfo serverInfo() {
		ServerInfo serverInfo = new ServerInfo();
		serverInfo.setIpNum("localhost");
		serverInfo.setPortNum("8181");
		return serverInfo;
		
	}

}
package com.java.te;

public class ServerInfo {
	
	private String ipNum;
	private 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;
	}

}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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
글 보관함