关于java:Spring-创建对象的方式

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>

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理