NutzCN Logo
问答 Nutz IOC 无配置文件注入的问题
发布于 2174天前 作者 911413514 1474 次浏览 复制 上一个帖子 下一个帖子
标签:

详细问题描述:使用注解进行依赖注入时报空指针异常的错误,还请问怎样做才能将一个类注册成文组件,在另一个类注入即使用呢,如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 + '\'' +
            '}';
}

}

1 回复

改成

@IocBy(args={"*anno", "nutz"})

AnnoationIocLoader接收的参数是package列表,而不是具体的类

另外,请用自己的package,例如 com.英文名 net.昵称 等不会与其他人重复的package!

添加回复
请先登陆
回到顶部