1.包结构如下
2.UserDao
package com.rongda.dao;
public interface UserDao {
void getUser();
}
3.UserDaoimpl
package com.rongda.imply;
import com.rongda.dao.UserDao;
public class UserDaoimpl implements UserDao {
public void getUser(){
System.out.println("获取用户信息");
}
}
4.UserService
package com.rongda.service;
public interface UserService {
void getUser();
}
5.UserServiceimpl
package com.rongda.imply;
import com.rongda.dao.UserDao;
import com.rongda.service.UserService;
public class UserServiceimpl implements UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) {//利用set实现动态值的注入代替了 UserDao userDao = new UserDaoimpl/Mysql()
this.userDao = userDao;
}
@Override
public void getUser() {
userDao.getUser();
}
}
6.UserDaosqlimpl
package com.rongda.imply;
import com.rongda.dao.UserDao;
import com.rongda.service.UserService;
public class UserDaoMysqlimpl implements UserDao {
@Override
public void getUser() {
System.out.println("获取数据库数据");
}
}
7.Mtest 写完此类 运行它
import com.rongda.imply.UserDaoMysqlimpl;
import com.rongda.service.UserService;
import com.rongda.imply.UserServiceimpl;
public class Mtest {
public static void main(String[] args) {
UserService userService=new UserServiceimpl();
((UserServiceimpl)userService).setUserDao(new UserDaoMysqlimpl());//用这种方式可以更方便获值,不用再根据需求反复修改
userService.getUser();
}
}
输出
在pom中注入依赖 若不匹配,调整版本号。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.4.RELEASE</version>
</dependency>