Spring注释扫描标签
问题描述:
我有类,没有公共构造函数(字典,项目开始写在Java 1.4中,没有枚举)。Spring注释扫描标签
@SpringContextAvailableDict(alias="a")
public class Class1 extends Dict<Object> {
protected String code;
protected String title;
public final static Class1 NULL = new Class1(null, null, Dict.NAME_NULL);
public final static Class1 FOO = new Class1("0", "e", "name1");
public final static Class1 BAR = new Class1("1", "j", "name2",);
private Class1(String code, String letterCode, String title) {
this.code = code;
this.title = title;
}
}
我想初始化豆状
<bean parent="dict-wrapper-value" p:value="a_FOO"/>
我创建类
public class StringToDictConverter extends PropertyEditorSupport {
protected Map<String, Class<?>> dicts = new HashMap<String, Class<?>>();
public StringToDictConverter() throws ClassNotFoundException{
ClassPathScanningCandidateComponentProvider scanner
= new ClassPathScanningCandidateComponentProvider(false);
scanner.addIncludeFilter(
new AnnotationTypeFilter(SpringContextAvailableDict.class));
for (BeanDefinition bd : scanner.findCandidateComponents("exmpl/*")){
// puting bd's class to dicts on key annotation parament 'alias';
}
}
@Override
public void setAsText(String text) throws IllegalArgumentException {
String[] name = text.split("_", 2);
setValue(dicts.get(name[0]).getField(name[1]).get(new Object()))
}
}
与dict什么转换字符串,使用字典的类,但我想用得到类描述弹簧xml配置像<context:annotation-config/
>,但<context:annotation-config/
>试图获得类的实例,它没有公共构造函数。
答
你不能简单地创建这个类的实例。你需要一个(Spring)工厂来创建对象。
还不清楚。这是你问题的最后一句令人困惑的问题,你需要澄清那部分。 – skaffman 2011-03-01 10:29:14