Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Info

Spring-Boot에서는 Spring이외의 외부오픈소스 요소와 통합하고

상호운영할수 있도록 잘 구성이 되어 있습니다.

여기서는 Spring-Boot에서 공식 지원하지 않는 외부요소를 SpringBoot에

통합하는 방법을 알아보겠습니다.


Spring Bean

Spirng에서 사용하기위한 특정한 인스턴스라고 우선 간단하게 정의하겠습니다.

...

Java Bean(Oracle)/Spring Bean 의미및 범위가 완전하게 다르다는것에 유의합니다.


외부 인스턴스등록

스프링에서 외부 인스턴스를 등록하여 사용하는 방법은 크게 두가지가 있습니다.

...


AppicationConfig를 추가하여 등록하기

Expand
titleAKKA 메이븐설정

<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-actor_2.11</artifactId>
<version>${akka.version}</version>
</dependency>

<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-stream-kafka_2.11</artifactId>
<version>0.19</version>
</dependency>

<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-actor_2.11</artifactId>
<version>${akka.version}</version>
</dependency>

<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-testkit_2.11</artifactId>
<version>${akka.version}</version>
</dependency>

...

실시간 스트림처리에서 GRAPHDSL 은  JPA에서 QueryDSL 처리방식과 유사하게 멋진 람다접근 방식을 제공합니다.   


Application에서 사용하기

Code Block
languagejava
themeEmacs
@SpringBootApplication
public class Study1Application {	
	public static void main(String[] args) {
		final ApplicationContext context = SpringApplication.run(Study1Application.class, args);		
	    final ActorSystem system = context.getBean(ActorSystem.class);
	    final ActorMaterializer materializer = ActorMaterializer.create(system);	    
	}
}

...

능동적인 메시지큐를 가진 객체여서 SPRING에서 라이프사이클 관리가 필요한 대상 이라고 정의하는것도 좋을듯보입니다.


특정 위치에서 Bean객체 얻기

Code Block
languagejava
themeEmacs
//멤버선언
@Autowired
private ApplicationContext context;


//사용 , 싱글턴에서 얻는것과 큰 차이없이 특수객체 참조가 가능합니다.
ActorSystem system = context.getBean(ActorSystem.class);

...