zoukankan      html  css  js  c++  java
  • Spring框架几种创建bean的方式

    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
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    51nod——1174 区间中最大的数(ST)
    「学习笔记」Ubuntu 下手动安装 Emacs
    [学习笔记] 2-SAT
    「解题报告」 [JXOI2017]数列 (DP)
    「解题报告」 [UOJ#62] 怎样跑得更快 (莫比乌斯反演)
    「学习笔记」杜教筛
    「学习笔记」Dirichlet卷积 莫比乌斯函数 莫比乌斯反演
    「学习笔记」向量外积(叉乘)
    网络流24题
    「解题报告」[网络流24题] 16.数字梯形问题 (最大费用最大流)
  • 原文地址:https://www.cnblogs.com/Andrew520/p/9912190.html
Copyright © 2011-2022 走看看