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

原文地址:https://www.cnblogs.com/Andrew520/p/9912190.html

时间: 2024-10-06 14:53:09

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

Spring的几种注入bean的方式

在Spring容器中为一个bean配置依赖注入有三种方式: · 使用属性的setter方法注入  这是最常用的方式: · 使用构造器注入: · 使用Filed注入(用于注解方式).   使用属性的setter方法注入 首先要配置被注入的bean,在该bean对应的类中,应该有要注入的对象属性或者基本数据类型的属性.例如:为UserBiz类注入UserDAO,同时为UserBiz注入基本数据类型String,那么这时,就要为UserDAO对象和String类型设置setter方法.,用于进行依赖注

Spring 框架基础(02):Bean的生命周期,作用域,装配总结

本文源码:GitHub·点这里 || GitEE·点这里 一.装配方式 Bean的概念:Spring框架管理的应用程序中,由Spring容器负责创建,装配,设置属性,进而管理整个生命周期的对象,称为Bean对象. 1.XML格式装配 Spring最传统的Bean的管理方式. 配置方式 <bean id="userInfo" class="com.spring.mvc.entity.UserInfo"> <property name="na

Spring框架—— IOC容器和Bean的配置

 1 IOC和DI ①IOC(Inversion of Control):反转控制. 在应用程序中的组件需要获取资源时,传统的方式是组件主动的从容器中获取所需要的资源,在这样的模式下开发人员往往需要知道在具体容器中特定资源的获取方式,增加了学习成本,同时降低了开发效率. 反转控制的思想完全颠覆了应用程序组件获取资源的传统方式:反转了资源的获取方向--改由容器主动的将资源推送给需要的组件,开发人员不需要知道容器是如何创建资源对象的,只需要提供接收资源的方式即可,极大的降低了学习成本,提高了开发的效

三种实例化bean的方式

在spring中有三中实例化bean的方式: 一.使用构造器实例化:(90%通常使用的一个方法) 二.使用静态工厂方法实例化: 三.使用实例化工厂方法实例化. 每种实例化所采用的配置是不一样的: 一.使用构造器实例化: 这种实例化的方式可能在我们平时的开发中用到的是最多的,因为在xml文件中配置简单并且也不需要额外的工厂类来实现. Xml代码   <!--applicationContext.xml配置:--> <bean id="personService" cla

Spring框架知识总结-注入Bean的各类异常

近日整合sping和hibernate框架时遇到了一系列的异常,本次主要说明一下spring框架可能出现的异常及解决方案. 我们借助sping强大的bean容器管理机制,通过BeanFactory轻松的实现javabean的生命周期管理,然而在配置管理的时候难免会遇到一些异常: 异常1:No qualifying bean of type […] found for dependency 例如将BeanB自动注入到BeanA @Componentpublic class BeanA { @Aut

Maven 下的spring框架(一创建项目)

最近重新开始进行后台的开发工作,但是发现关于spring的框架的搭建和以前不太一样了,所以百度了一下,发现大家都在用maven进行项目管理,maven的优点在于JAR包导入是使用XML配置,而不是自己去分批下载对应的jar包,然后手动导入. maven的jar包都是从对应的仓库下载的,这里附上一个maven的仓库,仓库地址 下面开始我们项目的搭建.这里使用的Spring MVC,Spring Frame,Mybatis框架.Spring框架版本信息是4.0.2.关于spring其他的版本,可以去

spring三种实例化bean的方式

1构造函数实例化 2静态工厂方法实例化 3实例工厂方法实例化 service接口: package service; public interface PersonService { public void save(); } PersonServiceBean: package service.impl; import service.PersonService; public class PersonServiceBean implements PersonService { public

Spring框架第一篇之Bean的装配

一.默认装配方式 代码通过getBean();方式从容器中获取指定的Bean实例,容器首先会调用Bean类的无参构造器,创建空值的实例对象. 举例: 首先我在applicationContext.xml配置文件中配置了一个bean: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" x

spring框架学习4:bean注解配置

在上一篇中学习了如何使用spring来管理对象,但是再实际的开发中,再spring配置文件中配置bean元素是非常繁琐的,因此实际开发中使用注解来配置spring.具体操作如下: 在配置文件中,扫描实体类包: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=&qu