Spring动态注册bean

起因:在使用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

你可能感兴趣的:(Spring动态注册bean)