用传统方式(以前的知识)来模拟实际开发的调用过程。

源码获取github

1.项目结构

2.jar包

<dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.11</version>
    <scope>test</scope>
  </dependency>
</dependencies>

3.dao层

UserDao.java

package com.hs.dao;

public interface UserDao {
   void add();
}

UserDaoImpl.java

package com.hs.dao.impl;

import com.hs.dao.UserDao;

public class UserDaoImpl implements UserDao {

   @Override
   public void add() {
      System.out.println("UserDao层的实现类--->ADD");
   }
}

4.Service层

UserService.java

package com.hs.service;

public interface UserService {

   void add();
}

UserServiceImpl.java

package com.hs.service.impl;

import com.hs.dao.UserDao;
import com.hs.dao.impl.UserDaoImpl;
import com.hs.service.UserService;

public class UserServiceImpl implements UserService {
   //建立联系(一共有三种方式)
   private UserDao userDao = new UserDaoImpl();

   @Override
   public void add() {
      System.out.println("UserService层的实现类--->ADD");
      this.userDao.add();
   }
}

5.Controller层

UserController.java

package com.hs.web;

import com.hs.service.UserService;
import com.hs.service.impl.UserServiceImpl;

public class UserController {
    //建立联系
   private UserService userService = new UserServiceImpl();

   public void add() {
      System.out.println("UserController层--->ADD");
      this.userService.add();
   }

}

6.测试

package com.hs.test;

import com.hs.web.UserController;
import org.junit.Test;

public class MethodTest {
   /** * 测试传统调用过程 */
   @Test
   public void test01() {
      UserController userController = new UserController();
      userController.add();
   }

}

控制台输出:

UserController层—>ADD
UserService层的实现类—>ADD
UserDao层的实现类—>ADD

程序就是一层一层调用,先调用Controller层—>Service层—>Dao层