1:给bean起别名

在id后,name属性 name=”service service2 bookEbi”这三个都是别名,

都是可以用的
异常:NosuchBeanDefinitionException ,,没有这样的bean被定义

默认生成的Bean为单例模式,也就是无论Bean的名称如何变化,它的地址始终不变,可以改为非单例模式


bean如何创建出来的
对于Spring的报错,直接拉倒最下面,看Caused by : 。。。如果不能解决那就看上面的异常信息,
第一种是实例化Bean的方式:无参构造

方法默认生成的有无参构造方法,写不写都行,但是不要写有参构造方法
如果构造方法不存在,那么将抛出异常 BeanCreationException
第二种实例化Bean方式,通过静态工厂的方式实例化Bean

因为它是静态工厂,所以直接加类名
三:通过实例工厂实例化bean

Spring对实例化工厂创建bean对象进行了改良,
第四种方式:
首先有实现接口UserDao

专门创建一个工厂bean,这个bean去实现一个公用抽象类(泛型的话就填UserDao):FactoryBean<UserDao> 然后会实现两个方法,一个用来返回对象,UserDao里面的UserDaoiml
另外一个方法用来去返回类型,就填UserDao.class 填接口的字节码文件

创建出来的bean对象默认是单例的,如果想设置为非单例的,那么需要在工厂Bean中再写一个Boolean方法,如图:

如果是true,那么就认为是单例的,如果是false,那么就认为是非单例的
效果如下:

第四种方法小结

实例化Bean得三种方式:
