
# 强制路由
除了根据路由算法配置路由，SDK还支持通过注解**@DynamicReadRoute** 指定读操作的路由。注解**@DynamicReadRoute**指定路由的参数：source，用于选择数据源，可以选择对应的枚举值：MongoSource.ACTIVE, MongoSource.LOCAL。
注解**@DynamicReadRoute**支持在方法、类上添加。
使用示例：
在方法上添加注解：
```
@DynamicRoute(source = MongoSource.ACTIVE)
public Document queryFromActive() {
    Document queryCommand =
            new Document("find", collectionName).append("filter", new Document("_id", testExecuteCommandId));
    log.info("query command : {}", queryCommand.toJson());
    return mongoTemplate.executeCommand(queryCommand);
}
```
在类上添加注解，此时该类的读方法都会路由到local对应的数据源上执行。
```
@DynamicRoute(source = MongoSource.LOCAL)
@Service
public class MongoService {
    @Autowired
    private MongoTemplate mongoTemplate;
    public List<RoleModel> findAll(Class<RoleModel> entityClass) {
        return mongoTemplate.findAll(entityClass);
    }
    public RoleModel insert() {
        return mongoTemplate.insert(new RoleModel("1001", "Role1001", 1001, "China1001"));
    }
    public DeleteResult remove() {
        return mongoTemplate.remove(new RoleModel("1011", "Role1011", 1011, "China1011"));
    }
}
```
