Spring框架下,Bean的创建和装配非常的灵活,提供了三种主要的方式,并且相互见可以互相看见,也就是你可以随意地采用你喜欢且合适的方式创建Bean,而不用担心他们之间的兼容问题。

一、使用XML显示配置Bean

在Spring框架最初的是,XML是最主要的配置方式。在XML中创建Bean需要使用<bean>元素,例如

<bean class= "man.BigMan" />

这是一个最简单的XML方式的Bean声明,仅指定了该Bean属于的类,那么它的名称是什么样的呢?这里有个自动命名的原则,即全限定类名来命名,如该bean的名称为“man.BigMan#0”,其中“#0”是一个计数,从0开始。

那我们可不可以指定bean的名称呢?当然是可以的,只需借助id属性即可,如:

<bean id= "bigMan"  class= "man.BigMan" />

一般我们可以对那些需要引用的Bean指定名称,而不需要引用的,则采用自动命名即可。

二、自动创建Bean

Spring中Bean地自动创建和装配是通过Java的注解机制来实现的。

比如创建一个Bean,可以在类上添加一个@Component,来告诉Spring该类是一个组件类,这样Spring就会为其创建Bean。与之类似的还有@Service和@Constroller,其功能目前与@Component相同,不过通常@Service用在业务层,@Constroller用在控制层。

packet man;

import org.springframework.stereotypr.Component;

@Component(bigMan)    ---> bigMan为自动创建Bean的名称。

public class BigMan{

private String name = "wang";

}

三、在Java中显示配置Bean

通过Java配置Bean,也是通过注解来实现的,首先要通过@Configuration注解声明一个配置类,该类中应该包含在spring中创建Bean的所有细节,如下:

packet man;

import org.springframework.context.annotation.Configuration;

public class BigManConfig{

}

创建配置类后,还需要创建一个方法,并为其添加一个@Bean的注解,来声明bean,如下:

@Bean(name="wang")

public BigMan bigMan(){

return BigMan();

}

该例子中,通过name属性为bean指定了名称,当没有指定name的时候,spring会为其自动分配名称为@Bean注解修改的方法的名称。
---------------------
作者:懒散的奋斗者
来源:CSDN
原文:https://blog.csdn.net/xsxawj/article/details/80102066
版权声明:本文为博主原创文章,转载请附上博文链接!

Spring框架几种创建bean的方式的更多相关文章

  1. Spring中三种配置Bean的方式

    Spring中三种配置Bean的方式分别是: 基于XML的配置方式 基于注解的配置方式 基于Java类的配置方式 一.基于XML的配置 这个很简单,所以如何使用就略掉. 二.基于注解的配置 Sprin ...

  2. (转)Spring的三种实例化Bean的方式

    http://blog.csdn.net/yerenyuan_pku/article/details/52832793 Spring提供了三种实例化Bean的方式. 使用类构造器实例化. <be ...

  3. Spring框架(3)---IOC装配Bean(注解方式)

    IOC装配Bean(注解方式) 上面一遍文章讲了通过xml来装配Bean,那么这篇来讲注解方式来讲装配Bean对象 注解方式需要在原先的基础上重新配置环境: (1)Component标签举例 1:导入 ...

  4. Spring中四种实例化bean的方式

    本文主要介绍四种实例化bean的方式(注入方式) 或者叫依赖对象实例化的四种方式.上面的程序,创建bean 对象,用的是什么方法 ,用的是构造函数的方式 (Spring 可以在构造函数私有化的情况下把 ...

  5. Spring的几种注入bean的方式

    在Spring容器中为一个bean配置依赖注入有三种方式: · 使用属性的setter方法注入  这是最常用的方式: · 使用构造器注入: · 使用Filed注入(用于注解方式).   使用属性的se ...

  6. Spring第四弹—–Spring的三种实例化bean的方式

    1.使用类构造器实例化   1 <bean id=“orderService" class="cn.itcast.OrderServiceBean"/> 2. ...

  7. Spring容器、BeanFactory和ApplicationContext,及3种装配Bean的方式

    目录 一. spring容器理解 二. BeanFactory和ApplicationContext之间的关系 三. BeanFactory详情介绍 四.ApplicationContext介绍 五. ...

  8. @Scope注解设置创建bean的方式和生命周期

    1.1.1            Scope注解创建bean的方式和生命周期 作用 Scope设置对象在spring容器(IOC容器)中的生命周期,也可以理解为对象在spring容器中的创建方式. 取 ...

  9. 09 Python两种创建类的方式

    第一种比较普遍的方式: class Work(): def __init__(self,name): self.name = name w = Work('well woker') 这样就简单创建了一 ...

随机推荐

  1. CICD - 持续集成与持续交付

    持续集成与持续交付是软件开发和交付中的实践.我们项目中一直在践行持续集成(CI:Continuous Integration):持续交付(CD:Continuous Delivery)未能达到理想状态 ...

  2. 更新操作 关于json字符串的拼接、json字符串与json对象之间的转换

    更新操作  后台 /** * 更新人员 * @return "updateSdr" */ public String updateTheSdr(){ jsonstr = " ...

  3. python学习之socket&黏包

    7.4 socket ​ [重要] 避免学习各层的接口,以及协议的使用, socket已经封装好了所有的接口,直接使用这些接口或者方法即可,方便快捷,提升开发效率. socket在python中就是一 ...

  4. linux 磁盘命令

    用到共享软件为:samba 配置文件为  /etc/samba/smb.conf sudo fdisk -l 查看磁盘 sudo df -lh 查看磁盘挂载情况 sudo mount /dev/sdb ...

  5. sql盲注-笔记

     盲注是因为数据库查询的结果不会直接显示在页面.只能通过构造查询语句查看反馈的结果真&假状态来判断信息.   实际注入手法和回显注入区别不大 下面只记录相关思路   select length ...

  6. HDU 2100 Lovekey (26进制大数、字符串)

    Lovekey Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  7. [官网]关于EPEL

    EPEL/zh-cn https://fedoraproject.org/wiki/EPEL/zh-cn Contents [hide]  1企业版 Linux 附加软件包(EPEL) 1.1什么是企 ...

  8. 在 IntelliJ IDEA 中使用 Git,太方便了!

    git是目前流行的分布式版本管理系统.它拥有两套版本库,本地库和远程库,在不进行合并和删除之类的操作时这两套版本库互不影响.也 因此其近乎所有的操作都是本地执行,所以在断网的情况下任然可以提交代码,切 ...

  9. mysql 表相关操作(1)

    查询语句 select * from t_deptselect empno,ename,sal from t_emp select    empno,   sal * 12 as "inco ...

  10. 深入理解let和var的区别

    首先我们应该知道js引擎在读取js代码时会进行两个步骤: 第一个步骤是解释. 第二个步骤是执行. 所谓解释就是会先通篇扫描所有的Js代码,然后把所有声明提升到顶端,第二步是执行,执行就是操作一类的. ...