Spring 创建对象的流程

打印 上一主题 下一主题

主题 836|帖子 836|积分 2508

1. 故事背景

想象一下,你是一个老板,要开一家公司。公司里有很多员工(对象),每个员工都有自己的职责和依靠关系(好比,步伐员必要电脑,销售必要电话等)。传统方式是你自己手动去安排每个员工的工作和工具,但在 Spring 的世界里,有一个超等助手(Spring 容器)帮你搞定这一切。

2. 第一步:告诉助手你必要哪些员工

你必要告诉 Spring 助手,你的公司必要哪些员工,以及他们的职责和依靠关系。你可以通过以下方式告诉助手:


  • 写一张清单(XML 配置文件):好比,“我必要一个步伐员,他必要一台电脑。”
  • 贴标签(注解):好比,在步伐员身上贴一个标签,写上“这是步伐员,他必要电脑。”
  • 口头交接(Java 配置类):好比,直接告诉助手,“帮我招一个步伐员,给他配一台电脑。”

3. 第二步:助手开始工作

助手(Spring 容器)拿到你的需求后,开始干活:

  • 分析需求:助手会仔细阅读你的清单、标签或口头交接,弄清晰每个员工的详细信息。
  • 招人(创建对象)

    • 如果员工是单例(Singleton),助手只会招一个人,并且让这个人不绝工作,直到公司关门。
    • 如果员工是原型(Prototype),助手每次必要的时间都会招一个新的人。

  • 配工具(依靠注入)

    • 助手会根据员工的需求,给他们配好工具。好比,步伐员必要电脑,助手就会把电脑(依靠对象)交给他。
    • 工具可以通过以下方式交给员工:

      • 构造函数:助手在招人的时间,直接把工具塞到员工手里。
      • Setter 方法:助手招到人后,通过一个方法把工具交给员工。
      • 直接塞(字段注入):助手悄悄把工具放到员工的办公桌上。


  • 培训(初始化)

    • 如果员工必要培训(好比步伐员必要学习新技能),助手会安排培训(调用初始化方法)。


4. 第三步:员工开始工作

招到人并配好工具后,员工就可以开始工作了。你可以随时调用这些员工来完成公司的任务。

5. 第四步:公司关门(销毁)

当公司关门时,助手会通知所有员工收拾东西脱离(调用销毁方法),好比步伐员要把电脑还回去。

6. 总结

用一句话概括 Spring 创建对象的流程:
你告诉 Spring 必要哪些对象(Bean)以及它们的依靠关系,Spring 负责创建这些对象、给它们注入依靠、初始化它们,并在不必要的时间销毁它们。

举个例子

假设你有一个 UserService(用户服务),它必要一个 UserDao(用户数据访问对象)来操作数据库。你可以这样告诉 Spring:

  • XML 配置
    1. <bean id="userService" class="com.example.UserService">
    2.     <property name="userDao" ref="userDao"/>
    3. </bean>
    4. <bean id="userDao" class="com.example.UserDao"/>
    复制代码
  • 注解配置
    1. @Service
    2. public class UserService {
    3.     @Autowired
    4.     private UserDao userDao;
    5. }
    6. @Repository
    7. public class UserDao {}
    复制代码
Spring 会:

  • 创建 UserDao 对象。
  • 创建 UserService 对象,并把 UserDao 交给它。
  • 初始化 UserService,让它准备好工作。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

雁过留声

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表