SPING/Spring 이용하기

[Spring] Spring 암호화 , 2가지방법

h0-0cat 2023. 6. 13. 18:55
728x90

Spring 암호화

 

vo

interface

 

// 긁지않은개발자
public interface Encryption {
	public void encryptData();
}

 

// 긁지않은개발자
public class MD5Encryption implements Encryption {
	@Override
	public void encryptData() {
		System.out.println("MD5 알고리즘으로 암호화 합니다.");
	}
}

 

 

// 긁지않은개발자
public class RSAEncryption implements Encryption {
	@Override
	public void encryptData() {
		System.out.println("RSA 알고리즘으로 암호화 합니다.");
	}
}

service

 

// 긁지않은개발자
public class Communication2 {

	private Encryption encryption;

	public Communication2(Encryption encryption) {
		super();
		this.encryption = encryption;
	}

	public void communicate() {
		encryption.encryptData();
	}
}

config

// 긁지않은개발자
@Configuration
public class AppConfig {
	@Bean
	public Messaging messaging1() {
		return new ActiveMQMessaging();
	}
	
	@Bean
	public Messaging messaging2() {
		return new MMSMessaging();
	}
	
	@Bean
	public Communication communication1() {
		Communication communication = new Communication();
		communication.setMessaging(messaging1());
		return communication;
	}
	
	@Bean
	public Communication communication2() {
		Communication communication = new Communication();
		communication.setMessaging(messaging2());
		return communication;
	}
	
	@Bean
	public Communication communication3() {
		Communication communication = new Communication();
		communication.setMessaging(new SMSMessaging());
		return communication;
	}
}

app (실행)

public class AppMain05 {
	public static void main(String[] args) {
		AbstractApplicationContext context = new AnnotationConfigApplicationContext(AppConfig2.class);

		Communication2 communication1 = context.getBean("communication1" , Communication2.class);
		communication1.communicate();
		
		Communication2 communication2 = context.getBean("communication2" , Communication2.class);
		communication2.communicate();
		
		Communication2 communication3 = context.getBean("communication3" , Communication2.class);
		communication3.communicate();
		
		context.close();
	}
}

실행 결과

MD5 알고리즘으로 암호화 합니다.

MD5 알고리즘으로 암호화 합니다.

RSA 알고리즘으로 암호화 합니다.

 

 


xml 이용해서 

 console 창에 2가지 출력해보기

// 긁지않은 개발자
<?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 name="encryption" 
		class="kr.human.di.vo.MD5Encryption" />

	<bean name="communication"
		class="kr.human.di.service.Communication3">
		<constructor-arg ref="encryption" />
		<property name="messaging">
			<bean class="kr.human.di.vo.MMSMessaging" />
		</property>
	</bean>
</beans>
// 긁지않은 개발자
public class Communication3 {

	private Encryption encryption;
	private Messaging messaging;

	public Communication3(Encryption encryption) {
		this.encryption = encryption;
	}
	
	public void setMessaging(Messaging messaging) {
		this.messaging = messaging;
	}



	public void communicate() {
		encryption.encryptData();
		messaging.sendMessage();
	}
}
// 긁지않은 개발자
public class AppMain06 {
	public static void main(String[] args) {
		AbstractApplicationContext context = new ClassPathXmlApplicationContext("AppConfig3.xml");

		Communication3 communication = context.getBean("communication" , Communication3.class);
		communication.communicate();
		
		context.close();
	}
}

실행 결과

MD5 알고리즘으로 암호화 합니다.

장문 문자 메세지를 전송합니다.

 

 

 

728x90