`
michael.softtech
  • 浏览: 208601 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Spring bean中的id,name属性

阅读更多

今日做东东,遇到一个问题。就是一些bean是通过@Service的方式声明成为bean的。

结果在某些应用里面因为需要序列化的原因,不能直接注入bean,需要在bean加载完之后手动取出需要的bean并且应用。但是声明的bean并没有名字....

 

疑惑之下,看了一下Spring的源码,理解了一下spring bean的id,name的管理方式,理解如下:

 

    id是唯一标志一个bean的。在一个bean生成的过程中,如果有id,那么自然最好。如果没有设置id,只设置了

    name属性(name属性可以设置多个,比如: a,b,c),那么就把name属性中的第一个取出来,作为id;

    如果都ID和name都没有设置(例如:@Service),那么系统会有一个默认生成id的方式。就是段类名。

    比如:com.abc.T.class的短类名就是t(Spring取出短类名之后会进行转化,转换成java常用的参数命名形式,比        如:AtTen会被转化成atTen.).只是有一点很让我疑惑,那就是采用短类名的方式容易出现id重复的

    bean,于是在加载的时候肯定会报错。不明白为什么spring没采取长类名的方式。

 

   渴求高人指点。

分享到:
评论
2 楼 michael.softtech 2010-06-20  
恩,有可能是基于这个考虑。不过一个很潜在的问题是如果不同包下面有短类名相同的类,如果我们采用annotation方式来定义bean而非配置文件的方式,那么这种短类名的方式会不会有冲突呢?
1 楼 guomao 2010-06-02  
这个要看你怎么想了,要是用全类名的话,你用的时候是不是太麻烦了,取一个bean要写那么长代码。所以只要写bean类的时候注意不用同一个短类名就行了。

相关推荐

    spring bean 属性总结

    - **id属性**:是Bean在BeanFactory中的唯一标识符,用于通过BeanFactory获取Bean实例。例如,`<bean id="myBean" class="com.example.MyClass">`。 - **name属性**:类似于`id`属性,但可以定义多个别名。例如,`...

    spring bean XML配置入门

    在本文中,我们将深入探讨Spring框架中的Bean XML配置,这是Spring的核心特性之一,它允许我们定义、管理和装配应用中的对象。我们将围绕以下知识点展开: 1. **Spring框架基础**: Spring是一个开源的Java平台,...

    Spring bean 管理

    - id和name:id属性是Bean的标识符,name属性可以包含特殊字符,且可以有多个别名。 - class:用于指定Bean所对应的完整类名,Spring通过反射来创建该类的实例。 3. Bean的作用域: - singleton:默认的作用域,...

    Spring Bean简单应用实例

    在Spring框架中,Bean是核心概念,它代表了应用程序中的对象。Spring通过IoC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)来管理这些Bean。在这个"Spring Bean简单应用实例"中,我们将...

    Spring的Bean配置

    在本文中,我们将深入探讨Spring中的Bean配置,包括IoC和DI的概念,Bean的配置方式,以及不同类型的IOC容器。 **Spring的Bean配置**: 在Spring中,Bean是应用中的对象,它们由Spring IoC容器负责创建、管理和装配...

    day38 08-Spring的id、name和scope顺序

    在Spring框架中,`id`、`name`和`scope`是配置bean时常见的三个属性,它们对于理解和管理Bean的生命周期至关重要。今天我们将深入探讨这三个属性的含义、使用方法以及它们之间的顺序规则。 首先,`id`是Spring Bean...

    day38 11-Spring的Bean的属性的注入:对象属性

    在Spring框架中,Bean的属性注入是核心功能之一,它允许我们为Bean对象设置各种属性值,以便在应用运行时创建和配置完全初始化的对象。在本篇内容中,我们将深入探讨Spring如何处理Bean的属性注入,包括对象属性的...

    Spring之核心容器bean

    这里,`myBean`是bean的ID,`com.example.MyClass`是bean对应的类,`name`属性则是bean的一个属性,被注入了值"Example Bean"。 **依赖注入(DI)** Spring的核心特性之一是依赖注入(Dependency Injection,简称DI...

    Spring定义bean的三种方式和自动注入

    在Spring框架中,管理Bean的方式主要有三种:XML配置、注解配置和Java配置。下面将详细介绍这三种方式以及Spring的自动注入机制。 1. **基于XML的Bean定义**: 在XML配置中,我们通常在`applicationContext.xml`...

    Java中Spring获取bean方法小结

    然后在需要的地方,只需调用`BeanManager.getBean("beanId")`即可。 4. **在Web应用中启动** 在Web应用中,可以配置一个Servlet,在服务器启动时初始化ApplicationContext。在`web.xml`中定义Servlet,并在`init...

    spring框架配置bean的高级属性

    本文将详细解读标题“spring框架配置bean的高级属性”以及描述中的内容,并结合具体的示例XML配置文件来探讨Bean配置中的高级技巧。 #### 核心概念与应用场景 在描述中提到的`hibernate tools`是一种用于简化...

    spring依赖注入bean

    `ref` 属性指定了要注入的 Bean 的 ID。 **注解驱动的配置** 除了 XML 配置,Spring 也支持使用注解进行配置。这使得代码更加简洁且易于理解。我们可以在类上使用 `@Component` 注解声明一个 Bean,然后使用 `@...

    day38 12-Spring的Bean的属性的注入:名称空间p

    在Spring框架中,Bean的属性注入是核心功能之一,它允许我们通过配置文件或注解来设置Bean实例的属性值,使得对象的初始化更加灵活。本文将深入探讨Spring中的"名称空间p",这是一种用于配置Bean属性注入的方式,...

    Spring实战之获得Bean本身的id操作示例

    从测试结果中,我们可以看到,Spring容器已经成功地将Bean的配置id传递给了setBeanName()方法,并将其保存在了beanName实例变量中。 在Spring框架中,获取Bean本身的id操作可以通过实现BeanNameAware接口来实现。...

    第四章 Spring Bean基础1

    Spring Bean 是 Spring 框架的核心概念,它代表了应用程序中的一个对象,这个对象可以被 Spring 容器管理,包括创建、初始化、装配、销毁等生命周期过程。在 Spring 中,Bean 定义是由 `BeanDefinition` 接口来表示...

    spring IOC反射装载bean

    在这个特定的"spring IOC反射装载bean"的主题中,我们将深入探讨Spring如何通过XML配置文件来加载和管理Bean,并利用Java的反射机制来实例化这些Bean。 首先,Spring容器通过读取XML配置文件来获取Bean的定义。这些...

    SPRING:bean配置properties

    在Spring框架中,Bean的配置与管理是其核心功能之一,而通过`PropertyPlaceholderConfigurer`进行属性占位符的配置则是实现动态配置的关键技术。本文将深入解析如何利用`PropertyPlaceholderConfigurer`进行bean配置...

    Spring如何获取Bean

    Spring 中获取 Bean 的多种方式 在 Spring 框架中,获取 Bean 是一个非常重要的步骤,因为它是使用 Spring 框架的基础。Spring 提供了多种方式来获取 Bean,这些方式可以根据不同的应用场景选择使用。 通过 XML ...

    spring入门教程之bean的继承与自动装配详解

    这里的`autowire="byName"`指示Spring尝试找到一个名为`name`的Bean来自动装配到`Person`类的相应属性上。 Bean的继承是通过`parent`属性实现的,允许一个Bean继承另一个Bean的配置。这样可以重用和覆盖父Bean的...

    spring 属性参考与自动绑定

    当`autowire`属性设置为`byName`时,Spring会尝试根据属性名和bean的ID来自动匹配bean。这意味着如果有一个bean的ID与属性名相匹配,那么这个bean将会被注入到对应的属性中。例如: ```xml <bean id="date" class=...

Global site tag (gtag.js) - Google Analytics