@Configuration 声明为配置类
@Bean(value="bean的名称") 作用在方法上,bean的默认名称是方法名
@Lazy 懒加载
@CompentScan 包扫描范围 可用 excludeFilters 排除 includeFilters 包含,需要把useDefaultFilters属性设置为false(true表示扫描全部的)
@Scope作用域 默认单例singleton 可选参数 prototype 多例 request 同一次请求 session 同一个会话级别
@Conditional 进行条件判断等.,自定义类实现Condition接口
往IOC 容器中添加组件的方式
一、@Import来导入组件 (导入组件的id为全类名路径)
① 自定义类实现ImportSeletor类实现组件的导入 (导入组件的id为全类名路径)
②自定义类实现ImportBeanDefinitionRegister导入组件 (可以指定bean的名称)
二、实现FacotryBean接口来实现注册 组件
三、@CompentScan +@Controller @Service @Respository @compent
四、通过@Bean的方式来导入组件(适用于导入第三方组件的类)
@AutoWired 自动装配 指定装配类@Qualifier("tulingDao") 或者在配置类上的@Bean加上@Primary注解,容器中没有的话,就会抛异常 ,若我们想不抛异常 ,我们需要指定 required为false的时候可以了@Autowired(required = false)
类似注解@Resource 功能和@AutoWired的功能差不多一样,但是不支持@Primary 和@Qualifier的支持
@InJect 需要导入jar包依赖 功能和支持@Primary功能 ,但是没有Require=false的功能
AutoWired 可用写在 set方法上 构造方法上 标注在配置类上的入参中(可以不写)成员变量
我们自己的组件 需要使用spring ioc的底层组件的时候,比如 ApplicationContext等,我们自己可用实现 ApplicationContextAware,BeanNameAware 接口来实现
通过@Profile注解 来根据环境来激活标识不同的Bean
@Profile标识在类上,那么只有当前环境匹配,整个配置类才会生效
@Profile标识在Bean上 ,那么只有当前环境的Bean才会被激活
方法一:通过运行时jvm参数来切换 -Dspring.profiles.active=test|dev|prod
方法二:通过代码的方式来激活