autoload
基于 singlemap 实现 ioc aop autowired,更方便的集成库之间的使用:
包含 #[bean] #[aop] #[component_scan]
```rust
// 展开
// macrorules! defsingle {
// () => {
// singleget_unwrap!( "defsingle", EntityObj)
// };
// }
#[autowired]
static defsingle: Option
// autocall::libs 是 autocall 上传的自动装配包 //扫描自动配置,快速集成组件 比如 src/starterlibs/mod.rs 默认自动调用 crate::starterlibs::actix-web-starter::loading();
pub fn scanautoloading(){ //用来承载扫描内容的载体 }
//扫描 atesta::ioca路径下 scanmacro="bean" 使用bean宏标记的函数,扫描的内容会根据 调用宏componentscan的crate位置作为基础坐标,不用担心发布的crate扫描路径不正确的情况
pub fn lading(){ println!("crateiocpath!() test"); let a = singlegetunwrap!("get_bec",String); println!("输出参数:{:?}",a); }
//加载了一个bean
pub fn get_bec()->String{ println!("加载了一个组件"); String::from("99999") }
//标记切入的bean
pub fn setaohhhhh(a:&String,b:&String)->String{ println!("setaohhhhh:{:?}",a); return String::from("888899"); }
//位于函数执行前获取到参数
pub fn set_aopa()->Box<(dyn Fn(Vec
//位于函数执行后获取到参数
pub fn set_aopb()->Box<(dyn Fn(Vec
More patterns and use-cases are in the docs!