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>