<context:component-scan base-package="com.jd"></context:component-scan>
context:component-scan:
1、扫描com.jd包及子包下所有的“类”,并为添加了@Controller,@Service,@Component和@Repository修饰的类创建对象并存入IoC容器。
2、如果@Controller,@Service,@Component和@Repository修饰的类中成员变量有@Autowired,则创建该类对象时会自动从IoC容器中获取该成员变量的值并赋给相应的变量(调用的是默认的构造方法)。
@Autowired:
默认情况下@Autowired 注解依据类型自动为成员变量赋值,当 IOC 容器里存在多个类型相同的 Bean 对象时就会依据成员变量名进行赋值,此时要求变量名必须是多个Bean对象中的一个,否则就会出现异常, 该异常可以通过在 @Qualifier 注解指定实例名的方式解决。通过@Authwired 注解为成员变量赋值时,如果Spring 找不到匹配的 Bean为成员变量赋值则会抛出异常;如果该成员变量允许不被设置, 可以设置 @Authwired 注解的 required 属性为 false;