详细问题描述:使用注解进行依赖注入时报空指针异常的错误,还请问怎样做才能将一个类注册成文组件,在另一个类注入即使用呢,如Spring的 注册组件 @Service(name="xxx") ,而注入时在引用或Setter上@Resours(name="xxx")即可注入并调用方法,请大神解答
主模块——————————————-
package nutz.Test;
import nutz.Test_1.Test;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.IocBy;
import org.nutz.mvc.annotation.Modules;
import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.ioc.provider.AnnotationIocProvider;
/**
* Created by chengzhang on 2018/5/4.
*/
@Modules(scanPackage = true)
@IocBy(type = AnnotationIocProvider.class,args={
"nutz.Test_1"
})
public class Modules_1 {
@At("Hey")
@Ok("json")
public String test(){
Test test=new Test(); // new 一个test 的对象并调用他的print方法
test.print();
return "Hey";
}
}
注入类——————————
package nutz.Test_1;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
/**
* Created by chengzhang on 2018/5/4.
*/
@IocBean(name = "hello") // 注册成为一个Bean ,名为 hello
public class Test {
@Inject("hey") //声明一个test2的引用,按名称注入test2的bean
private Test2 test2;
public void print(){
test2.toString(); //调用test2的toString方法
System.out.println("输出");
}
}
被注入类————————
package nutz.Test_1;
import org.nutz.ioc.loader.annotation.IocBean;
/**
* Created by chengzhang on 2018/5/4.
*/
@IocBean(name = "hey",args = {"张三"}) //注册成为一个Bean 名为 hey 并根据构造函数传入一个值
public class Test2 {
private String name;
public Test2(String name) { //构造函数
this.name = name;
}
@Override
public String toString() {
return "Test2{" +
"name='" + name + '\'' +
'}';
}
}