先建两个类:
对象类:
package com.ioc;
public class UserModel {
private String id;
private String name;
private String sex;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
服务类:
package com.ioc;
public class UserService {
private UserModel userModel;
public UserModel getUserModel() {
return userModel;
}
public void setUserModel(UserModel userModel) {
this.userModel = userModel;
}
public void findUser() {
System.out.println("-------------user name:" + userModel.getName());
}
// public UserService(UserModel userModel) {
// this.userModel = userModel;
// }
}
第一种配置方法:通过byName自动装配方式
byName自动装配方式是要求:xml中的userService中的必须有userModel这个属性名 , 如果userService中有userModel对象属性,则会自动注入装配bean
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
<bean id="userModel" class="com.ioc.UserModel">
<property name="id" value="terry123"/>
<property name="name" value="Terry"/>
<property name="sex" value="man"/>
</bean>
<bean id="userService" class="com.ioc.UserService" autowire="byName"/>
<!-- <bean id="userService" class="com.ioc.UserService" autowire="byType"/> -->
<!-- <bean id="userService" class="com.ioc.UserService" autowire="constructor"/> -->
</beans>
需要注意的是:如果在userServcie的方法中,有构造器,那么byName和byType则会失效报错。