java - Spring使用@Autowired失效但是getBean()可以執(zhí)行成功
問(wèn)題描述
想整合一下mybatis和spring,讓UserMapper可以通過(guò)spring的方式自動(dòng)注入,但是不知道為什么在下面的代碼中通過(guò)getBean的方式可以成功得到UserMapper,但是通過(guò)@Autowire的方式卻無(wú)法實(shí)現(xiàn)依賴注入,請(qǐng)問(wèn)錯(cuò)誤的原因可能有哪些?
public class TestSpringMybatis { private UserMapper userMapper; @Autowired @Qualifier('userMapper') public void setStudentMapper(UserMapper userMapper) {System.out.println('setter');this.userMapper = userMapper; }@Test public void getUser() {AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext();applicationContext.register(AppConfig.class);applicationContext.refresh();// 通過(guò)getBean的方式執(zhí)行成功UsreMapper u = (UserMapper)applicationContext.getBean('userMapper');System.out.println(u.getById(1));// 但是通過(guò)@Autowired自動(dòng)注入的話會(huì)拋出NullPointerException,并且控制臺(tái)沒(méi)有輸出setterSystem.out.println(this.studentMapper.getById(1)); }}
mybatis-spring文檔地址
問(wèn)題解答
回答1:你這個(gè)單元測(cè)速的類,應(yīng)該沒(méi)放入Spring來(lái)管理吧
回答2:TestSpringMybatis 加入spring @Component
回答3:報(bào)什么錯(cuò),TestSpringMybatis 這個(gè)類是 spring 容器里面的嗎?@Resource?
回答4:@Autowiredprivate userMapper mapper;
然后就可以在這個(gè)類里面直接用mapper了,不用再去set
相關(guān)文章:
1. showpassword里的this 是什么意思?代表哪個(gè)元素2. 對(duì)mysql某個(gè)字段監(jiān)控的功能3. java - Spring MVC怎么實(shí)現(xiàn)提交表單后跳轉(zhuǎn)?4. javascript - windows下如何使用babel,遇到了困惑5. javascript - js中向下取整6. html - vue項(xiàng)目中用到了elementUI問(wèn)題7. JavaScript事件8. javascript - table列過(guò)多,有什么插件可以提供列排序和選擇顯示列的功能9. java - input file類型上傳了一個(gè)文件,想計(jì)算一下上傳文件的大小?10. python - 為什么正常輸出中文沒(méi)有亂碼,zip函數(shù)之后出現(xiàn)中文編程unicode編碼的問(wèn)題,我是遍歷輸出的啊。
