Spring 创建对象的方式

创建对象的方式

无参方式创建对象

实现类:

public class ReadDaoImpl implements ReadDao {
    private String str = "我是杂志";
    public ReadDaoImpl(){
    }
    public ReadDaoImpl(String str){
        this.str=str;
    }
    @Override
    public void getString() {
        System.out.println(str);
    }
}

set方式实现

如果我们去掉实现类的无参构造方法,会报错。因此默认是无参构造的方式创建对象。

bean文件

    <bean id="readDao" class="com.spring.daoimpl.ReadDaoImpl">
    </bean>
    <bean id="readService" class="com.spring.serviceimpl.ReadServiceImpl">
        <property name="readDao" ref="readDao"></property>
    </bean>

有参方式创建对象

  • 根据下标赋值
<bean id="readDao" class="com.spring.daoimpl.ReadDaoImpl">
    <constructor-arg index="0" value="杂志"></constructor-arg>
</bean>

<bean id="readService" class="com.spring.serviceimpl.ReadServiceImpl">
    <property name="readDao" ref="readDao"></property>
</bean>
  • 根据类型注入(不推荐)
<bean id="readDao" class="com.spring.daoimpl.ReadDaoImpl">
    <constructor-arg type="int" value="1"></constructor-arg>
    <constructor-arg type="java.lang.String" value="杂志1"></constructor-arg>
    <constructor-arg type="java.lang.String" value="杂志"></constructor-arg>
</bean>

根据类型注入需要注意当类型一致时根据顺序依次注入因此不推荐使用

  • 根据名称注入
<bean id="readDao" class="com.spring.daoimpl.ReadDaoImpl">
    <constructor-arg name="a" value="1"></constructor-arg>
    <constructor-arg name="str" value="杂志1"></constructor-arg>
    <constructor-arg name="str1" value="杂志"></constructor-arg>
</bean>

Spring配置

别名

<alias name="userService" alias="userServiceNew"></alias>

顾名思义

UserService userService = (UserService) context.getBean("userService");
UserService userServiceNew = (UserService) context.getBean("userServiceNew");

上边代码获取的是同一个对象。

bean配置

<bean id="userService" class="com.spring.serviceimpl.UserServiceImpl" name="s1 s2,s3;s4">
    <property name="userDao1" ref="userDaoZs"></property>
    <property name="userDao" ref="userDaoLs"></property>
</bean>

bean标签

  • id指的是注入的对象名称(唯一标识符通过该名称获取bean)
  • class指的是注入的对象的类型
  • name指的是别名也就是说此时通过userService,s1,s2,s3,s4获取的对象一致。

property标签

  • name是决定UserService类中的那个参数
  • ref bean配置文件中的bean名称,主要是Spring已经创建的对象进行注入
  • value注入的类型,新建对象进行创建

import

导入,当我们联合开发通过导入将文件内容合并

<import resource="beans.xml"></import>

DI依赖注入(Dependency Injection)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值