3

我是 Spring MVC 的初学者,我有一个问题是为什么要使用 bean。

据我所知,bean 只有带有 getter 和 setter 的私有变量。

我有几个问题,

是相同的bean出现在Spring MVC中,

为什么在 Spring 中使用 bean 定义 bean 的语法是什么

(我的项目是sampleSpr)sampleSpr-servlet.xml(在WEB-INF中)

有人可以帮我解决这些问题吗?

4

1 回答 1

3

构成应用程序主干并由 Spring IoC 容器管理的对象称为 bean。bean 是由 Spring IoC 容器实例化、组装和管理的对象。这些 bean 是使用您提供给容器的配置元数据创建的,例如,以 XML 定义的形式。

从SpringSource了解更多关于 bean 和范围的信息:

当您创建 bean 定义时,您实际创建的是创建由该 bean 定义定义的类的实际实例的方法。bean 定义是一个配方的想法很重要,因为这意味着,就像一个类一样,您可以潜在地从一个配方创建许多对象实例。

您不仅可以控制要插入从特定 bean 定义创建的对象中的各种依赖项和配置值,还可以控制从特定 bean 定义创建的对象的范围。这种方法非常强大,让您可以灵活地选择通过配置创建的对象的范围,而不必在 Java 类级别“烘焙”对象的范围。可以将 Bean 定义为部署在多个范围之一中

beans是 Spring beans XML schema的命名空间前缀。命名空间前缀到模式定义中命名空间的映射是在其他地方完成的——很可能是在根元素中。

<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <beans:property name="prefix" value="/WEB-INF/views/" />
    <beans:property name="suffix" value=".jsp" />
</beans:bean>

不需要前缀,因为默认命名空间映射到相同的模式——同样,最有可能在根元素中。从文档中:

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

xmlns:意味着默认命名空间是http://www.springframework.org/schema/beans。在xsi:schemaLocation属性中,您会看到命名空间映射到定义该命名空间的 Spring beans 模式:

<xsd:schema xmlns="http://www.springframework.org/schema/beans"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            targetNamespace="http://www.springframework.org/schema/beans">
于 2014-01-22T03:56:57.043 回答