Spring普通类或Utils工具类调用service层,mapper层
转载自博主大牛的文章特此说明在Spring MVC中,Controller中使用service只需使用注解@Resource/@Autowired就行,但是一般类(即不使用@Controller注解的类)要用到service时,会提示找不到注解的属性值,所以会是null,就算调用service的类中有@Component注解加入了Spring容器管理,也还是null.(Utils工具类是静态...
·
转载自博主大牛的文章特此说明
在Spring MVC中,Controller中使用service只需使用注解@Resource/@Autowired就行,但是一般类(即不使用@Controller注解的类)要用到service时,会提示找不到注解的属性值,所以会是null,就算调用service的类中有@Component注解加入了Spring容器管理,也还是null.(Utils工具类是静态方法,注解注入的service和mapper是非静态的,所以不行,即使把service和mapper注入为static静态的也还是会报空指针)
网上好多解决方式,我尝试了一种比较好用,操作也简单,在此做一下记录:
@Component
public class TestUtils {
@Autowired
private MyService myService;
@Autowired
private MyMapper myMapper;
public static TestUtils testUtils;
@PostConstruct
public void init() {
testUtils = this;
}
//utils工具类中使用service和mapper接口的方法例子,用"testUtils.xxx.方法" 就可以了
public static void test(int id){
//掉service接口可能还需要后续的mapper接口实现等操作,本人没测试(应该没问题);
testUtils.itemService.queryListById(id);
//直接掉mapper接口是没问题的,不会报空指针
testUtils.itemMapper.queryUserById(id);
}
}
更多推荐
已为社区贡献1条内容
所有评论(0)