| |
自定义编辑器实例 |
|
/*
Pro Spring
By Rob Harrop
Jan Machacek
ISBN: 1-59059-461-4
Publisher: Apress
*/
///////////////////////////////////////////////////////////////////////////////////////
//File:custom.xml
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean name="customEditorConfigurer" class="org.springframework.beans.factory.config.CustomEditorConfigurer">
<property name="customEditors">
<map>
<entry key="java.util.regex.Pattern">
<bean class="PatternPropertyEditor"/>
</entry>
</map>
</property>
</bean>
<bean id="exampleBean" class="CustomEditorExample">
<property name="searchPattern">
<value>(dog|fox)</value>
</property>
<property name="textToSearch">
<value>The quick brown fox jumped over the lazy dog.</value>
</property>
</bean>
</beans>
///////////////////////////////////////////////////////////////////////////////////////
import java.beans.PropertyEditorSupport;
import java.util.regex.Pattern;
public class PatternPropertyEditor extends PropertyEditorSupport {
public void setAsText(String text) throws IllegalArgumentException {
Pattern pattern = Pattern.compile(text);
setValue(pattern);
}
}
///////////////////////////////////////////////////////////////////////////////////////
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.config.CustomEditorConfigurer;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.FileSystemResource;
public class CustomEditorExample {
private Pattern searchPattern;
private String textToSearch;
public static void main(String[] args) {
ConfigurableListableBeanFactory factory = new XmlBeanFactory(
new FileSystemResource("build/custom.xml"));
CustomEditorConfigurer config = (CustomEditorConfigurer) factory
.getBean("customEditorConfigurer");
config.postProcessBeanFactory(factory);
CustomEditorExample bean = (CustomEditorExample) factory
.getBean("exampleBean");
System.out.println(bean.getMatchCount());
}
public void setSearchPattern(Pattern searchPattern) {
this.searchPattern = searchPattern;
}
public void setTextToSearch(String textToSearch) {
this.textToSearch = textToSearch;
}
public int getMatchCount() {
Matcher m = searchPattern.matcher(textToSearch);
int count = 0;
while (m.find()) {
count++;
}
return count;
}
}
|
|
CustomEditorExample.zip( 1,477 k) |
Related examples in the same category |
|