1、@ComponentScan 扫描的范围里,包含@Component、@Controller、@Service(@Controller、@Service本质也是@Component)等注解的类会被Spring实例化并纳管进容器管理;
2、属性注入的方式包括:构造方法注入,Setter方法注入,注解注入。
使用配置文件对类进行实例化和属性注入时,必须有构造方法或者Setter方法其中一种。
使用@Autowired或者@Resource这些注解则不需要Setter方法和构造方法,其背后的原理可能是:Spring通过反射,将对象的属性权限修改了,比如将private修改成public这样,然后给属性赋值。
3、只有纳管进容器的类才能彼此之间进行依赖注入,没纳管的话,Spring是不会实例化这个类,并对其属性赋值的;
4、在代码中new 的对象,其属性是不包含值的。因为new 出来的是新的对象,并不是Spring容器里纳管的对象。