基于xml的装配 注入

霄
2022-04-10 / 0 评论 / 29 阅读 / 正在检测是否收录...

Spring基于XML装配Bean (biancheng.net).

Spring 基于 XML 的装配通常采用两种实现方式,即设值注入(Setter Injection)和构造注入(Constructor Injection)

设值注入要求一个 Bean 的对应类必须满足以下两点要求。

  • 必须提供一个默认的无参构造方法。

  • 必须为需要注入的属性提供对应的 setter 方法。

    <!-- 使用设值注入方式装配Person实例 -->
    <bean id="person1" class="com.mengma.assembly.Person">
        <property name="name" value="zhangsan" />
        <property name="age" value="20" />
    </bean>
    <!-- 使用构造方法装配Person实例 -->
    <bean id="person2" class="com.mengma.assembly.Person">
        <constructor-arg index="0" value="lisi" />
        <constructor-arg index="1" value="21" />
    </bean>
<!--set方法注入      常用
        涉及的标签:property
        出现的位置:bean标签的内部
         name:用于注入时所调用的set方法名称
         value:用于提供基本类型和string类型数据
         ref:用于指定其他的bean类型数据,它指的就是在spring的Ioc核心容器中出现过的bean对象
      优势:创建对象时没有明确的限制,可以直接使用默认构造函数
      弊端:如果由某个成员,必须有值,则获取对象时,有可能set方法没有执行
          -->
    <bean id="accountService2" class="com.li.service.impl.AccountServiceImpl2">
         <property name="name" value="test"></property>
        <property name="age" value="18"></property>
        <property name="birthday" ref="now"></property>
    </bean>

代码演示

public class AccountServiceImpl2 implements IAccountService {
      private String name;
      private Integer age;
      private Date birthday;

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

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

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
    public void saveAccount() {
        System.out.println("service中的saveAccount执行了******");
    }
扫描二维码,在手机上阅读!
37

评论

博主关闭了当前页面的评论