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
'SPING > Spring 이용하기' 카테고리의 다른 글
[Spring] Spring @Component뜻과 사용법 (0) | 2023.06.14 |
---|---|
[Spring] Spring @Annotation(어노테이션) 이해하기 (0) | 2023.06.13 |
[Spring] Spring 이메일, SNS 메세지 보내기 (0) | 2023.06.13 |
[Spring] Spring 문자 메세지 전송 출력 (0) | 2023.06.13 |
[Spring] Spring 시작하기 (@Configuration,@Bean) (0) | 2023.06.13 |