NutzCN Logo
问答 集成redis的时候jedis()空指针
发布于 1836天前 作者 togethercy 1588 次浏览 复制 上一个帖子 下一个帖子
标签:

1、conf/redis.properties
内容:
redis.host=127.0.0.1
redis.port=6379
redis.timeout=2000
redis.password=123456
redis.database=0

import org.nutz.integration.jedis.RedisService;
import org.nutz.ioc.aop.Aop;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.mvc.annotation.IocBy;
import org.nutz.mvc.ioc.provider.ComboIocProvider;

import static org.nutz.integration.jedis.RedisInterceptor.jedis;


/**
 * Created by Administrator on 2019/6/11.
 */
@IocBean(name="redis")

@IocBy(type =ComboIocProvider.class ,args={
        "*js", "ioc/",
        "*anno", "net.wendal.nutzbook",
        "*jedis", // 添加这一行
        ""})
public class TestRedis {

    public static   void main(String[] args) {
        TestRedis a = new TestRedis();
        a.test1();
    }
    @Aop("redis") // 必须添加这个注解哦,否则jedis()会抛出空指针
    public void test() {
        jedis().set("name", "aaa");
    }
    @Inject
    RedisService redisService;
    public void  test1() {
        redisService.set("wendal", "https://nutz.cn");
    }
}
    java.lang.NullPointerException
at controllers.TestRedis.test(TestRedis.java:32)
at controllers.TestRedis.main(TestRedis.java:27)
6 回复

你写个main方法做啥???

测试一下test方法呢。
我是写在接口里面的,但是调用这个接口空指针,也是空指针如下:


/** * Created by Administrator on 2019/6/11. */ @IocBean(name="redis") @IocBy(type =ComboIocProvider.class ,args={ "*js", "ioc/", "*anno", "net.wendal.nutzbook", "*jedis", // 添加这一行 ""}) public class XcxUserApi { private static final String ip = (String) Play.configuration.get("site.url"); @Aop("redis") // 必须添加这个注解哦,否则jedis()会抛出空指针 public Map<String, Object> test(Map<String, String> params) { Map retval = JsonUtils.makeErrorMap("输入参数错误!"); String name = params.get("name"); jedis().set("name", name); return retval; }

在入口方法里面测!

第二个代码片段就是我的入口呀,

你确定?入口方法还能不加@At的?

被io托管的对象才能被aop
直接new出来的对象,aop是无法生效的

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