`
huangyongxing310
  • 浏览: 496335 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Spring Bean注入方式

阅读更多
Spring Bean注入方式


一、构造器注入
1.构造器注入顾名思义就是在程序组件中实现构造器,构造器可以是一个也可以是多个。
public class PersonServiceBean implements PersonServiceIF{
    //自定义类
    private PersonDaoIF personDaoBean;
    //String类型
    private String name;
    //集合类型
    private List list;
    //构造器(构造器注入一定要有这个构造器)
    public PersonServiceBean(PersonDaoBean personDaoBean,String name,List list){
        this.personDaoBean = personDaoBean;
        this.name = name;
        this.list = list;
    }
}


<bean id="personDao" class="cn.glzaction.service.impl.PersonDaoBean"></bean >
<!--构造器方式注入-->
<bean id="personService" class="cn.glzaction.service.impl.PersonServiceBean">
    <constructor-arg index="0" type="cn.glzaction.service.impl.PersonDaoBean" ref="personDao"/>
    <constructor-arg index="1" type="java.lang.String" value="glzaction"/>
    <constructor-arg index="2" type="java.util.List">  //List的注入写法
        <list>
            <value>list1</value>
            <value>list2</value>
            <value>list3</value>
        </list>
    </constructor-arg>
</bean>


constructor-arg:表示构造器方式注入
index:构造器参数位置
type:数据类型
ref:是对bean(另一个对象的引用)
value:就是这个参数的值(基本数据类型)
list:List的值



二、设值注入(setter方式注入)
1.设值注入就是通过setXxxx方法将bean注入到组件中.
package cn.glzaction.service.impl;
import cn.glzaction.service.interfaces.PersonDaoIF;
import java.util.*;

public class PersonDaoBean implements PersonDaoIF {
    private String name;
    private Integer id;
    private List list;
    private Map map;

    public void setName(String name) {  //一定要相关参数的set方法
        this.name = name;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public void setList(List list) {
        this.list = list;
    }
    public void setMap(Map map) {
        this.map = map;
    }
}


<bean id="personDao" class="cn.glzaction.service.impl.PersonDaoBean">
    <property name="name" type="java.lang.String" value="glzaction"/>
    <property name="id" type="java.lang.Integer" value="1"/>
    <property name="list" type="java.util.List">
        <list>       //List的注入写法
            <value>list1</value>
            <value>list2</value>
            <value>list3</value>
        </list>
    </property>
    <property name="map" type="java.util.Map">
        <map>       //Map的注入写法
            <entry key="key1" value="value1"></entry>
            <entry key="key2" value="value2"></entry>
        </map>
    </property>
</bean>


property:表示setter方式注入
name:参数名字
type:数据类型
ref:是对bean(另一个对象的引用)
value:就是这个参数的值(基本数据类型)
list:List的值
map:Map的值



三、静态工厂的方法注入(比较少用到)

四、实例工厂的方法注入(比较少用到)



参考原文:http://www.cnblogs.com/java-class/p/4727775.html
分享到:
评论

相关推荐

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

    Spring提供两种主要的自动注入方式:`byName`和`byType`,以及更推荐的`@Autowired`注解。 - `byName`:根据Bean的属性名查找相同名称的Bean进行注入。 - `byType`:如果Bean的属性类型只有一个匹配的Bean,那么...

    spring bean的生命周期

    - **XML配置**:在传统的Spring应用中,Bean的定义通常写在XML配置文件中,如`springbean-xml`中的配置。 - **注解配置**:使用`@Component`,`@Service`,`@Repository`和`@Controller`注解标记类,配合`@...

    spring bean XML配置入门

    Spring支持通过属性值、构造器参数、setter方法等多种方式进行注入。 6. **运行环境与构建工具**: 题目描述中提到的运行环境是Eclipse,这是一个流行的Java集成开发环境,提供了便捷的代码编辑、调试等功能。而...

    关于spring boot中几种注入方法的一些个人看法

    在 Spring Boot 中,注入是一种非常重要的机制,用于将 bean 对象注入到其他 bean 对象中,以便实现松耦合和高内聚的设计目标。下面我们将对 Spring Boot 中的几种注入方法进行详细的介绍和分析。 1. @Autowired @...

    Spring Bean创建初始化流程.docx

    在`doCreateBean()`方法中,Spring会创建Bean的实例,`createBeanInstance(beanName, mbd, args)`执行Bean实例的创建,而`populateBean(beanName, mbd, instanceWrapper)`则负责填充Bean的属性,将依赖注入到Bean中...

    spring依赖注入bean

    **Spring 依赖注入 (DI) 与 Bean** Spring 框架的核心特性之一就是依赖注入(Dependency Injection,简称 DI),这是一种设计模式,它允许我们控制组件之间的耦合,而不是让组件自行创建它们所依赖的对象。这有助于...

    Spring bean 动态注册,jar包热替换

    Spring bean 一般通过配置文件和注解进行加载,如果要实现jar或class文件,动态实现spring bean 的动态加载,并通过UrlClassLoader完成jar和class文件的加载。可以实现jar的热替换。spring的bean动态加载则需要对...

    通过@Autowired注解注入bean的顺序,以及@bean注入.rar

    1. **类型匹配**:Spring首先尝试按类型匹配bean,找到最适合的bean注入到目标字段或构造函数。 2. **按名称匹配**:如果存在多个相同类型的bean,Spring会检查目标字段或构造函数是否有`@Qualifier`注解,如果有,...

    Spring Bean重复执行两次(实例被构造两次)问题分析

    综上所述,Spring Bean重复执行两次的问题通常是由于配置错误、依赖注入循环、初始化回调的不当使用、静态工厂方法的误用、AOP代理的配置问题或是Bean作用域设置不准确导致的。通过仔细检查和修正这些问题,可以避免...

    java巩固练习Spring 的bean注入方式有几种demo例子

    首先,我们来了解Spring中的bean注入主要有以下四种方式: 1. **设值注入(Setter Injection)**:这是最常见的一种注入方式,通过setter方法来设置bean的属性。在XML配置文件中,我们可以通过`&lt;property&gt;`标签来...

    Spring的注入方式详解

    下面我们将详细探讨Spring 中的三种注入方式:接口依赖注入(Type1)、setter/getter 注入(Type2,也称为属性注入)和构造方法注入(Type3)。 1. **接口依赖注入(Type1)** 这种注入方式相对不常见,主要适用于...

    Spring三种注入方式(三)

    本篇主要介绍Spring中的三种注入方式,包括构造器注入、设值注入和接口注入。 **一、构造器注入** 构造器注入是通过构造函数来传递依赖对象的一种方式。当类有多个构造函数时,Spring会使用带有最多参数的构造函数...

    Spring (bean怎样注入值)学习实例

    在实际开发中,可以根据项目需求选择适合的注入方式,如使用`&lt;list&gt;`、`&lt;set&gt;`或`&lt;map&gt;`标签来处理不同类型的数据结构。当然,随着Spring的发展,基于注解的配置和Java配置也变得越来越流行,但XML配置仍然是理解和...

    spring bean life cycle

    2. **属性注入**:实例化后,Spring会根据Bean定义中的`property`或`ref`属性为Bean注入依赖。这包括了通过setter方法设置值,以及通过构造函数传递参数。 3. **初始化**:在属性注入完成后,Spring会执行Bean实现...

    实例化Spring bean的两种工厂方法

    实例化Spring Bean的工厂方法是实现定制化对象创建的一种方式,提供了比直接声明Bean更高的灵活性。开发者可以根据需求选择实例工厂方法或静态工厂方法,以满足特定的应用场景。在实际项目中,应根据实际情况权衡...

    spring的注入方式

    在`spring_test`项目中,你可能会发现各种注入方式的示例代码,包括如何在Spring配置文件中定义bean,以及如何在Java类中使用这些注入方式来管理依赖。通过实践和理解这些例子,你可以更好地掌握Spring的依赖注入...

    详解Spring 中如何控制2个bean中的初始化顺序

    Spring 中控制 2 个 bean 的初始化顺序 在 Spring 框架中,控制多个 bean 的初始化顺序是一个常见的问题。本篇文章将详细介绍如何控制 2 个 bean 的初始化顺序,提供了多种实现方式,并分析了每种方式的优缺。 ...

    Spring bean 管理

    Spring支持通过XML配置文件使用构造函数注入和setter方法注入两种属性注入方式。 - 构造函数注入:在元素中声明的属性,通过构造函数传递给Bean实例。 - setter方法注入:通过元素设置的属性,Spring调用相应的...

    Spring Bean 加载顺序 .

    Spring会分析Bean之间的依赖关系,通过@Autowired、@Qualifier等方式找到合适的依赖注入。在这个阶段,Spring会尝试解决依赖图,确保所有依赖都能被正确解决。 5. **Bean实例化**: 对于Singleton作用域的Bean,...

Global site tag (gtag.js) - Google Analytics