起因:在使用mybatis 3.2的时候使用了注解式sql;虽然用起来方便 但是这样的bean却不能通过注解来声明,如下图:
需要通过MapperFactoryBean来注册bean;
如果能定义一个注解完成这个bean的注册,那就方便很多了。。
1.定义注解Mapper:
mapper没有定义其他属性,这边用类名首字母小写来作为bean名称;如果想通过注解指定可以修改;
2.定义一个bean动态注册mapper,传入扫描范围参数
这边需要定义一个bean在spring注册注解声明的bean之前 来动态完成mapper的注册(如果先注册了注解声明的bean则会报错 无法autowire)那只需要在applicationcontext.xml注册一个bean来完成动态注册就可以了;因为xml的bean会在注解声明的bean之前完成注册;
这边通过spring的PathMatchingResourcePatternResolver来完成类的扫描,读取注解,注册bean
网友评论