@AutoWired
构造器
标记一个构造器,字段,setter方法或配置方法来让Spring的依赖注入的能力来装配
构造器最多只能有一个标记@AutoWired,被标记的构造器的修饰符不用是public
如果多个构造器均标记@AutoWired则会抛异常
org.springframework.beans.factory.BeanCreationException
如果bean只定义了一个构造器,则可以省略@AutoWired。如果定义了多个构造器,则要标记一个
如果没有标记,则会调用默认的构造器(无参构造器),如果没有提供,则会抛出异常。
构造器的修饰符不是必需为pulibc
字段
字段在构造器初始化完之后在配置方法之前被注入,修饰符不必是public
配置方法(config method)
配置方法可以是任意的名字和任意的参数个数,
这些参数将会注入匹配的容器中的bean,
将配置方法的修饰符设置为public会更高效
在有多个参数的配置方法时,'requried'适用于所有的参数
Collection 和 Map
如果要依赖的参数是Collection和 Map,容器会注入所有符合的bean.
如果是Map,key一定要声明为字符类型,将会设置成对应bean的名字
boolean required() default true;
声明被注解的依赖是必须的,默认为true,如果找不到对应的依赖,会抛异常
这样可以避免运行时的空指针异常
org.springframework.beans.factory.NoSuchBeanDefinitionException
注入规则
如果类型可以区分就不考虑变量名,
如果有多个相同的类型,依据变量名来区别