SpringBoot配置问题
@Configuration声明此类也是配置类,同时也是组件
在此类中,通过@Bean进行注册组件,方法名为对应组件的id值,返回值为组件的id,也可通过@Bean(“名称”)声明对应组件的id;
外部无论调用多少次,都调用到IOC容器中注册的唯一一个对象。
经典的时间换空间的案例代理方法:
(proxyBeanMethonds = false)当其为false时,就会忽略容器中已经有的对象的检查,进而直接新建一个项目,用于进行后续操作,会降低启动时所需要的时间。当为true时,就会在每一次的启动中检查代理的ioc容器中是否拥有对应的组件,进而形成组件的关联,降低每一次应用启动所需要的内存消耗。即Full模式和Lite模式
常用注解:
@Import导入组件@Import({user.class}),也可导入第三方的jar包
@Conditional条件装配,符合条件的组件进行的装配,可以标注在类上
@ImportResource导入资源,引入其他的对应的配置文件,供springboot进行识别
@ConfigurationProperties(prefix对应配置文件的前缀)对应配置文件的属性,用于读取对应的配置信息
@Component声明为容器中的组件,只有为容器中的组件时才能使用对应的功能 配置绑定必须
另一种配置绑定,在配置类上配置开启@EnableConfigurationProperties(.class文件)对应的类开启配置绑定,通常用于注册第三方组件时无法再源码中加入注解,此时的car.class也被注入到容器组件中.
组件加载时,加载文件中写死的配置,但是并不会完全注册组件,因为有条件装配的注解,因此绝大多数的组件会在加载注册时被过滤掉。