Spring Framework 是不是带有自己的 bean?

Posted

技术标签:

【中文标题】Spring Framework 是不是带有自己的 bean?【英文标题】:Does Spring Framework come with its own beans?Spring Framework 是否带有自己的 bean? 【发布时间】:2013-04-05 12:27:00 【问题描述】:

这段文字来自《Core Java Server Faces》一书:

有两种不同的机制是历史的偶然, CDI bean 和 JSF 托管 bean,用于 JSF 中可以使用的 bean 页。我们建议您使用 CDI bean,除非您的应用程序必须 在一个普通的 servlet 运行器上工作,例如 Tomcat。的源代码 这本书有两个版本,一个带有 CDI bean(用于 Java EE 6 应用程序服务器)和一个带有 JSF 托管 bean(用于 servlet 没有 CDI 支持的跑步者)。

我的问题是:

如果我使用 Spring Framework 和 Tomcat 服务器,我是否需要使用上面提到的 bean 之一,或者 Spring Framework 是否带有自己的 bean 实现?

据我所知,Spring Framework 支持依赖注入。如果我在 Tomcat 上运行应用程序,它是否支持它?这是否意味着我既不会使用本书中提到的 CDI bean 也不会使用 JSF 托管方式?

谢谢。

【问题讨论】:

【参考方案1】:

谈论容器比bean实现更正确。是的,Spring 带有自己的容器。事实上,您可以将 Spring 框架视为完整 Java EE 堆栈的一种替代方案。

同时使用 Spring DI 和 CDI 几乎没有兴趣,但您仍然可以在 tomcat 上使用 JSF 和 spring,尽管如果我建议您在这种情况下切换到 Java EE 6 Web 配置文件服务器而不是 Spring。

Spring自带的是自己的视图框架实现,名为spring mvc。

所有这些都可以在任何 servlet 容器(jetty tomcat 等)上完美运行,条件是您提供相关的 c 依赖项。

【讨论】:

没有托管 bean 是一个简单的 pojo(普通的旧 java 对象),带有元数据 @SomeAnnontation 注释。容器是管理这些 bean 的对象(框架/功能集 - 随心所欲地调用它)。它将检测注释并以适当的行为对其进行处理(例如@transactional 将导致容器打开事务、执行带注释的方法并在方法执行后正确提交/回滚事务)。所谓的依赖注入是容器实例化和管理所有 bean 生命周期并使用注释(@inject)将其注入彼此内部的事实。

以上是关于Spring Framework 是不是带有自己的 bean?的主要内容,如果未能解决你的问题,请参考以下文章

如何在IOS开发中在自己的framework中添加.bunble文件

手动创建Spring项目 Spring framework

在覆盖 ApplicationContextAware.setApplicationContext 方法中初始化的变量是不是需要在 Spring Framework 中声明为 volatile?

iOS 打包.framework(包括第三方图片xibplist文件)详细步骤及需要注意的地方

rest framework之解析器

Spring Boot 2.3.2 server.forward-headers-strategy=framework 重定向到方案 http 而不是 https