setter注入需要无参构造创建对象然后通过set方法赋值
required=true就是说这个bean必须在xml里配置了,不然就抛出异常 the bean property must be populated at configuration time
自动装配:@Autowired注入首先根据byType注入,当拥有类型相同数量大于1时在根据byName注入。
当注入容器存在多个同一类型的对象时,就是根据byName进行装配
当注入在IoC容器中该类型只有一个时,就通过byType进行装配
@Autowired是默认通过byType的方式,当匹配到多个同类型时,使用ByName进行装配
autowire默认按类型查找,如果存在多个对象再按名字查找。resource默认按名称查找,如果找不到再按类型查找。他这里讲错了
Autowired先类型后名字(需要Qualify注解配合),Resource先名字后类型
好神奇!没这个注解要使用 bean标签进行bean注入,而使用注解直接就好了
这个name必须是public的
注意:1. 如果开启包扫描,加载配置类以后就可以通过反射拿到配置类中的对象了,
2. @Bean只写在方法上,返回的是一个对象,但一般不获取已经在容器中的对象
3. @Bean 可以用于通过方法获取数据库连接池Connection这种对象
本身就是为了,在不改变Host类的基础上,使用Proxy类对Host进行代理与功能增强
设计模式本质就是代码写多了才弄出来的,这个模式就是为了在不改变原有代码的情况下对这个方法进行增强了
代理模式是指代理类对被代理对象的功能进行拓展,修饰器模式是对对象本身的功能进行增强
标签:byType,Autowired,对象,bean,查找,ioc,注入 From: https://www.cnblogs.com/lcy2021/p/17133636.html