Java Code Examples for org.springframework.context.ConfigurableApplicationContext#getBeansOfType()
The following examples show how to use
org.springframework.context.ConfigurableApplicationContext#getBeansOfType() .
These examples are extracted from open source projects.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source Project: thinking-in-spring-boot-samples File: FormatterBootstrap.java License: Apache License 2.0 | 6 votes |
public static void main(String[] args) { ConfigurableApplicationContext context = new SpringApplicationBuilder(FormatterBootstrap.class) .web(WebApplicationType.NONE) // 非 Web 应用 // .properties("formatter.enabled=true") // 配置默认属性, "=" 前后不能有空格 .run(args); // 运行 // 待格式化对象 Map<String, Object> data = new HashMap<>(); data.put("name", "小马哥"); // 获取 Formatter 来自于 FormatterAutoConfiguration Map<String, Formatter> beans = context.getBeansOfType(Formatter.class); if (beans.isEmpty()) { // 如果 Bean 不存在,抛出异常 throw new NoSuchBeanDefinitionException(Formatter.class); } beans.forEach((beanName, formatter) -> { System.out.printf("[Bean name : %s] %s.format(data) : %s\n", beanName, formatter.getClass().getSimpleName(), formatter.format(data)); }); // 关闭当前上下文 context.close(); }
Example 2
Source Project: line-bot-sdk-java File: Application.java License: Apache License 2.0 | 6 votes |
void run(final ConfigurableApplicationContext context) throws Exception { final Map<String, CliCommand> commandMap = context.getBeansOfType(CliCommand.class); if (commandMap.isEmpty()) { log.warn("No command resolved. Available commands are follows."); printSupportCommand(); return; } if (commandMap.size() > 1) { throw new RuntimeException("Multiple command matching. Maybe bug."); } final CliCommand command = commandMap.values().iterator().next(); log.info("\"--command\" resolved to > {}", command.getClass()); command.execute(); }
Example 3
Source Project: spring-cloud-commons File: AbstractLoadBalancerAutoConfigurationTests.java License: Apache License 2.0 | 6 votes |
@Test public void multipleRestTemplates() { ConfigurableApplicationContext context = init(TwoRestTemplates.class); final Map<String, RestTemplate> restTemplates = context .getBeansOfType(RestTemplate.class); then(restTemplates).isNotNull(); Collection<RestTemplate> templates = restTemplates.values(); then(templates).hasSize(2); TwoRestTemplates.Two two = context.getBean(TwoRestTemplates.Two.class); then(two.loadBalanced).isNotNull(); assertLoadBalanced(two.loadBalanced); then(two.nonLoadBalanced).isNotNull(); then(two.nonLoadBalanced.getInterceptors()).isEmpty(); }
Example 4
Source Project: spring-cloud-commons File: ReactorLoadBalancerClientAutoConfigurationTests.java License: Apache License 2.0 | 6 votes |
@Test void loadBalancerFilterAddedToWebClientBuilder() { ConfigurableApplicationContext context = init(OneWebClientBuilder.class); final Map<String, WebClient.Builder> webClientBuilders = context .getBeansOfType(WebClient.Builder.class); then(webClientBuilders).isNotNull().hasSize(1); WebClient.Builder webClientBuilder = webClientBuilders.values().iterator().next(); then(webClientBuilder).isNotNull(); assertLoadBalanced(webClientBuilder, ReactorLoadBalancerExchangeFilterFunction.class); final Map<String, OneWebClientBuilder.TestService> testServiceMap = context .getBeansOfType(OneWebClientBuilder.TestService.class); then(testServiceMap).isNotNull().hasSize(1); OneWebClientBuilder.TestService testService = testServiceMap.values().stream() .findFirst().get(); assertLoadBalanced(testService.webClient, ReactorLoadBalancerExchangeFilterFunction.class); }
Example 5
Source Project: spring-cloud-commons File: ReactorLoadBalancerClientAutoConfigurationTests.java License: Apache License 2.0 | 6 votes |
@Test void loadBalancerFilterAddedOnlyToLoadBalancedWebClientBuilder() { ConfigurableApplicationContext context = init(TwoWebClientBuilders.class); final Map<String, WebClient.Builder> webClientBuilders = context .getBeansOfType(WebClient.Builder.class); then(webClientBuilders).hasSize(2); TwoWebClientBuilders.Two two = context.getBean(TwoWebClientBuilders.Two.class); then(two.loadBalanced).isNotNull(); assertLoadBalanced(two.loadBalanced, ReactorLoadBalancerExchangeFilterFunction.class); then(two.nonLoadBalanced).isNotNull(); then(getFilters(two.nonLoadBalanced)).isNullOrEmpty(); }
Example 6
Source Project: spring-cloud-commons File: AsyncLoadBalancerAutoConfigurationTests.java License: Apache License 2.0 | 6 votes |
@Test public void multipleRestTemplates() { ConfigurableApplicationContext context = init(TwoRestTemplates.class); final Map<String, AsyncRestTemplate> restTemplates = context .getBeansOfType(AsyncRestTemplate.class); then(restTemplates).isNotNull(); Collection<AsyncRestTemplate> templates = restTemplates.values(); then(templates).hasSize(2); TwoRestTemplates.Two two = context.getBean(TwoRestTemplates.Two.class); then(two.loadBalanced).isNotNull(); assertLoadBalanced(two.loadBalanced); then(two.nonLoadBalanced).isNotNull(); then(two.nonLoadBalanced.getInterceptors()).isEmpty(); }
Example 7
Source Project: camel-spring-boot File: CamelCloudConsulAutoConfigurationTest.java License: Apache License 2.0 | 5 votes |
@Test public void testServiceDefinitionToConsulRegistration() throws Exception { ConfigurableApplicationContext context = new SpringApplicationBuilder(TestConfiguration.class) .web(WebApplicationType.NONE) .run( "--debug=false", "--spring.main.banner-mode=OFF", "--spring.application.name=" + UUID.randomUUID().toString(), "--ribbon.enabled=false", "--ribbon.eureka.enabled=false", "--management.endpoint.enabled=false", "--spring.cloud.consul.enabled=true", "--spring.cloud.consul.config.enabled=false", "--spring.cloud.consul.discovery.enabled=true", "--spring.cloud.service-registry.auto-registration.enabled=false", "--spring.main.allow-bean-definition-overriding=true" ); // TODO: Remove --spring.main.allow-bean-definition-overriding=true when new version of spring-cloud // is released that supports Spring Boot 2.1 more properly try { Map<String, Converter> converters = context.getBeansOfType(Converter.class); assertThat(converters).isNotNull(); assertThat(converters.values().stream().anyMatch(ServiceDefinitionToConsulRegistration.class::isInstance)).isTrue(); } finally { context.close(); } }
Example 8
Source Project: camel-spring-boot File: CamelCloudConsulAutoConfigurationTest.java License: Apache License 2.0 | 5 votes |
@Test public void testConsulServerToServiceDefinition() throws Exception { ConfigurableApplicationContext context = new SpringApplicationBuilder(TestConfiguration.class) .web(WebApplicationType.NONE) .run( "--debug=false", "--spring.main.banner-mode=OFF", "--spring.application.name=" + UUID.randomUUID().toString(), "--ribbon.enabled=false", "--ribbon.eureka.enabled=false", "--management.endpoint.enabled=false", "--spring.cloud.consul.enabled=true", "--spring.cloud.consul.config.enabled=false", "--spring.cloud.consul.discovery.enabled=true", "--spring.cloud.service-registry.auto-registration.enabled=false", "--spring.main.allow-bean-definition-overriding=true" ); // TODO: Remove --spring.main.allow-bean-definition-overriding=true when new version of spring-cloud // is released that supports Spring Boot 2.1 more properly try { Map<String, Converter> converters = context.getBeansOfType(Converter.class); assertThat(converters).isNotNull(); assertThat(converters.values().stream().anyMatch(ConsulServerToServiceDefinition.class::isInstance)).isTrue(); } finally { context.close(); } }
Example 9
Source Project: camel-spring-boot File: CamelCloudZookeeperAutoConfigurationTest.java License: Apache License 2.0 | 5 votes |
@Test public void testServiceDefinitionToConsulRegistration() throws Exception { final ZookeeperServer server = new ZookeeperServer(temporaryFolder.newFolder(testName.getMethodName())); ConfigurableApplicationContext context = new SpringApplicationBuilder(TestConfiguration.class) .web(WebApplicationType.NONE) .run( "--debug=false", "--spring.main.banner-mode=OFF", "--spring.application.name=" + UUID.randomUUID().toString(), "--ribbon.enabled=false", "--ribbon.eureka.enabled=false", "--management.endpoint.enabled=false", "--spring.cloud.zookeeper.enabled=true", "--spring.cloud.zookeeper.connect-string=" + server.connectString(), "--spring.cloud.zookeeper.config.enabled=false", "--spring.cloud.zookeeper.discovery.enabled=true", "--spring.cloud.service-registry.auto-registration.enabled=false" ); try { Map<String, Converter> converters = context.getBeansOfType(Converter.class); assertThat(converters).isNotNull(); assertThat(converters.values().stream().anyMatch(ServiceDefinitionToZookeeperRegistration.class::isInstance)).isTrue(); } finally { // shutdown spring context context.close(); // shutdown zookeeper server.shutdown(); } }
Example 10
Source Project: camel-spring-boot File: CamelCloudZookeeperAutoConfigurationTest.java License: Apache License 2.0 | 5 votes |
@Test public void testZookeeperServerToServiceDefinition() throws Exception { final ZookeeperServer server = new ZookeeperServer(temporaryFolder.newFolder(testName.getMethodName())); ConfigurableApplicationContext context = new SpringApplicationBuilder(TestConfiguration.class) .web(WebApplicationType.NONE) .run( "--debug=false", "--spring.main.banner-mode=OFF", "--spring.application.name=" + UUID.randomUUID().toString(), "--ribbon.enabled=false", "--ribbon.eureka.enabled=false", "--management.endpoint.enabled=false", "--spring.cloud.zookeeper.enabled=true", "--spring.cloud.zookeeper.connect-string=" + server.connectString(), "--spring.cloud.zookeeper.config.enabled=false", "--spring.cloud.zookeeper.discovery.enabled=true", "--spring.cloud.service-registry.auto-registration.enabled=false" ); try { Map<String, Converter> converters = context.getBeansOfType(Converter.class); assertThat(converters).isNotNull(); assertThat(converters.values().stream().anyMatch(ZookeeperServerToServiceDefinition.class::isInstance)).isTrue(); } finally { // shutdown spring context context.close(); // shutdown zookeeper server.shutdown(); } }
Example 11
Source Project: camel-spring-boot File: StartupShutdownOrderTest.java License: Apache License 2.0 | 5 votes |
@Test public void camelContextShouldBeStartedLastAndStoppedFirst() { final ConfigurableApplicationContext context = new AnnotationConfigApplicationContext( CamelAutoConfiguration.class, Beans.class); final CamelContext camelContext = context.getBean(CamelContext.class); final Map<String, TestState> testStates = context.getBeansOfType(TestState.class); assertThat(camelContext.isStarted()).as("Camel context should be started").isTrue(); context.close(); assertThat(camelContext.isStopped()).as("Camel context should be stopped").isTrue(); testStates.values().stream().forEach(TestState::assertValid); }
Example 12
Source Project: spring-cloud-openfeign File: FeignLoadBalancerAutoConfigurationTests.java License: Apache License 2.0 | 5 votes |
private void assertLoadBalanced(ConfigurableApplicationContext context, Class delegateClass) { Map<String, FeignBlockingLoadBalancerClient> beans = context .getBeansOfType(FeignBlockingLoadBalancerClient.class); assertThat(beans).as("Missing bean of type %s", delegateClass).hasSize(1); assertThat(beans.get("feignClient").getDelegate()).isInstanceOf(delegateClass); }
Example 13
Source Project: thinking-in-spring-boot-samples File: TransactionalServiceBeanBootstrap.java License: Apache License 2.0 | 5 votes |
public static void main(String[] args) { // 注册当前引导类作为 Configuration Class ConfigurableApplicationContext context = new AnnotationConfigApplicationContext(TransactionalServiceBeanBootstrap.class); // 获取所有 TransactionalServiceBean 类型 Bean,其中 Key 为 Bean 名称 Map<String, TransactionalServiceBean> beansMap = context.getBeansOfType(TransactionalServiceBean.class); beansMap.forEach((beanName, bean) -> { System.out.printf("Bean 名称 : %s , 对象 : %s\n", beanName, bean); bean.save(); }); context.close(); }
Example 14
Source Project: spring-cloud-commons File: AbstractLoadBalancerAutoConfigurationTests.java License: Apache License 2.0 | 5 votes |
@Test public void restTemplateGetsLoadBalancerInterceptor() { ConfigurableApplicationContext context = init(OneRestTemplate.class); final Map<String, RestTemplate> restTemplates = context .getBeansOfType(RestTemplate.class); then(restTemplates).isNotNull(); then(restTemplates.values()).hasSize(1); RestTemplate restTemplate = restTemplates.values().iterator().next(); then(restTemplate).isNotNull(); assertLoadBalanced(restTemplate); }
Example 15
Source Project: spring-cloud-commons File: ReactorLoadBalancerClientAutoConfigurationTests.java License: Apache License 2.0 | 5 votes |
@Test void noCustomWebClientBuilders() { ConfigurableApplicationContext context = init(NoWebClientBuilder.class); final Map<String, WebClient.Builder> webClientBuilders = context .getBeansOfType(WebClient.Builder.class); then(webClientBuilders).hasSize(1); WebClient.Builder builder = context.getBean(WebClient.Builder.class); then(builder).isNotNull(); then(getFilters(builder)).isNullOrEmpty(); }
Example 16
Source Project: spring-cloud-commons File: AsyncLoadBalancerAutoConfigurationTests.java License: Apache License 2.0 | 5 votes |
@Test public void restTemplateGetsLoadBalancerInterceptor() { ConfigurableApplicationContext context = init(OneRestTemplate.class); final Map<String, AsyncRestTemplate> restTemplates = context .getBeansOfType(AsyncRestTemplate.class); then(restTemplates).isNotNull(); then(restTemplates.values()).hasSize(1); AsyncRestTemplate restTemplate = restTemplates.values().iterator().next(); then(restTemplate).isNotNull(); assertLoadBalanced(restTemplate); }
Example 17
Source Project: spring-cloud-openfeign File: FeignLoadBalancerAutoConfigurationTests.java License: Apache License 2.0 | 4 votes |
private void assertThatOneBeanPresent(ConfigurableApplicationContext context, Class<?> beanClass) { Map<String, ?> beans = context.getBeansOfType(beanClass); assertThat(beans).as("Missing bean of type %s", beanClass).hasSize(1); }
Example 18
Source Project: wingtips File: WingtipsSpringBoot2WebfluxConfigurationTest.java License: Apache License 2.0 | 4 votes |
@DataProvider(value = { "MANUAL_IMPORT_ONLY", "COMPONENT_SCAN_ONLY", "BOTH_MANUAL_AND_COMPONENT_SCAN" }) @Test public void component_test(ComponentTestSetup componentTestSetup) { // given int serverPort = findFreePort(); Class<?> mainClass = componentTestSetup.mainClass; ConfigurableApplicationContext serverAppContext = SpringApplication.run(mainClass, "--server.port=" + serverPort); try { // when WingtipsSpringBoot2WebfluxConfiguration config = serverAppContext.getBean(WingtipsSpringBoot2WebfluxConfiguration.class); WingtipsSpringBoot2WebfluxProperties props = serverAppContext.getBean(WingtipsSpringBoot2WebfluxProperties.class); String[] someComponentScannedClassBeanNames = serverAppContext.getBeanNamesForType(SomeComponentScannedClass.class); // then // Sanity check that we component scanned (or not) as appropriate. if (componentTestSetup.expectComponentScannedObjects) { assertThat(someComponentScannedClassBeanNames).isNotEmpty(); } else { assertThat(someComponentScannedClassBeanNames).isEmpty(); } // WingtipsSpringBoot2WebfluxConfiguration and WingtipsSpringBoot2WebfluxProperties should be available as // beans, and the config should use the same props we received. assertThat(config).isNotNull(); assertThat(props).isNotNull(); assertThat(config.wingtipsProperties).isSameAs(props); // The config should not have any custom WingtipsSpringWebfluxWebFilter. Spring will populate // the config.customSpringWebfluxWebFilter field with whatever wingtipsSpringWebfluxWebFilter() // produces - so they should be the same. Map<String, WingtipsSpringWebfluxWebFilter> filtersFromSpring = serverAppContext.getBeansOfType(WingtipsSpringWebfluxWebFilter.class); assertThat(filtersFromSpring).isEqualTo( Collections.singletonMap("wingtipsSpringWebfluxWebFilter", config.customSpringWebfluxWebFilter) ); } finally { Schedulers.removeExecutorServiceDecorator(WingtipsReactorInitializer.WINGTIPS_SCHEDULER_KEY); SpringApplication.exit(serverAppContext); } }
Example 19
Source Project: wingtips File: WingtipsSpringBoot2WebfluxConfigurationTest.java License: Apache License 2.0 | 4 votes |
@Test public void component_test_with_custom_WingtipsSpringWebfluxWebFilter() { // given int serverPort = findFreePort(); ConfigurableApplicationContext serverAppContext = SpringApplication.run( ComponentTestMainWithCustomWingtipsWebFilter.class, "--server.port=" + serverPort ); try { // when WingtipsSpringBoot2WebfluxConfiguration config = serverAppContext.getBean(WingtipsSpringBoot2WebfluxConfiguration.class); WingtipsSpringBoot2WebfluxProperties props = serverAppContext.getBean(WingtipsSpringBoot2WebfluxProperties.class); String[] someComponentScannedClassBeanNames = serverAppContext.getBeanNamesForType(SomeComponentScannedClass.class); // then // Sanity check that we component scanned (or not) as appropriate. This particular component test does // include component scanning. assertThat(someComponentScannedClassBeanNames).isNotEmpty(); // WingtipsSpringBoot2WebfluxConfiguration and WingtipsSpringBoot2WebfluxProperties should be available as // beans, and the config should use the same props we received. assertThat(config).isNotNull(); assertThat(props).isNotNull(); assertThat(config.wingtipsProperties).isSameAs(props); // Finally, the thing this test is verifying: the config's custom filter should be the same one from the // component test main class, and it should be the one that Spring exposes. assertThat(config.customSpringWebfluxWebFilter) .isSameAs(ComponentTestMainWithCustomWingtipsWebFilter.customFilter); Map<String, WingtipsSpringWebfluxWebFilter> filtersFromSpring = serverAppContext.getBeansOfType(WingtipsSpringWebfluxWebFilter.class); assertThat(filtersFromSpring).isEqualTo( Collections.singletonMap("customFilter", ComponentTestMainWithCustomWingtipsWebFilter.customFilter) ); } finally { SpringApplication.exit(serverAppContext); } }