<h3 dir="auto">Which version of ShardingSphere did you use?</h3>
<p dir="auto">ShardingSphere-JDBC 5.1.0 + spring boot 2.3.10</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="&lt;dependency&gt;
    &lt;groupId&gt;org.apache.shardingsphere&lt;/groupId&gt;
    &lt;artifactId&gt;shardingsphere-jdbc-core-spring-boot-starter&lt;/artifactId&gt;
    &lt;version&gt;5.1.1&lt;/version&gt;
&lt;/dependency&gt;"><pre class="notranslate"><code class="notranslate">&lt;dependency&gt;
    &lt;groupId&gt;org.apache.shardingsphere&lt;/groupId&gt;
    &lt;artifactId&gt;shardingsphere-jdbc-core-spring-boot-starter&lt;/artifactId&gt;
    &lt;version&gt;5.1.1&lt;/version&gt;
&lt;/dependency&gt;
</code></pre></div>
<h3 dir="auto">Which project did you use? ShardingSphere-JDBC or ShardingSphere-Proxy?</h3>
<p dir="auto">ShardingSphere-JDBC</p>
<h3 dir="auto">Expected behavior</h3>
<p dir="auto">Use a simple example to divide the database</p>
<h3 dir="auto">Actual behavior</h3>
<p dir="auto">Route table null does not exist, available actual table: [oms_master_order_0, oms_master_order_1]</p>
<h3 dir="auto">Reason analyze (If you can)</h3>
<p dir="auto">to configure  oms_master_order_$-&gt;{id % 2}</p>
<h3 dir="auto">Steps to reproduce the behavior, such as: SQL to execute, sharding rule configuration, when exception occur etc.</h3>
<blockquote>
<p dir="auto">This is my configuration</p>
</blockquote>
<div class="highlight highlight-source-ini notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="spring.shardingsphere.enabled=true
spring.shardingsphere.datasource.names=oms
spring.shardingsphere.datasource.oms.type=com.alibaba.druid.pool.DruidDataSource
spring.shardingsphere.datasource.oms.driver-class-name=com.mysql.cj.jdbc.Driver
spring.shardingsphere.datasource.oms.url=jdbc:mysql://192.168.0.128:3306/yidian_oms?serverTimezone=UTC&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8
spring.shardingsphere.datasource.oms.username=root
spring.shardingsphere.datasource.oms.password=root

spring.shardingsphere.rules.sharding.tables.oms_master_order.actual-data-nodes=oms.oms_master_order_$-&gt;{0..1}
spring.shardingsphere.rules.sharding.tables.oms_master_order.table-strategy.standard.sharding-column=id
spring.shardingsphere.rules.sharding.tables.oms_master_order.table-strategy.standard.sharding-algorithm-name=master-order-inline
spring.shardingsphere.rules.sharding.sharding-algorithms.master-order-inline.type=INLINE
#spring.shardingsphere.rules.sharding.sharding-algorithms.master-order-inline.props=strategy
#spring.shardingsphere.rules.sharding.sharding-algorithms.master-order-inline.props.algorithmClassName=cn.dian1.oms.core.sharding.TableShardingAlgorithm
spring.shardingsphere.rules.sharding.sharding-algorithms.master-order-inline.props.algorithm-expression=oms_master_order_$-&gt;{id % 2}
spring.shardingsphere.props.sql-show=true"><pre class="notranslate"><span class="pl-k">spring.shardingsphere.enabled</span>=true
<span class="pl-k">spring.shardingsphere.datasource.names</span>=oms
<span class="pl-k">spring.shardingsphere.datasource.oms.type</span>=com.alibaba.druid.pool.DruidDataSource
<span class="pl-k">spring.shardingsphere.datasource.oms.driver-class-name</span>=com.mysql.cj.jdbc.Driver
<span class="pl-k">spring.shardingsphere.datasource.oms.url</span>=jdbc:mysql://192.168.0.128:3306/yidian_oms?<span class="pl-k">serverTimezone</span>=UTC&amp;<span class="pl-k">useSSL</span>=false&amp;<span class="pl-k">useUnicode</span>=true&amp;<span class="pl-k">characterEncoding</span>=UTF-8
<span class="pl-k">spring.shardingsphere.datasource.oms.username</span>=root
<span class="pl-k">spring.shardingsphere.datasource.oms.password</span>=root

<span class="pl-k">spring.shardingsphere.rules.sharding.tables.oms_master_order.actual-data-nodes</span>=oms.oms_master_order_$-&gt;{0..1}
<span class="pl-k">spring.shardingsphere.rules.sharding.tables.oms_master_order.table-strategy.standard.sharding-column</span>=id
<span class="pl-k">spring.shardingsphere.rules.sharding.tables.oms_master_order.table-strategy.standard.sharding-algorithm-name</span>=master-order-inline
<span class="pl-k">spring.shardingsphere.rules.sharding.sharding-algorithms.master-order-inline.type</span>=INLINE
<span class="pl-c"><span class="pl-c">#</span>spring.shardingsphere.rules.sharding.sharding-algorithms.master-order-inline.props=strategy</span>
<span class="pl-c"><span class="pl-c">#</span>spring.shardingsphere.rules.sharding.sharding-algorithms.master-order-inline.props.algorithmClassName=cn.dian1.oms.core.sharding.TableShardingAlgorithm</span>
<span class="pl-k">spring.shardingsphere.rules.sharding.sharding-algorithms.master-order-inline.props.algorithm-expression</span>=oms_master_order_$-&gt;{id % 2}
<span class="pl-k">spring.shardingsphere.props.sql-show</span>=true</pre></div>
<blockquote>
<p dir="auto">This is the statement I execute SQL :</p>
</blockquote>
<div class="highlight highlight-source-java notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content=" @GetMapping(value = &quot;/testSharding&quot;)
    public String testSharding() {
        jdbcTemplate.update(&quot;insert into oms_master_order (id, masterOrderNo, containerNumber, create_time) values (?,?,?,?)&quot;,
                100, &quot;100&quot;, &quot;123456&quot;, new Date());
//                100, &quot;100&quot;, &quot;123456&quot;, '2022-06-15 14:24:41');
        return &quot;成功了&quot;;
    }"><pre class="notranslate"> <span class="pl-c1">@</span><span class="pl-c1">GetMapping</span>(<span class="pl-s1">value</span> = <span class="pl-s">"/testSharding"</span>)
    <span class="pl-k">public</span> <span class="pl-smi">String</span> <span class="pl-s1">testSharding</span>() {
        <span class="pl-s1">jdbcTemplate</span>.<span class="pl-en">update</span>(<span class="pl-s">"insert into oms_master_order (id, masterOrderNo, containerNumber, create_time) values (?,?,?,?)"</span>,
                <span class="pl-c1">100</span>, <span class="pl-s">"100"</span>, <span class="pl-s">"123456"</span>, <span class="pl-k">new</span> <span class="pl-smi">Date</span>());
<span class="pl-c">//                100, "100", "123456", '2022-06-15 14:24:41');</span>
        <span class="pl-k">return</span> <span class="pl-s">"成功了"</span>;
    }</pre></div>
<p dir="auto">This may be the reason for the problem. I don't understand that there will be a parsing failure and a "null" will be returned<br>
<a target="_blank" rel="noopener noreferrer nofollow" href="https://user-images.githubusercontent.com/85894494/177711108-dee5d238-257c-48ef-a7a0-9fe2ea362a1e.png"><img src="https://user-images.githubusercontent.com/85894494/177711108-dee5d238-257c-48ef-a7a0-9fe2ea362a1e.png" alt="177704167-0c050e8e-9526-42bb-9db5-4313a78f4adf" style="max-width: 100%;"></a></p>
<p dir="auto">I found that all implementation classes of standardshardingalgorithm did not execute the init () method.<br>
My environment is in springboot</p>
<h3 dir="auto">Example codes for reproduce this issue (such as a github link).</h3>
<h2 dir="auto">Feature Request</h2>
<h3 dir="auto">Is your feature request related to a problem?</h3>
<p dir="auto">No</p>
<h3 dir="auto">Describe the feature you would like.</h3>
<p dir="auto">There is a syntax for creating a shadow algorithm separately in Distsql, but cannot use a separately created shadow algorithm to create a shadow rule(I'v already check the Antler file). This makes it moot to create the shadow algorithm alone.<br>
Please complete the syntax of using shadow algorithm to create shadow rule.</p>