MyBatis custom a typeHandler not executed
<p>In 3.2.8 official documentation，in 'typeHandlers' section，i have a test that，and then found it can't override the default org.apache.ibatis.type.StringTypeHandler. I debug it,it was stop in StringTypeHandler,not ExampleTypeHandler. 
here is the mybatis-config.xml file:</p>

<pre><code>&lt;?xml version="1.0" encoding="UTF-8" ?&gt;
&lt;!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd"&gt;
&lt;configuration&gt;
    &lt;properties resource="db.properties"/&gt;

    &lt;settings&gt;
        &lt;setting name="mapUnderscoreToCamelCase" value="true"/&gt;
    &lt;/settings&gt;

    &lt;typeAliases&gt;
        &lt;package name="com.solverpeng.mybatis.beans"/&gt;
    &lt;/typeAliases&gt;

    &lt;typeHandlers&gt;
        &lt;typeHandler handler="com.solverpeng.mybatis.typeHandlers.ExampleTypeHandler"/&gt;
    &lt;/typeHandlers&gt;

    &lt;environments default="development"&gt;
        &lt;environment id="development"&gt;
            &lt;transactionManager type="JDBC"/&gt;
            &lt;dataSource type="POOLED"&gt;
                &lt;property name="driver" value="${jdbc.driver}"/&gt;
                &lt;property name="url" value="${jdbc.url}"/&gt;
                &lt;property name="username" value="${jdbc.username}"/&gt;
                &lt;property name="password" value="${jdbc.password}"/&gt;
            &lt;/dataSource&gt;
        &lt;/environment&gt;
    &lt;/environments&gt;
    &lt;mappers&gt;
        &lt;mapper resource="com/solverpeng/mybatis/beans/mapper/CustomerMapper.xml"/&gt;
    &lt;/mappers&gt;
&lt;/configuration&gt;
</code></pre>

<p>and here is the ExampleTypeHandler.java</p>

<pre><code>@MappedJdbcTypes(JdbcType.VARCHAR)
public class ExampleTypeHandler extends BaseTypeHandler&lt;String&gt; {

    @Override
    public void setNonNullParameter(PreparedStatement ps, int i, String parameter, JdbcType jdbcType) throws SQLException {
        ps.setString(i, parameter);
    }

    @Override
    public String getNullableResult(ResultSet rs, String columnName) throws SQLException {
        return rs.getString(columnName);
    }

    @Override
    public String getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
        return rs.getString(columnIndex);
    }

    @Override
    public String getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
        return cs.getString(columnIndex);
    }
}
</code></pre>