1。编写接口
package com.yyf.dao;
public interface UserDao {
void getUser();
}
2.编写多个实现类
package com.yyf.dao;
public class UserDaoImpl implements UserDao{
@Override
public void getUser() {
System.out.println ("UserDao获取数据");
}
}
package com.yyf.dao;
public class UserDaoMysqlImpl implements UserDao{
@Override
public void getUser() {
System.out.println ("Mysql获取数据");
}
}
package com.yyf.dao;
public class UserDaoOracleImpl implements UserDao{
@Override
public void getUser() {
System.out.println ("oracle获取数据");
}
}
3.利用set方法进行动态实现值的注入,这是ioc的重点体现
package com.yyf.service;
import com.yyf.dao.UserDao;
import com.yyf.dao.UserDaoImpl;
public class UserServiceImpl implements UserService{
private UserDao userDao;
//利用 set进行动态实现值的注入 IOC的重点体现
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
@Override
public void getUser() {
userDao.getUser ();
}
}
4.在spring配置文件中,对UserServiceImpl实现类的userdao变量进行引用
5.测试 通过改变配置文件的ref 的引用,来实现不同的注入
import com.yyf.dao.UserDaoMysqlImpl;
import com.yyf.service.UserService;
import com.yyf.service.UserServiceImpl;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MyTest {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext ("beans.xml");
UserServiceImpl serviceImpl = (UserServiceImpl) context.getBean ("serviceImpl");
serviceImpl.getUser ();
}
}



