Spring核心Spring核心就是IOC和AOP。所谓IoC,对于spring框架来说,就是spring负责控制对象的生命周期和对象之间的关系。至于更详细的描述,或者深入理解Spring的两大核心,不是本文的目的,暂且不赘述。在我们的Spring项目中,需要把Bean交给Spring容器,也就是IOC管理,这样就可以使用注解进行依赖注入了。包扫描+组件注解是自己给类写的。这种方式是我们日常开发中最常用的。Spring在容器中的springIOC的扫描路径下添加@Component、@Controller、@Service、@Repository注解的类。如果你用过MybatisPlus,那么这个和他的包扫描注入是一样的。编辑那么我们的ComponentScan注解有三种配置。配置项basePackages用于定义扫描包的路径。@ComponentScan(basePackages="com.timemail.bootmp")复制代码例如,它扫描整个com.timemail.bootmp包下的类,将上面指定的注解放入IOC中。我在另一篇文章中找到了一个完整的例子:@ComponentpublicclassPerson{privateStringname;publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}@OverridepublicStringtoString(){返回"Person{"+"name='"+name+'''+'}';}}@ComponentScan(basePackages="com.springboot.initbean.*")publicclassDemo1{publicstaticvoidmain(String[]args){AnnotationConfigApplicationContextapplicationContext=newAnnotationConfigApplicationContext(Demo1.class);Personbean=applicationContext.getBean(Person.class);System.out.println(bean);}}复制代码//resultPerson{name='null'}复制代码这意味着上面代码中的Person类已经被IOC容器管理了。配置项2includeFilters包含规则Filter注解。使用FilterType.CUSTOM自定义扫描规则。您需要实现TypeFilter接口来实现match方法。参数为MetadataReader当前类的信息(注解、类路径、类原始信息...)MetadataReaderFactoryMetadataReader的工厂类。配置项三excludeFilters去除规则同包含规则。后两个配置项我用的不多,不是很熟悉,详细使用请参考相关资料。@Configuration+@Bean@Configuration+@Bean也是我们常见的放入容器的方式。@Configuration用于声明一个配置类@Bean用于声明一个Bean@ConfigurationpublicclassDemo{@BeanpublicPersonperson(){Personperson=newPerson();person.setAge(10);returnperson;}}像这样复制代码编辑。那么我们知道,在SSM中,我们一般都是在xml中配置bean。@ConfigurationpublicclassConfigBean{}复制代码那么我们的@Configuration注解就相当于一个Bean的xml配置。
