List of usage examples for org.springframework.beans.factory.support RootBeanDefinition setLazyInit
@Override public void setLazyInit(boolean lazyInit)
From source file:com.weibo.api.motan.config.springsupport.MotanBeanDefinitionParser.java
@SuppressWarnings({ "rawtypes", "unchecked" })
private static BeanDefinition parse(Element element, ParserContext parserContext, Class<?> beanClass,
boolean required) throws ClassNotFoundException {
RootBeanDefinition bd = new RootBeanDefinition();
bd.setBeanClass(beanClass);//from ww w . j a v a2s . c o m
// ??lazy init
bd.setLazyInit(false);
// id?id,idcontext
String id = element.getAttribute("id");
if ((id == null || id.length() == 0) && required) {
String generatedBeanName = element.getAttribute("name");
if (generatedBeanName == null || generatedBeanName.length() == 0) {
generatedBeanName = element.getAttribute("class");
}
if (generatedBeanName == null || generatedBeanName.length() == 0) {
generatedBeanName = beanClass.getName();
}
id = generatedBeanName;
int counter = 2;
while (parserContext.getRegistry().containsBeanDefinition(id)) {
id = generatedBeanName + (counter++);
}
}
if (id != null && id.length() > 0) {
if (parserContext.getRegistry().containsBeanDefinition(id)) {
throw new IllegalStateException("Duplicate spring bean id " + id);
}
parserContext.getRegistry().registerBeanDefinition(id, bd);
}
bd.getPropertyValues().addPropertyValue("id", id);
if (ProtocolConfig.class.equals(beanClass)) {
MotanNamespaceHandler.protocolDefineNames.add(id);
} else if (RegistryConfig.class.equals(beanClass)) {
MotanNamespaceHandler.registryDefineNames.add(id);
} else if (BasicServiceInterfaceConfig.class.equals(beanClass)) {
MotanNamespaceHandler.basicServiceConfigDefineNames.add(id);
} else if (BasicRefererInterfaceConfig.class.equals(beanClass)) {
MotanNamespaceHandler.basicRefererConfigDefineNames.add(id);
} else if (ServiceConfigBean.class.equals(beanClass)) {
String className = element.getAttribute("class");
if (className != null && className.length() > 0) {
RootBeanDefinition classDefinition = new RootBeanDefinition();
classDefinition.setBeanClass(
Class.forName(className, true, Thread.currentThread().getContextClassLoader()));
classDefinition.setLazyInit(false);
parseProperties(element.getChildNodes(), classDefinition);
bd.getPropertyValues().addPropertyValue("ref",
new BeanDefinitionHolder(classDefinition, id + "Impl"));
}
}
Set<String> props = new HashSet<String>();
ManagedMap parameters = null;
// ??setbd
for (Method setter : beanClass.getMethods()) {
String name = setter.getName();
// setXXX
if (name.length() <= 3 || !name.startsWith("set") || !Modifier.isPublic(setter.getModifiers())
|| setter.getParameterTypes().length != 1) {
continue;
}
String property = (name.substring(3, 4).toLowerCase() + name.substring(4)).replaceAll("_", "-");
props.add(property);
if ("id".equals(property)) {
bd.getPropertyValues().addPropertyValue("id", id);
continue;
}
String value = element.getAttribute(property);
if ("methods".equals(property)) {
parseMethods(id, element.getChildNodes(), bd, parserContext);
}
if (StringUtils.isBlank(value)) {
continue;
}
value = value.trim();
if (value.length() == 0) {
continue;
}
Object reference;
if ("ref".equals(property)) {
if (parserContext.getRegistry().containsBeanDefinition(value)) {
BeanDefinition refBean = parserContext.getRegistry().getBeanDefinition(value);
if (!refBean.isSingleton()) {
throw new IllegalStateException(
"The exported service ref " + value + " must be singleton! Please set the " + value
+ " bean scope to singleton, eg: <bean id=\"" + value
+ "\" scope=\"singleton\" ...>");
}
}
reference = new RuntimeBeanReference(value);
} else if ("protocol".equals(property) && !StringUtils.isBlank(value)) {
if (!value.contains(",")) {
reference = new RuntimeBeanReference(value);
} else {
parseMultiRef("protocols", value, bd, parserContext);
reference = null;
}
} else if ("registry".equals(property)) {
parseMultiRef("registries", value, bd, parserContext);
reference = null;
} else if ("basicService".equals(property)) {
reference = new RuntimeBeanReference(value);
} else if ("basicReferer".equals(property)) {
reference = new RuntimeBeanReference(value);
} else if ("extConfig".equals(property)) {
reference = new RuntimeBeanReference(value);
} else {
reference = new TypedStringValue(value);
}
if (reference != null) {
bd.getPropertyValues().addPropertyValue(property, reference);
}
}
if (ProtocolConfig.class.equals(beanClass)) {
// protocolparameters?
NamedNodeMap attributes = element.getAttributes();
int len = attributes.getLength();
for (int i = 0; i < len; i++) {
Node node = attributes.item(i);
String name = node.getLocalName();
if (!props.contains(name)) {
if (parameters == null) {
parameters = new ManagedMap();
}
String value = node.getNodeValue();
parameters.put(name, new TypedStringValue(value, String.class));
}
}
bd.getPropertyValues().addPropertyValue("parameters", parameters);
}
return bd;
}
From source file:org.hummer.spring.ServicePaser.java
public BeanDefinition parse(Element ele, ParserContext context) { //?//from w ww . ja v a 2 s. c om service = ele.getAttribute(ATTR_SERVICE); version = ele.getAttribute(ATTR_VERSION); ref = ele.getAttribute(ATTR_REF); RootBeanDefinition root = new RootBeanDefinition(ServiceBean.class); root.setLazyInit(false); root.getPropertyValues().add("service", service); root.getPropertyValues().add("version", version); root.getPropertyValues().add("ref", new RuntimeBeanReference(ref)); context.getRegistry() .registerBeanDefinition(beanNameGenerator.generateBeanName(root, context.getRegistry()), root); return null; }
From source file:com.newlandframework.rpc.spring.NettyRpcServiceParser.java
public BeanDefinition parse(Element element, ParserContext parserContext) { String interfaceName = element.getAttribute("interfaceName"); String ref = element.getAttribute("ref"); RootBeanDefinition beanDefinition = new RootBeanDefinition(); beanDefinition.setBeanClass(NettyRpcService.class); beanDefinition.setLazyInit(false); beanDefinition.getPropertyValues().addPropertyValue("interfaceName", interfaceName); beanDefinition.getPropertyValues().addPropertyValue("ref", ref); parserContext.getRegistry().registerBeanDefinition(interfaceName, beanDefinition); return beanDefinition; }
From source file:com.newlandframework.rpc.spring.NettyRpcReferenceParser.java
public BeanDefinition parse(Element element, ParserContext parserContext) { String interfaceName = element.getAttribute("interfaceName"); String id = element.getAttribute("id"); String ipAddr = element.getAttribute("ipAddr"); String protocolType = element.getAttribute("protocol"); RootBeanDefinition beanDefinition = new RootBeanDefinition(); beanDefinition.setBeanClass(NettyRpcReference.class); beanDefinition.setLazyInit(false); beanDefinition.getPropertyValues().addPropertyValue("interfaceName", interfaceName); beanDefinition.getPropertyValues().addPropertyValue("ipAddr", ipAddr); beanDefinition.getPropertyValues().addPropertyValue("protocol", protocolType); parserContext.getRegistry().registerBeanDefinition(id, beanDefinition); return beanDefinition; }
From source file:com.codestd.spring.cxf.config.schema.AnnotationBeanDefinitionParser.java
@Override public BeanDefinition parse(Element element, ParserContext parserContext) { RootBeanDefinition beanDefinition = new RootBeanDefinition(); beanDefinition.setBeanClass(beanClass); beanDefinition.setLazyInit(false); String id = element.getAttribute("id"); if (id == null || id.length() == 0) { String name = element.getAttribute("name"); if (!StringUtils.isEmpty(name)) id = name;/*from w w w . j a v a2s . c o m*/ else id = beanClass.getName(); } if (parserContext.getRegistry().containsBeanDefinition(id)) { throw new IllegalStateException("Duplicate spring bean id " + id); } parserContext.getRegistry().registerBeanDefinition(id, beanDefinition); String annotationPackage = element.getAttribute("package"); if (!StringUtils.isEmpty(annotationPackage)) beanDefinition.getPropertyValues().add("annotationPackage", annotationPackage); return beanDefinition; }
From source file:com.clican.pluto.dataprocess.spring.parser.DeployParser.java
public BeanDefinition parse(Element element, ParserContext parserContext) { BeanDefinitionRegistry bdr = parserContext.getRegistry(); RootBeanDefinition beanDef = new RootBeanDefinition(); beanDef.setAbstract(false);/*w w w .j a v a2s. c o m*/ beanDef.setBeanClass(Deploy.class); beanDef.setLazyInit(false); beanDef.setAutowireMode(Autowire.BY_NAME.value()); String id = element.getAttribute("id"); if (StringUtils.isEmpty(id)) { id = "dplDeploy#" + element.hashCode(); } bdr.registerBeanDefinition(id, beanDef); this.setBeanDefinitionStringProperty("name", beanDef, element); this.setBeanDefinitionStringProperty("url", beanDef, element); this.setBeanDefinitionStringProperty("propertyResources", beanDef, element); return beanDef; }
From source file:com.clican.pluto.dataprocess.spring.parser.ParamProcessorParser.java
@SuppressWarnings("unchecked") public void customiseBeanDefinition(BeanDefinition beanDef, Element element, ParserContext parserContext) { List paramBeanList = new ManagedList(); NodeList nodeList = element.getChildNodes(); for (int i = 0; i < nodeList.getLength(); i++) { Node node = nodeList.item(i); if (node.getNodeType() == Node.ELEMENT_NODE) { String localName = node.getLocalName(); if ("param".equals(localName)) { RootBeanDefinition bean = new RootBeanDefinition(); bean.setAbstract(false); bean.setBeanClass(ParamBean.class); bean.setLazyInit(false); bean.setAutowireMode(Autowire.BY_NAME.value()); Element paramElement = (Element) node; String paramName = paramElement.getAttribute("paramName"); String paramValue = paramElement.getAttribute("paramValue"); String type = paramElement.getAttribute("type"); String override = paramElement.getAttribute("override"); String pattern = paramElement.getAttribute("pattern"); bean.getPropertyValues().addPropertyValue("paramName", paramName); bean.getPropertyValues().addPropertyValue("paramValue", paramValue); bean.getPropertyValues().addPropertyValue("type", type); bean.getPropertyValues().addPropertyValue("pattern", pattern); if (StringUtils.isNotEmpty(override)) { RootBeanDefinition over = new RootBeanDefinition(); over.setAbstract(false); over.setBeanClass(Boolean.class); over.setLazyInit(false); over.getConstructorArgumentValues().addIndexedArgumentValue(0, override); bean.getPropertyValues().addPropertyValue("override", over); }/*from w w w . j a v a 2s . co m*/ paramBeanList.add(bean); } } } beanDef.getPropertyValues().addPropertyValue("paramBeanList", paramBeanList); }
From source file:com.clican.pluto.dataprocess.spring.parser.ExcelProcessorParser.java
@SuppressWarnings("unchecked") public void customiseBeanDefinition(BeanDefinition beanDef, Element element, ParserContext parserContext) { List excelBeanList = new ManagedList(); NodeList nodeList = element.getChildNodes(); for (int i = 0; i < nodeList.getLength(); i++) { Node node = nodeList.item(i); if (node.getNodeType() == Node.ELEMENT_NODE) { String localName = node.getLocalName(); if ("write".equals(localName) || "read".equals(localName)) { RootBeanDefinition bean = new RootBeanDefinition(); bean.setAbstract(false); bean.setBeanClass(ExcelExecBean.class); bean.setLazyInit(false); bean.setAutowireMode(Autowire.BY_NAME.value()); Element paramElement = (Element) node; String paramName = paramElement.getAttribute("paramName"); String resultName = paramElement.getAttribute("resultName"); String resource = paramElement.getAttribute("resource"); String sheetName = paramElement.getAttribute("sheetName"); String columns = paramElement.getAttribute("columns"); String columnsVarName = paramElement.getAttribute("columnsVarName"); String sheetVarName = paramElement.getAttribute("sheetVarName"); String typeMapStr = paramElement.getAttribute("typeMap"); String resourceVarName = paramElement.getAttribute("resourceVarName"); Map<String, String> typeMap = new HashMap<String, String>(); if ("read".equals(localName)) { for (String type : typeMapStr.split(";")) { typeMap.put(type.split("=>")[0], type.split("=>")[1]); }//from w ww .j a v a 2 s .c om } bean.getPropertyValues().addPropertyValue("paramName", paramName); bean.getPropertyValues().addPropertyValue("resultName", resultName); bean.getPropertyValues().addPropertyValue("sheetName", sheetName); if (StringUtils.isNotEmpty(columns)) { bean.getPropertyValues().addPropertyValue("columns", columns.split(",")); } bean.getPropertyValues().addPropertyValue("resource", resource); bean.getPropertyValues().addPropertyValue("typeMap", typeMap); bean.getPropertyValues().addPropertyValue("columnsVarName", columnsVarName); bean.getPropertyValues().addPropertyValue("sheetVarName", sheetVarName); bean.getPropertyValues().addPropertyValue("resourceVarName", resourceVarName); if ("write".equals(localName)) { bean.getPropertyValues().addPropertyValue("read", false); } excelBeanList.add(bean); } } } beanDef.getPropertyValues().addPropertyValue("excelExecBeanList", excelBeanList); }
From source file:com.clican.pluto.dataprocess.spring.parser.JdbcExecProcessorParser.java
@SuppressWarnings("unchecked") public void customiseBeanDefinition(BeanDefinition beanDef, Element element, ParserContext parserContext) { String jdbcTemplate = element.getAttribute("jdbcTemplate"); beanDef.getPropertyValues().addPropertyValue("jdbcTemplate", new RuntimeBeanReference(jdbcTemplate)); List jdbcExecBeanList = new ManagedList(); NodeList nodeList = element.getChildNodes(); for (int i = 0; i < nodeList.getLength(); i++) { Node node = nodeList.item(i); if (node.getNodeType() == Node.ELEMENT_NODE) { String localName = node.getLocalName(); if ("exec".equals(localName)) { RootBeanDefinition bean = new RootBeanDefinition(); bean.setAbstract(false); bean.setBeanClass(JdbcExecBean.class); bean.setLazyInit(false); bean.setAutowireMode(Autowire.BY_NAME.value()); Element jdbcExecElement = (Element) node; String batch = jdbcExecElement.getAttribute("batch"); String paramName = jdbcExecElement.getAttribute("paramName"); String resultName = jdbcExecElement.getAttribute("resultName"); String paramNameMap = jdbcExecElement.getAttribute("paramNameMap"); String singleRow = jdbcExecElement.getAttribute("singleRow"); String clazz = jdbcExecElement.getAttribute("clazz"); String sql = jdbcExecElement.getTextContent(); if (StringUtils.isNotEmpty(paramNameMap)) { Map<String, String> map = new HashMap<String, String>(); for (String pnm : paramNameMap.split(";")) { String contextName = pnm.split("=>")[0].trim(); String ibatisName = pnm.split("=>")[1].trim(); map.put(contextName, ibatisName); }/* www . ja v a2s.c o m*/ bean.getPropertyValues().addPropertyValue("paramNameMap", map); } if (StringUtils.isNotEmpty(batch)) { bean.getPropertyValues().addPropertyValue("batch", Boolean.parseBoolean(batch)); } if (StringUtils.isNotEmpty(singleRow)) { bean.getPropertyValues().addPropertyValue("singleRow", Boolean.parseBoolean(singleRow)); } if (StringUtils.isNotEmpty(clazz)) { try { bean.getPropertyValues().addPropertyValue("clazz", Class.forName(clazz)); } catch (Exception e) { throw new RuntimeException(e); } } bean.getPropertyValues().addPropertyValue("paramName", paramName); bean.getPropertyValues().addPropertyValue("resultName", resultName); bean.getPropertyValues().addPropertyValue("sql", sql); jdbcExecBeanList.add(bean); } } } beanDef.getPropertyValues().addPropertyValue("jdbcExecBeanList", jdbcExecBeanList); }
From source file:com.clican.pluto.dataprocess.spring.parser.AbstractProcessorParser.java
@SuppressWarnings({ "unchecked", "rawtypes" })
public BeanDefinition parse(Element element, ParserContext parserContext) {
BeanDefinitionRegistry bdr = parserContext.getRegistry();
RootBeanDefinition beanDef = new RootBeanDefinition();
beanDef.setDestroyMethodName("destroy");
beanDef.setAbstract(false);//from w ww. j av a 2s . com
beanDef.setBeanClass(getDataProcessorClass());
beanDef.setLazyInit(false);
beanDef.setAutowireMode(Autowire.BY_NAME.value());
String id = element.getAttribute("id");
if (bdr.containsBeanDefinition(id)) {
throw new RuntimeException("id[" + id + "]??");
}
bdr.registerBeanDefinition(id, beanDef);
beanDef.getPropertyValues().addPropertyValue("id", id);
String startProcessor = element.getAttribute("startProcessor");
boolean sp = false;
if (StringUtils.isNotEmpty(startProcessor)) {
sp = Boolean.parseBoolean(startProcessor);
}
beanDef.getPropertyValues().addPropertyValue("startProcessor", sp);
String transaction = element.getAttribute("transaction");
if (StringUtils.isNotEmpty(transaction)) {
beanDef.getPropertyValues().addPropertyValue("transaction", transaction);
} else if (sp) {
beanDef.getPropertyValues().addPropertyValue("transaction", TransactionMode.BEGIN.getMode());
}
String cloneContext = element.getAttribute("cloneContext");
if (StringUtils.isNotEmpty(cloneContext)) {
beanDef.getPropertyValues().addPropertyValue("cloneContext", Boolean.parseBoolean(cloneContext));
}
String propagations = element.getAttribute("propagations");
if (StringUtils.isNotEmpty(propagations)) {
List<String> propataionList = new ArrayList<String>();
for (String propagation : propagations.split(",")) {
propataionList.add(propagation);
}
beanDef.getPropertyValues().addPropertyValue("propagations", propataionList);
}
String nextDataProcessors = element.getAttribute("nextDataProcessors");
if (StringUtils.isNotEmpty(nextDataProcessors)) {
List nextDataProcessList = new ManagedList();
for (String nextDataProcess : nextDataProcessors.split(",")) {
nextDataProcess = nextDataProcess.trim();
nextDataProcessList.add(new RuntimeBeanReference(nextDataProcess));
}
beanDef.getPropertyValues().addPropertyValue("nextDataProcessors", nextDataProcessList);
}
customiseBeanDefinition(beanDef, element, parserContext);
return beanDef;
}