开头说明:
注解只是一个标记. 其中可以包含一些程序猿输入的一些值.
重点在于框架对于标记的解读和反射操作.切记切记啊.
-------------------------------------------------------------------------------------------
1. @ComponentScan("com.ss.demo.springbootdemo")
作用: 扫包标记. 最重要的还是他的内容. "com.ss.demo.springbootdemo". 通过这个包名可以找到所有带@Component的目标类, 加入到IOC单例容器singletonObjects中.
2. @Configuration
配置类注解:
作用: 相当于XML配置中的 beans.xml文件. 其中可以配置n个bean.
3. @Bean
作用: 经常与@Configuration 配合使用. 相当于beans.xml中的 <bean>
4. @Import
作用: 经常与@Configuration配合使用, 导入其他配置类. 相当于将多个beans.xml文件合并到一个文件中.
5. @PropertySource
作用: 通常用于加载后缀为 properties的文件资源
小节:
6. @Component
作用: 标记当前对象为一个bean. 加入到IOC容器中的对象称为一个bean
衍生注解: @Controller @Service @Repository
四个注解功能一样. 只是后几个具有语义上的标识性. 也是开发中常用的.
7. @Scope
作用: 作用域,是否加入ioc单例容器.
值: singleton 单例 spring默认是单例的, 会加入到ioc单例容器中.
prototype 多例 不会加入到ioc单例容器singletonObjects中
8. @Lazy
作用: 是否懒加载,也叫延迟加载
值: 默认为true. 代表着加了此注解的bean, 只有在使用到的时候,才实例化,加入到ioc单例容器中.
懒加载: 也就是 按需加载, 没必要在Spring启动的时候就实现加载