以为咱们用的是xml 配置来开发项目,现在咱们使用更简洁 更方便 跟高效的方式Annotaion形式来开发项目
以往咱们要写一个Spring.xml的配置文件,里面要指定 包扫描的位置,数据库的连接,以及集成mybatis指定mapper的文件位置,以及Spring的AOP扫描方式等等… 那么现在我们都用注解来实现
1.我们也是在项目里,写一个配置类,并且在此类上加上 @Configuration 注解声明告诉Spirng这个就是配置类
如:
当然在此 在我们的每个层块都需要加上对应的注解: 在DAO层需要类上加上 @Repository,在Service层类上需要加上@Service, 在Controller层就需要加上@Controller注解
当然我们还需要在 “配置类” 上加上 “包扫描注解”: @ComponentScan 把个个层都依次注入到IOC容器中 如:
当然 它也能像我们以前xml配置一样 也可以实现指定那个包扫描,那些包不扫描,在@ComponentScan注解里
就比如 我们用ANNOTATION注解形式排除
如:@ComponentScan(value = “com.xuxinhui”,excludeFilters = {
@ComponentScan.Filter(type = FilterType.ANNOTATION,classes = {Controller.class,Service.class})
})
这些注解意思就是:扫描com.xuxinhui下的所以包,然后以注解的形式排除 带有@Controller和Service的类!
当然还有一个指定扫描那些包的方式:includeFilters 跟excludeFilters 用法大致相同 就不演示了,它们二个的区别就是一个指定扫描那些包,一个指定不扫描那些包!
当然 如果要使用includeFilters 需要把它的默认规则关了 如:@ComponentScan(value = “com.xuxinhui”,excludeFilters = {
@ComponentScan.Filter(type = FilterType.ANNOTATION,classes = {Controller.class,Service.class})
},useDefaultFilters = false) 它的默认规则是全部扫描 加上useDefaultFilters = false 就是关闭了 默认为true!
@ComponentScans 里面是写多个包扫描已经它的过滤形式!
在这里注重说一下 自定义规则:如果要用自定义规则的形式 那么就需要写一个类然后实现TypeFilter接口
如:
开启了包扫描然后,选择了自定义过滤,然后判断了classname是否包含er如果包含 则返回true 向IOC容器中注入!