org.springframework.context.ConfigurableApplicationContext#containsBean ( )源码实例Demo

下面列出了org.springframework.context.ConfigurableApplicationContext#containsBean ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

/**
 * 注册dataSource至Spring
 *
 * @param dataSource 数据源信息
 */
private void addDataSourceToSpring(DataSource dataSource) {
    ConfigurableApplicationContext applicationContext = (ConfigurableApplicationContext) this.applicationContext;
    HikariDataSource hikariDataSource = new HikariDataSource();
    hikariDataSource.setUsername(dataSource.getUser());
    hikariDataSource.setPassword(dataSource.getPassword());
    hikariDataSource.setJdbcUrl("jdbc:mysql://" + dataSource.getHost() + ":" + dataSource.getPort() + "/" + dataSource.getDatabase() + "?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=CTT");
    hikariDataSource.setDriverClassName(dataSource.getDriveName());
    JdbcTemplate jdbcTemplate = new JdbcTemplate(hikariDataSource);
    if (!applicationContext.containsBean(dataSource.toString())) {
        applicationContext.getBeanFactory().registerSingleton(dataSource.toString(), jdbcTemplate);
    }
}
 
/**
* Loads this executor into the ApplicationContext, if it isn't already there
*/
public static void registerIfNeeded(ConfigurableApplicationContext ctx)
{
    if (!ctx.containsBean(TransientFailActionExecuter.NAME))
    {
        // Create, and do dependencies
        TransientFailActionExecuter executor = new TransientFailActionExecuter();
        executor.setTrackStatus(true);
        executor.actionTrackingService = (ActionTrackingService) ctx.getBean("actionTrackingService");
        // Register
        ctx.getBeanFactory().registerSingleton(TransientFailActionExecuter.NAME, executor);
    }
}
 
@Bean
public InitializingBean functionInitializer(FunctionCatalog functionCatalog, FunctionInspector functionInspector,
		StreamFunctionProperties functionProperties, @Nullable BindableProxyFactory[] bindableProxyFactories,
		BindingServiceProperties serviceProperties, ConfigurableApplicationContext applicationContext,
		FunctionBindingRegistrar bindingHolder, StreamBridge streamBridge) {

	boolean shouldCreateInitializer = applicationContext.containsBean("output")
			|| ObjectUtils.isEmpty(applicationContext.getBeanNamesForAnnotation(EnableBinding.class));

	return shouldCreateInitializer
			? new FunctionToDestinationBinder(functionCatalog, functionProperties,
					serviceProperties, streamBridge)
					: null;
}
 
源代码4 项目: Milkomeda   文件: WebContext.java
/**
 *  动态注册并返回bean
 * @param applicationContext    应用上下文
 * @param name                  bean name
 * @param clazz                 bean class
 * @param args                  构造参数
 * @param <T>                   实体类型
 * @return  Bean
 */
public static <T> T registerBean(ConfigurableApplicationContext applicationContext, String name, Class<T> clazz, Object... args) {
    if (applicationContext.containsBean(name)) {
        return applicationContext.getBean(name, clazz);
    }
    BeanDefinition beanDefinition = build(clazz, args);
    return registerBean(applicationContext, name, clazz, beanDefinition);
}