1Controller控制器存储使⽤ Controller 存储 bean 的代码如下所⽰如何观察这个对象已经存在Spring容器当中了呢?接下来我们学习如何从Spring容器中获取对象ApplicationContext 翻译过来就是: Spring 上下⽂因为对象都交给 Spring 管理了所以获取对象要从 Spring 中获取那么就得先得到 Spring 的上下⽂观察运⾏结果, 发现成功从Spring中获取到Controller对象, 并执⾏Controller的sayHi⽅法获取bean对象的其他⽅式上述代码是根据类型来查找对象, 如果Spring容器中, 同⼀个类型存在多个bean的话, 怎么来获呢?ApplicationContext 也提供了其他获取bean的⽅式, ApplicationContext 获取bean对象的功能, 是⽗类BeanFactory提供的功能.// 1.根据bean名称获取beanObjectgetBean(String var1)throwsBeansException;// 2.根据bean名称和类型获取beanT TgetBean(String var1, ClassT var2)throwsBeansException;// 3.根据类型获取beanT TgetBean(ClassT var1)throwsBeansException;以上三种都是常用的获取Bean的方式获取到的bean是⼀样的其中1,2种都涉及到根据名称来获取对象. bean的名称是什么呢?Spring bean是Spring框架在运⾏时管理的对象, Spring会给管理的对象起⼀个名字.⽐如学校管理学⽣, 会给每个学⽣分配⼀个学号, 根据学号, 就可以找到对应的学⽣.Spring也是如此, 给每个对象起⼀个名字, 根据Bean的名称(BeanId)就可以获取到对应的对象程序开发⼈员不需要为bean指定名称(BeanId), 如果没有显式的提供名称(BeanId)Spring容器将为该 bean⽣成唯⼀的名称.命名约定使⽤Java标准约定作为实例字段名. 也就是说bean名称以⼩写字⺟开头然后使⽤驼峰式⼤⼩写.⽐如类名: UserController, Bean的名称为: userController类名: AccountManager, Bean的名称为: accountManager类名: AccountService, Bean的名称为: accountService也有⼀些特殊情况, 当有多个字符并且第⼀个和第⼆个字符都是⼤写时, 将保留原始的⼤⼩写. 这些规则与java.beans.Introspector.decapitalize (Spring在这⾥使⽤的)定义的规则相同.⽐如类名: UController, Bean的名称为: UController类名: AManager, Bean的名称为: AManager根据这个命名规则, 我们来获取Bean运⾏结果:地址⼀样, 说明对象是⼀个