监听类使用@Autowired无法注入Bean解决办法

在进行项目对接中,在使用过程中,在监听类中使用@Autowired注解无法注入Mapper和Service。
执行过程中Mapper和Service为null,无法注入。
直接搞代码:


/**
 * 方法一
 * @author huangqh
 * @create 2020/12/25 16:34
 * @Notes 注释
 */
// Component将类交给Spring管理
@Component
public class Util {
    //注入需要使用的Mapper或Service
    @Autowired
    private UserMapper userMapper;
    //定义一个本类类型的静态常量
    public static Util util;

    /**
     * PostConstruct 保证执行init时此类已初始化
     */
    @PostConstruct
    public void init() {
        util = this;
        //多一个的话就 util.xxx=this.xxx;
        util.userMapper = this.userMapper;

    }

    /**
     * 直接本类中使用
     * @return
     */
    public User user() {
        User userByAccountUId = util.userMapper.findUserByAccountUId("1");
        return userByAccountUId;
    }

    /**
     * 直接写成静态方法
     * @return
     */
    public static User user2(){
        User userByAccountUId = util.userMapper.findUserByAccountUId("1");
        return userByAccountUId;
    }
}

/**
 * 方法2
 * @author huangqh
 * @create 2020/12/25 16:34
 * @Notes 注释
 */
// Component将类交给Spring管理
@Component
public class Util {
    //注入需要使用的Mapper类
    private UserMapper userMapper;

    @Autowired
    public Util(UserMapper userMapper) {
        this.userMapper = userMapper;
    }

    /**
     * 直接本类中使用
     *
     * @return
     */
    public User user() {
        User userByAccountUId = userMapper.findUserByAccountUId("1");
        return userByAccountUId;
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值