首先,如果不配置事务在哪里扫描都是可以的,但是这是不可能的,所以扫描的时候就需要有先后的顺序。
顺序:spring负责除controller层之外所有注解的扫描,将controller层的扫描放到MVC的配置文件中。
spring配置文件:
<context:component-scan base-package="com" use-default-filters=false>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>
springMVC配置文件:
<context:component-scan base-package="com" use-default-filters=false>
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service" />
</context:component-scan>
按照如上顺序,springMVC只扫描controller然后其他的都交由spring来扫描
ps:当base-package包含controller层、service层、Repository层时,需要设置use-default-filters,否则会扫描所有的注解,不区分。