폴 :
이 같은 뭔가를 찾고있다.
이 micronaut 응용 프로그램 코드를 갖는
@Configuration
@SpringBootApplication(exclude = {org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration.class,
org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration.class,
org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration.class,
org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration.class})
@ComponentScan(basePackageClasses = HelloController.class)
public class Application {
public static void main(String[] args) throws Exception {
System.setProperty("akka.config", "/Users/nb38tv/workspace/hello-micronaut/src/main/resources/config/");
System.setProperty("akka.config.file", "application.conf");
ConfigurableApplicationContext springContext = ReactiveConnectorBootable.loadReactiveConnector();
ConfigurableApplicationContext context = new MicronautApplicationContext();
context.setParent(springContext);
context.start();
Micronaut.run(Application.class);
}
}
어떻게 Micronaut의 하나 봄의 ApplicationContext를 병합 할 수 있습니다.
나는 봄의 사용 ApplicationContext를 일부 콩을 주입하는 라이브러리를 갖고 있기 때문에 나는 그것을해야합니다.
그리고 내 컨트롤러에서 나는 그것을 사용해야합니다.
@Controller("/hello")
public class HelloController {
@Inject
private ReactorConnectorManager<RequestInfoDTO, String> reactorConnectorRestManagerExecutor;
@Get(produces = MediaType.TEXT_PLAIN)
public String index() {
if(reactorConnectorRestManagerExecutor == null){
return "boooo";
}
return "Hello World";
}
}
어디 ReactorConnectorManager
빈은에서로드Spring context
문안 인사
lczapski :
확인할 수 있습니다 이 통합하는 방법을 예를 들어이 봄과 Micronaut을
나는 간단한 응용 프로그램에 대한 기본 만든 이 위의 코드를. 그리고 예를 들어에 http://localhost:8080/hello/World
그것을 반환합니다 Hello World with Test : World and Test : World
. 그래서처럼 보인다 Controller
사용 Bean
.
package greeting.example;
import io.micronaut.runtime.Micronaut;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import java.util.function.Function;
@SpringBootApplication
public class Application {
public static void main(String... args) {
Micronaut.run(Application.class);
}
@Bean
Function<String, String> stringService(){
return (value) -> "Test : "+ value;
}
}
과
package greeting.example;
import io.micronaut.http.MediaType;
import io.micronaut.http.annotation.Controller;
import io.micronaut.http.annotation.Get;
import io.reactivex.Single;
import javax.inject.Inject;
import java.util.function.Function;
@Controller("/")
public class HelloController {
@Inject
Function<String, String> stringService;
@Autowired
private ApplicationContext applicationContext;
@Get(uri = "/hello/{name}", produces = MediaType.TEXT_PLAIN)
public Single<String> hello(String name) {
Function<String, String> service = applicationContext.getBean(Function.class);
return Single.just("Hello " + name + " with " + stringService.apply(name)
+ " and " + service.apply(name));
}
}
최신 정보
에 접근 할 수 있도록하는 해킹 ConfigurableApplicationContext context
. 에서 Application
보류 싱글 같은 또는 내 예를 들어, 정적 필드에 뭔가를 만들 context
:
static ConfigurableApplicationContext springContext;
...
ConfigurableApplicationContext springContext = ReactiveConnectorBootable.loadReactiveConnector();
그리고 다음에 HelloController
:
@Get(produces = MediaType.TEXT_PLAIN)
public String index() {
ReactorConnectorManager<RequestInfoDTO, String> reactorConnectorRestManagerExecutor =
Application.springContext.getBean(ReactorConnectorManager<RequestInfoDTO, String>.class);
if(reactorConnectorRestManagerExecutor == null){
return "boooo";
}
return "Hello World";
}