@ MapperScan scan package mixed with @ Service and other problems what to do
Editor to share with you the @ MapperScan scan package mixed with @ Service and other problems to do, I hope you will learn something after reading this article, let's discuss it together!
@ MapperScan scan package mixed with @ Service problem description
@ MapperScan annotations are generally configured with dao or mapper scan packages, which are generally used for database operations, and the classes in them are usually interfaces. If there are other interfaces in the dao layer, such as @ Service, an error will be reported.
Solution one
It is feasible to remove the service package.
Solution two
Instead of using @ MapperScan, add @ Mapper to each dao or mapper. The method is feasible.
Solution three
Using custom annotations, you don't have to do much on your own when the mybatis annotations are relatively perfect.
Create an annotation @ MyMapperScan
All the attributes in it are plagiarized @ MapperScan
Change MapperScannerRegistrar to your own.
@ Retention (RetentionPolicy.RUNTIME) @ Target (ElementType.TYPE) @ Documented@Import (MyMapperScannerRegistrar.class) @ Repeatable (MapperScans.class) public @ interface MapperScan {String [] value () default {}; String [] basePackages () default {}; Class [] basePackageClasses () default {}; Class markerInterface () default Class.class; String sqlSessionTemplateRef () default "; String sqlSessionFactoryRef () default"; Class markerInterface = annoAttrs.getClass (" markerInterface ") If (! Class.class.equals (markerInterface)) {scanner.setMarkerInterface (markerInterface);} Class