2016-09-21 67 views
1

我是新来的春天。我想为下面的代码编写一个bean定义。弹簧整合的豆的定义

package com.abc.common.filter; 

import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

import org.apache.log4j.Logger; 

public class RegexFilter implements Filter<String> { 

    Logger logger = Logger.getLogger(RegexFilter.class); 
    private Pattern regex; 
    private String lastMatch; 

    public RegexFilter(String regexString) { 
     this.lastMatch = null; 
     regex = Pattern.compile(regexString, Pattern.UNICODE_CHARACTER_CLASS); 
    } 

    @Override 
    public boolean matches(String text) { 
     text = text.toLowerCase(); 
     if (text == null) { 
     logger.error("No text set for matching!"); 
     return false; 
     } 

     Matcher matcher = regex.matcher(text); 
     if (matcher.find(0)) {// always start at index 0 
     this.lastMatch = matcher.group(); 
     if (logger.isDebugEnabled()) { 
      logger.debug(matcher.group() + " found!"); 
     } 
     return true; 
     } 

     return false; 
    } 

    public String getLastMatch(){ 
     return this.lastMatch; 
    } 

} 

我卡在这行后,我不知道如何包含索引或名称?对索引和值进行更多的澄清将更有帮助。

<bean id="regexfilter" class="com.abc.common.filter.RegexFilter" /> 
    <constructor-arg name="regexString" /> 
     </bean> 
+0

你会得到什么错误?或者你在哪里遇到麻烦? – reos

回答

0

基于注解庄园用纯Java中,你可以做这样的事情:

@Configuration 
public class ApplicationConfig { 

    @Bean 
    public Filter regexFilter() { 
     return new RegexFilter("value_for_the_regex_filter"); 
    } 
} 

或简单地说:

@Service 
public class RegexFilter implements Filter<String> { 
    ... 
}