最近在配置项目,由于第一次用SSM整合,难免遇到各种各样的问题,特此记录,以示警戒
异常情况 大概讲的就是没有找到合适的bean,spring注入失败
原因:
(本人情况):由于这个bean是个Mapper接口用来和数据库交互,且需要Mybatis实现注入spring容器才能使用,分析下原因应该是mybatis没有扫描到这个bean虽然application.xml已经配好了Mybatis可是还是没有用 ((´-_-)-_-)-_-) <!--定位bean --> <bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="typeAliasesPackage" value="com.rightstar.bean" /> <property name="dataSource" ref="dataSource"/> <property name="mapperLocations" value="classpath:com/rightstar/bean/**/*.xml"/> </bean> <!--mybatis定位beanMapper配置 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.righstar.bean.mapper"/> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> </bean>解决办法:
使用@MapperScan进行mybatis的依赖注入 @Service("BooksService") /*业务层导入mybatis的mapper接口映射 *重要 由于@Mapper映射莫名消失 */ @MapperScan("com.rightstar.bean") public class BooksServiceImpl implements BooksService { @Autowired BooksMapper BM; public List<Books> list(){ List<Books> l =new ArrayList<Books>(); System.out.println("业务层查询..."); for(Books book:BM.pageList(10)) System.out.println(book.getName()); return BM.pageList(10); }; public List<Books> list(int offset,int pagesize){ List<Books> l =new ArrayList<Books>(); return l; }; }