在进行项目对接中,在使用过程中,在监听类中使用@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;
}
}