package com.lrb.demo2;
//自动注入
public class UserController {
private UserDao userDao;
public void setUserDao(UserDao userDao){
this.userDao = userDao;
}
public void fun(){
userDao.show();
}
}
package com.lrb.demo2;
//自动注入
public interface UserDao {
public void show();
}
package com.lrb.demo2;
//自动注入
public class UserDao1 implements UserDao {
public void show() {
System.out.println("UserDaoZdzr1-------------------show方法");
}
}
package com.lrb.test;
import com.lrb.demo2.UserController;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
//测试自动注入
public class Test2 {
public static void main(String[] args) {
ApplicationContext app = new ClassPathXmlApplicationContext("demo2.xml");
UserController userController = (UserController) app.getBean("userControllerZdzr");
userController.fun();
}
}
<?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.xsd">
<bean id="userControllerZdzr" class="com.lrb.demo2.UserController" autowire="byName" >
</bean>
<bean id="userDao1" class="com.lrb.demo2.UserDao1"></bean>
<!--autowire:自动注入属性值
其中方法有:
no:不设置自动注入 默认值
byName:按照属性名称自动注入属性值
byType:按照属性的类型自动注入
-->
<!--byName方法 此处的id必须和所写UserController中所设的名字一致-->
<bean id="userDao" class="com.lrb.demo2.UserDao2"></bean>
</beans>