autocall 0.1.6

rust autocall macro,single scan load ioc aop
Documentation
use rbatis::{core::db::DBPoolOptions, rbatis::Rbatis};
use futures::executor::block_on;
use serde_json::{Value};

pub fn loading() {
    single_get_ref_try!("rbatis_config_json",String,|config_json_str:&String|{
    block_on(async{
            info!("start loading rbatis");
            info!("rbatis config:{:?}",config_json_str);
            let config_json = serde_json::from_str::<Value>(config_json_str).unwrap();
            match  config_json{
                Value::Object(r)=>{
                    let keys = r.keys();
                    for key in keys{
                        let config = &r[key].as_object().unwrap();
                        let rb = Rbatis::new();
                        let mut opt =DBPoolOptions::new();
                        opt.max_connections=100;
                        let con = rb.link_opt(config["url"].as_str().unwrap(),opt).await;
                        match con {
                            Ok(_)=>{
                                info!("rbatis link :{:?} ok",config["url"]);
                                single_push!(key,rb);
                            }
                            Err(r)=>{
                                error!("rbatis link error:{:?}",r);
                            }
                        }
                    }
                }
                _=>()
            }
            info!("end loading rbatis");
        
    })},{
    });
}