com.github.xingfudeshi.yoyo.config.StarterClientAutoConfiguration Maven / Gradle / Ivy
package com.github.xingfudeshi.yoyo.config;
import com.github.xingfudeshi.yoyo.annotation.EnableStarterClient;
import com.github.xingfudeshi.yoyo.listener.StarterClientApplicationListener;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeansException;
import org.springframework.context.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Map;
import java.util.Objects;
/**
* 〈〉
*
* @author Wu
* @since 1.0.0
*/
@Configuration
public class StarterClientAutoConfiguration implements ApplicationContextAware {
private Logger logger = LoggerFactory.getLogger(getClass());
private ConfigurableApplicationContext applicationContext;
@Bean
public ApplicationListener applicationReadyEventListener(){
EnableStarterClient enableStarterClient=getAnnotationBean();
if(enableStarterClient==null||(StringUtils.isBlank(enableStarterClient.lock())&&StringUtils.isBlank(enableStarterClient.value()))){
logger.info("please specific the lock attribute.");
return null;
}
return new StarterClientApplicationListener(getAnnotationBean());
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext=(ConfigurableApplicationContext)applicationContext;
}
private EnableStarterClient getAnnotationBean(){
Map beans =this.applicationContext.getBeansWithAnnotation(EnableStarterClient.class);
EnableStarterClient enableStarterClient=null;
if(Objects.nonNull(beans)){
for(Map.Entry entry:beans.entrySet()){
enableStarterClient = applicationContext.findAnnotationOnBean(entry.getKey(), EnableStarterClient.class);
}
}
return enableStarterClient;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy