在Javaweb项目开发中为了便于后期的维护,咱们通常会进行分层开发,常见的就是分为model(域模型层)、dao(数据库访问层)、service(业务逻辑层)、controller(控制器层)、web(表现层),这样分层以后,各个层之间的职责会比较明确,后期维护起来也相对比较容易。java
前面咱们开发都是在一个模块中,把不一样的层以包来区分,以下:web
一、建立SpringBoot项目spring
结构为:数据库
代码分别是:springboot
public class User {app
private String username;maven
private String password;测试
private String realname;ui
...省略get\set 构造方法xml
}
@Repository
public class UserDAO {
public List<User> selectAllUsers(){
return Arrays.asList(new User("zhangsan","111","张三"),
new User("lisi","111","李四"),
new User("wangwu","111","王五"));
}
}
@Service
public class UserService {
@Resource
private UserDAO userDAO;
public List<User> findAllUsers(){
return userDAO.selectAllUsers();
}
}
@Controller
@RequestMapping("/user")
public class UserController {
@Resource
private UserService userService;
@RequestMapping("/list")
@ResponseBody
public String list(){
List<User> allUsers = userService.findAllUsers();
StringBuilder stringBuilder = new StringBuilder();
for(User user :allUsers){
stringBuilder.append("<p>姓名:");
stringBuilder.append(user.getRealname());
stringBuilder.append("</p>");
}
return stringBuilder.toString();
}
}
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
启动项目,测试
多模块开发:
随着项目愈来愈复杂,每一个层的规模也逐渐增大,在一个模块中进行开发,会给测试和维护带来不便,对于大型项目来讲,通常会将每一个层放到本身的模块中,而后每一个层创建联系,单独维护。
下面咱们将会把前面的单模块项目重构为多模块项目:
项目分为4个模块
controller
service
dao
model
模块间依赖关系是
controller依赖service和model
service依赖dao和model
dao依赖model
重构多模块项目
一、首先选择项目的pom.xml,将打包方式改成pom
<packaging>pom</packaging>
二、新建model模块:
项目右键——>New——>Module——>选择maven ——> Next
输入模块名称model ——> Next ——> Finish
项目的pom.xml中会出现:
<modules>
<module>model</module>
</modules>
这就是模块建立完成了
而后将原来项目中model的包整个复制到model模块的java目录下:
三、新建dao模块,过程和前面相似
新建完成后,代码会报错,由于找不到User类,缘由是dao模块尚未添加model模块的依赖
添加依赖,在dao模块的pom.xml中添加
<dependencies>
<dependency>
<groupId>com.qianfeng.springboot</groupId>
<version>0.0.1-SNAPSHOT</version>
<artifactId>model</artifactId>
</dependency>
</dependencies>
四、再添加service模块
添加依赖:
<dependencies>
<dependency>
<groupId>com.qianfeng.springboot</groupId>
<artifactId>dao</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.qianfeng.springboot</groupId>
<artifactId>model</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
五、添加controller模块
添加依赖:
<dependencies>
<dependency>
<groupId>com.qianfeng.springboot</groupId>
<artifactId>service</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.qianfeng.springboot</groupId>
<artifactId>model</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
而后把原来项目的DemoApplication类复制到controller模块java目录下的基础包下,本例是com.qianfeng.springboot
六、点击Build Project 编译项目,而后启动程序进行测试,若是能成功启动还能看到原来的执行效果,那么项目多模块的重构就完成了。