本文整理了Java中org.springframework.beans.factory.config.BeanDefinition.hasAttribute()
方法的一些代码示例,展示了BeanDefinition.hasAttribute()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。BeanDefinition.hasAttribute()
方法的具体详情如下:
包路径:org.springframework.beans.factory.config.BeanDefinition
类名称:BeanDefinition
方法名:hasAttribute
暂无
代码示例来源:origin: spring-projects/spring-batch
/**
* Automatically inject job-repository from a job into its steps. Only
* inject if the step is an AbstractStep or StepParserStepFactoryBean.
*
* @param beanName
* @param beanFactory
*/
private void injectJobRepositoryIntoSteps(String beanName, ConfigurableListableBeanFactory beanFactory) {
BeanDefinition bd = beanFactory.getBeanDefinition(beanName);
if (bd.hasAttribute(JOB_FACTORY_PROPERTY_NAME)) {
MutablePropertyValues pvs = bd.getPropertyValues();
if (beanFactory.isTypeMatch(beanName, AbstractStep.class)) {
String jobName = (String) bd.getAttribute(JOB_FACTORY_PROPERTY_NAME);
PropertyValue jobRepository = BeanDefinitionUtils.getPropertyValue(jobName,
JOB_REPOSITORY_PROPERTY_NAME, beanFactory);
if (jobRepository != null) {
// Set the job's JobRepository onto the step
pvs.addPropertyValue(jobRepository);
}
else {
// No JobRepository found, so inject the default
RuntimeBeanReference jobRepositoryBeanRef = new RuntimeBeanReference(DEFAULT_JOB_REPOSITORY_NAME);
pvs.addPropertyValue(JOB_REPOSITORY_PROPERTY_NAME, jobRepositoryBeanRef);
}
}
}
}
代码示例来源:origin: org.tinygroup/org.tinygroup.springmerge
public boolean hasAttribute(String name) {
if (isBeanClassNameUpdated) {// 如果class变的话,用变更后的属性定义
return mergedBeanDefinition.hasAttribute(name);
}
boolean mergedhasAttribute = mergedBeanDefinition.hasAttribute(name);
boolean currenthasAttribute = currentBeanDefinition.hasAttribute(name);
if (currenthasAttribute || mergedhasAttribute) {
if (logger.isInfoEnabled()) {
logger.info("将原hasAttribute属性值" + currenthasAttribute + "替换为" + mergedhasAttribute);
}
return true;
}
return false;
}
代码示例来源:origin: org.mule.modules/mule-module-spring-config
public static boolean testFlag(BeanDefinition bean, String flag)
{
return null != bean
&& bean.hasAttribute(flag)
&& bean.getAttribute(flag) instanceof Boolean
&& ((Boolean) bean.getAttribute(flag)).booleanValue();
}
代码示例来源:origin: org.eclipse.gemini.blueprint/gemini-blueprint-core
public static List<ComponentMetadata> buildComponentMetadataFor(ConfigurableListableBeanFactory factory) {
List<ComponentMetadata> metadata = new ArrayList<ComponentMetadata>();
String[] components = factory.getBeanDefinitionNames();
for (String beanName : components) {
BeanDefinition definition = factory.getBeanDefinition(beanName);
// filter generated definitions
if (!definition.hasAttribute(PROMOTED_REF)) {
// add metadata for top-level definitions
metadata.add(MetadataFactory.buildComponentMetadataFor(beanName, definition));
// look for nested ones
metadata.addAll(MetadataFactory.buildNestedComponentMetadataFor(definition));
}
}
return metadata;
}
代码示例来源:origin: org.springframework.batch/spring-batch-core
/**
* Automatically inject job-repository from a job into its steps. Only
* inject if the step is an AbstractStep or StepParserStepFactoryBean.
*
* @param beanName
* @param beanFactory
*/
private void injectJobRepositoryIntoSteps(String beanName, ConfigurableListableBeanFactory beanFactory) {
BeanDefinition bd = beanFactory.getBeanDefinition(beanName);
if (bd.hasAttribute(JOB_FACTORY_PROPERTY_NAME)) {
MutablePropertyValues pvs = bd.getPropertyValues();
if (beanFactory.isTypeMatch(beanName, AbstractStep.class)) {
String jobName = (String) bd.getAttribute(JOB_FACTORY_PROPERTY_NAME);
PropertyValue jobRepository = BeanDefinitionUtils.getPropertyValue(jobName,
JOB_REPOSITORY_PROPERTY_NAME, beanFactory);
if (jobRepository != null) {
// Set the job's JobRepository onto the step
pvs.addPropertyValue(jobRepository);
}
else {
// No JobRepository found, so inject the default
RuntimeBeanReference jobRepositoryBeanRef = new RuntimeBeanReference(DEFAULT_JOB_REPOSITORY_NAME);
pvs.addPropertyValue(JOB_REPOSITORY_PROPERTY_NAME, jobRepositoryBeanRef);
}
}
}
}
代码示例来源:origin: org.springframework.batch/org.springframework.batch.core
/**
* Automatically inject job-repository from a job into its steps. Only
* inject if the step is an AbstractStep or StepParserStepFactoryBean.
*
* @param beanName
* @param beanFactory
*/
private void injectJobRepositoryIntoSteps(String beanName, ConfigurableListableBeanFactory beanFactory) {
BeanDefinition bd = beanFactory.getBeanDefinition(beanName);
if (bd.hasAttribute(JOB_FACTORY_PROPERTY_NAME)) {
MutablePropertyValues pvs = bd.getPropertyValues();
if (beanFactory.isTypeMatch(beanName, AbstractStep.class)) {
String jobName = (String) bd.getAttribute(JOB_FACTORY_PROPERTY_NAME);
PropertyValue jobRepository = BeanDefinitionUtils.getPropertyValue(jobName,
JOB_REPOSITORY_PROPERTY_NAME, beanFactory);
if (jobRepository != null) {
// Set the job's JobRepository onto the step
pvs.addPropertyValue(jobRepository);
}
else {
// No JobRepository found, so inject the default
RuntimeBeanReference jobRepositoryBeanRef = new RuntimeBeanReference(DEFAULT_JOB_REPOSITORY_NAME);
pvs.addPropertyValue(JOB_REPOSITORY_PROPERTY_NAME, jobRepositoryBeanRef);
}
}
}
}
代码示例来源:origin: org.springframework.batch.core/org.motechproject.org.springframework.batch.core
/**
* Automatically inject job-repository from a job into its steps. Only
* inject if the step is an AbstractStep or StepParserStepFactoryBean.
*
* @param beanName
* @param beanFactory
*/
private void injectJobRepositoryIntoSteps(String beanName, ConfigurableListableBeanFactory beanFactory) {
BeanDefinition bd = beanFactory.getBeanDefinition(beanName);
if (bd.hasAttribute(JOB_FACTORY_PROPERTY_NAME)) {
MutablePropertyValues pvs = bd.getPropertyValues();
if (beanFactory.isTypeMatch(beanName, AbstractStep.class)) {
String jobName = (String) bd.getAttribute(JOB_FACTORY_PROPERTY_NAME);
PropertyValue jobRepository = BeanDefinitionUtils.getPropertyValue(jobName,
JOB_REPOSITORY_PROPERTY_NAME, beanFactory);
if (jobRepository != null) {
// Set the job's JobRepository onto the step
pvs.addPropertyValue(jobRepository);
}
else {
// No JobRepository found, so inject the default
RuntimeBeanReference jobRepositoryBeanRef = new RuntimeBeanReference(DEFAULT_JOB_REPOSITORY_NAME);
pvs.addPropertyValue(JOB_REPOSITORY_PROPERTY_NAME, jobRepositoryBeanRef);
}
}
}
}
代码示例来源:origin: apache/servicemix-bundles
/**
* Automatically inject job-repository from a job into its steps. Only
* inject if the step is an AbstractStep or StepParserStepFactoryBean.
*
* @param beanName
* @param beanFactory
*/
private void injectJobRepositoryIntoSteps(String beanName, ConfigurableListableBeanFactory beanFactory) {
BeanDefinition bd = beanFactory.getBeanDefinition(beanName);
if (bd.hasAttribute(JOB_FACTORY_PROPERTY_NAME)) {
MutablePropertyValues pvs = bd.getPropertyValues();
if (beanFactory.isTypeMatch(beanName, AbstractStep.class)) {
String jobName = (String) bd.getAttribute(JOB_FACTORY_PROPERTY_NAME);
PropertyValue jobRepository = BeanDefinitionUtils.getPropertyValue(jobName,
JOB_REPOSITORY_PROPERTY_NAME, beanFactory);
if (jobRepository != null) {
// Set the job's JobRepository onto the step
pvs.addPropertyValue(jobRepository);
}
else {
// No JobRepository found, so inject the default
RuntimeBeanReference jobRepositoryBeanRef = new RuntimeBeanReference(DEFAULT_JOB_REPOSITORY_NAME);
pvs.addPropertyValue(JOB_REPOSITORY_PROPERTY_NAME, jobRepositoryBeanRef);
}
}
}
}
代码示例来源:origin: org.springframework.javaconfig/org.springframework.config.java
private void parseAnyConfigurationClasses(ConfigurableListableBeanFactory externalBeanFactory,
JavaConfigBeanFactory internalBeanFactory) {
// linked map is important for maintaining predictable ordering of configuration classes.
// this is important in bean / value override situations.
LinkedHashMap<String, ClassPathResource> configClassResources = new LinkedHashMap<String, ClassPathResource>();
for (String beanName : externalBeanFactory.getBeanDefinitionNames()) {
BeanDefinition beanDef = externalBeanFactory.getBeanDefinition(beanName);
if (beanDef.isAbstract())
continue;
if (beanDef.hasAttribute(ConfigurationClass.IS_CONFIGURATION_CLASS)) {
String path = ClassUtils.convertClassNameToResourcePath(beanDef.getBeanClassName());
configClassResources.put(beanName, new ClassPathResource(path));
}
}
JavaConfigBeanDefinitionReader reader;
reader = new AsmJavaConfigBeanDefinitionReader(internalBeanFactory);
reader.loadBeanDefinitions(configClassResources);
}
代码示例来源:origin: org.eclipse.gemini.blueprint/gemini-blueprint-core
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
boolean trace = log.isTraceEnabled();
String[] names = beanFactory.getBeanDefinitionNames();
for (String name : names) {
BeanDefinition definition = beanFactory.getBeanDefinition(name);
if (definition.hasAttribute(ParsingUtils.BLUEPRINT_MARKER_NAME)) {
ConstructorArgumentValues cArgs = definition.getConstructorArgumentValues();
if (trace)
log.trace("Inspecting cycles for (blueprint) bean " + name);
tag(cArgs.getGenericArgumentValues(), name, definition);
tag(cArgs.getIndexedArgumentValues().values(), name, definition);
}
}
}
代码示例来源:origin: net.sf.taverna.t2.infrastructure/platform
for (String beanName : factory.getBeanDefinitionNames()) {
BeanDefinition bd = factory.getBeanDefinition(beanName);
if (bd.hasAttribute(REPOSITORY_BEAN_ATTRIBUTE_NAME)
&& bd.hasAttribute(ARTIFACT_BEAN_ATTRIBUTE_NAME)) {
String repositoryBeanName = (String) bd
.getAttribute(REPOSITORY_BEAN_ATTRIBUTE_NAME);
代码示例来源:origin: org.springframework.javaconfig/org.springframework.config.java
/**
* Post-processes a BeanFactory in search of Configuration class BeanDefinitions; any candidates
* are then enhanced by a {@link ConfigurationEnhancer}. Candidate status is determined by
* BeanDefinition attribute metadata.
*
* @author Chris Beams
* @see ConfigurationClass#IS_CONFIGURATION_CLASS
* @see ConfigurationEnhancer
* @see BeanFactoryPostProcessor
*/
private void enhanceAnyConfigurationClasses(ConfigurableListableBeanFactory externalBeanFactory,
JavaConfigBeanFactory internalBeanFactory) {
ConfigurationEnhancer enhancer = new CglibConfigurationEnhancer(internalBeanFactory);
int configClassesEnhanced = 0;
for (String beanName : externalBeanFactory.getBeanDefinitionNames()) {
BeanDefinition beanDef = externalBeanFactory.getBeanDefinition(beanName);
// is the beanDef marked as representing a configuration class?
if (!beanDef.hasAttribute(ConfigurationClass.IS_CONFIGURATION_CLASS))
continue;
String configClassName = beanDef.getBeanClassName();
String enhancedClassName = enhancer.enhance(configClassName);
if (logger.isDebugEnabled())
logger.debug(String.format("Replacing bean definition '%s' existing class name '%s' with enhanced class name '%s'",
beanName, configClassName, enhancedClassName));
beanDef.setBeanClassName(enhancedClassName);
configClassesEnhanced++;
}
if (configClassesEnhanced == 0)
logger.warn("Found no @Configuration class BeanDefinitions within " + internalBeanFactory);
}
代码示例来源:origin: org.springframework.javaconfig/org.springframework.config.java
if (!beanDef.hasAttribute(ConfigurationClass.IS_CONFIGURATION_CLASS))
return bean;
代码示例来源:origin: org.eclipse.gemini.blueprint/gemini-blueprint-core
/**
* Constructs a new <code>SpringLocalComponentMetadata</code> instance.
*
* @param name bean name
* @param definition Spring bean definition
*/
public SimpleBeanMetadata(String name, BeanDefinition definition) {
super(name, definition);
final String factoryMtd = definition.getFactoryMethodName();
if (StringUtils.hasText(factoryMtd)) {
factoryMethod = factoryMtd;
String factory = definition.getFactoryBeanName();
if (StringUtils.hasText(factory)) {
factoryComponent = new SimpleRefMetadata(factory);
} else {
factoryComponent = null;
}
} else {
factoryComponent = null;
factoryMethod = null;
}
arguments = MetadataUtils.getBeanArguments(definition);
properties = MetadataUtils.getBeanProperties(definition);
// double check if the definition had "scope" declared
boolean hasAttribute = definition.hasAttribute(BlueprintParser.DECLARED_SCOPE);
scope = (hasAttribute ? (StringUtils.hasText(name) ? beanDefinition.getScope() : null) : null);
}
代码示例来源:origin: spring-projects/spring-guice
private void bind(ConfigurableListableBeanFactory beanFactory) {
for (String name : beanFactory.getBeanDefinitionNames()) {
BeanDefinition definition = beanFactory.getBeanDefinition(name);
if (definition.hasAttribute(SPRING_GUICE_SOURCE)) {
continue;
}
Optional<Annotation> bindingAnnotation = getAnnotationForBeanDefinition(definition, beanFactory);
if (definition.isAutowireCandidate()
&& definition.getRole() == AbstractBeanDefinition.ROLE_APPLICATION) {
Class<?> type = beanFactory.getType(name);
if (type == null) {
continue;
}
final String beanName = name;
Provider<?> typeProvider = BeanFactoryProvider.typed(beanFactory, type, bindingAnnotation);
Provider<?> namedProvider = BeanFactoryProvider.named(beanFactory,
beanName, type, bindingAnnotation);
if (!type.isInterface() && !ClassUtils.isCglibProxyClass(type)) {
bindConditionally(binder(), name, type, typeProvider, namedProvider, bindingAnnotation);
}
for (Class<?> iface : ClassUtils.getAllInterfacesForClass(type)) {
bindConditionally(binder(), name, iface, typeProvider, namedProvider, bindingAnnotation);
}
for (Type iface : type.getGenericInterfaces()) {
bindConditionally(binder(), name, iface, typeProvider, namedProvider, bindingAnnotation);
}
}
}
}
内容来源于网络,如有侵权,请联系作者删除!