Spring依赖注入 set方法注入

涉及的标签:property

标签的属性:

  name:用于指定注入时所调用的set方法的名称(注意name的值是set方法的名字小写)

  value:用于提供基本数据类型和String类型的数据

  ref:用于指定其他的bean。它的值就是在spring的Ioc核心容器中出现过的bean对象

优势:创建对象是时没有明确的要求,可以直接使用默认的构造函数

弊端:如果有某个成员必须有值,则获取对象时有可能set方法没有执行

<bean id="accountService" class="com.xuefei.service.impl.AccountServiceImpl">
        <property name="name" value="小王"></property>
        <property name="age" value="22"></property>
        <property name="date" ref="now"></property>
    </bean>
    <bean id="now" class="java.util.Date"></bean>
package com.xuefei.service.impl;

import com.xuefei.service.AccountService;

import java.util.Date;

/**
 * 账户业务层实现类
 */
public class AccountServiceImpl implements AccountService {

    String name;
    Integer age;
    Date date;

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public void setDate(Date date) {
        this.date = date;
    }
    public void say() {
        System.out.println("我是"+name+"今年"+age+"岁了!"+date);
    }

    public void saveAccount() {
    }
}

原文地址:https://www.cnblogs.com/lililixuefei/p/11874850.html

时间: 2024-11-05 17:20:06

Spring依赖注入 set方法注入的相关文章

【Spring】IOC之方法注入

方法注入在我看来就是为了实现在单例类中取得不同的实例类对象. 当一个Bean依赖的Bean和自己生命周期不同的时候:如Bean A依赖Bean B,Bean A 是singleton,如果需要在Bean A每次用到Bean B的时候都用一个Bean B的新的实例(注意是新的),即使通过在配置文件设置Bean B的 property或者 contructor-arg是不能实现的.这时候只能在Bean A中用Bean B的时候动态得到. 或者可以这么说, 调用一个singleton类型bean A的

Spring应用教程-2 方法注入

我们通常使用lookup方法注入,它可使Spring替换一个Bean的抽象或具体方法,返回查找容器中,其他Bean的结果,被查找的Bean通常是一个non-singleton Bean. 无状态的Bean的作用域一般可以配置成singleton单实例,如果我们向singleton的BeanA注入prototype的BeanB,并希望每次调用BeanA的getBeanB()时都能返回一个新的BeanB,使用传统的注入方式方法将无法实现这样的要求.因为singleton的Bean注入关联Bean的动

Spring 自动装配;方法注入

通过配置defalut-autowire属性,Spring IOC容器可以自动为程序注入Bean:默认是no(不启用自动装配). default-autowire的类型有: byName:通过名称自动进行匹配 byType:通过属性自动进行匹配 示例如下: 一个实体类people public class People{ private int id; private String name; private int age; private Dog dog; } beans.xml配置: <?

Spring学习笔记之方法注入

public  abstract class ReplacedBean {protected static final Log log = LogFactory.getLog(ReplacedBean.class);       public void process() {               AnotherBean anotherBean = createAnotheBean();        anotherBean.doSth();           }    protecte

Spring 4.2 方法注入解决单例Bean的原型Bean依赖问题

当你在单例Bean中使用原型Bean依赖时,注意,依赖在实例化时解析.因此,如果你依赖注入一个原型Bean到单例Bean中,新的原型Bean被实例化然后依赖注入到单例Bean中.提供给单例Bean的原型实例是唯一的. 然而,假设你想单例Bean在运行时多次获取一个新的原型Bean的实例.你不能依赖注入一个原型Bean到你的单例Bean中,因为注入只发生一次,当Spring容器实例化单例Bean时解析并注入它的依赖.如果你在运行时多次需要一个新的原型Bean,可以使用方法注入. 在大多数应用程序情

Spring框架笔记(三)——Spring容器、属性注入和构造器注入详解

Spring 容器 在 Spring IOC 容器读取 Bean 配置创建 Bean 实例之前, 必须对它进行实例化. 只有在容器实例化后, 才可以从 IOC 容器里获取 Bean 实例并使用. Spring 提供了两种类型的 IOC 容器实现. BeanFactory: IOC 容器的基本实现. ApplicationContext: 提供了更多的高级特性. 是 BeanFactory 的子接口. BeanFactory 是 Spring 框架的基础设施,面向 Spring 本身: Appli

Autofac--一、注册组件--3属性和方法注入

官方文档:http://docs.autofac.org/en/latest/register/prop-method-injection.html Autofac 属性和方法注入 虽然构造函数参数注入是为组件传递值的首选方法,你也可以使用属性或方法注入提供值. 属性注入使用可写入的属性,而不是构造函数的参数进行注入.方法注入通过调用一个方法设置依赖关系. 1.属性注入 如果是一个lambda表达式组件,使用一个对象来初始化: builder.Register(c => new A { B =

spring的属性注入和构造器注入

spring在向IOC容器中注入Bean的时候,有三种注入方式: 属性注入构造器注入工厂方法注入平常中用到的前两种方法较多,下面对前两种方法举例.一.属性注入1.创建一个car类,作为注入的bean package com.lzj.spring;public class Car { private String brand; private float price; public String getBrand() { return brand; } public void setBrand(S

安全之路 —— 利用远程线程注入的方法(使用DLL)实现穿墙与隐藏进程

简介 大多数后门或病毒要想初步实现隐藏进程,即不被像任务管理器这样典型的RING3级进程管理器找到过于明显的不明进程,其中比较著名的方法就是通过远程线程注入的方法注入将恶意进程的DLL文件注入系统认可的正常进程,你会发现任务管理器以及找不到独立出现的恶意进程项了.反向连接型后门采用这种技术,注入防火墙认可的进程(例如大部分系统进程,像explorer.exe就很常见)还能够获得一定的穿墙效果. 进程注入虽然已经是将近10年前的技术了,但是今天出现的很多新型黑客技术大多数还是基于这类老技术演变而来