本文共 3538 字,大约阅读时间需要 11 分钟。
一个完整庞大的工程,是可以分为很多个小的模块的,而这些模块单独的使用是不行的,这个时候可以使用Maven来将各个小的模块
例如:电商项目中,包括商品模块、订单模块、用户模块等。就可以对不同的模块单独创建工程,最终在打包时,将不同的模块聚合到一起。聚合
起来成为一个完整的项目跑起来。
1.创建Maven工程
pom.xml
为: 4.0.0 com.taobao Platform 1.0 pom taobao-model
2.创建模块
pom.xml
为: 4.0.0 com.taobao Platform 1.0 taobao-model
这里演示了创建model模块,我们在下面的讲解里面还需要创建dao(jar)
,service(jar)
,merchant(war)(卖家)
,buyer(war)(买家)
模块,方式一样这里不介绍。
package model;public class User { private String username; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; }}
接下来创建IUserDao接口:
package dao;public interface IUserDao { public void save(User user); public User findUserById(int id);}
当然这样会报错,我们需要在taobao-dao/pom.xml
里面配置:
UserDaoImpl
: package Impl;import dao.IUserDao;import model.User;public class UserDaoImpl implements IUserDao{ public void save(User user) { // TODO 自动生成的方法存根 System.out.println("Dao保存用户"); } public User findUserById(int id) { // TODO 自动生成的方法存根 System.out.println("Dao根据ID查用户"+id); return null; }}
创建IUserService
:
package service;import model.User;public interface IUserService { public void save(User user); public User findUserById(int id);}
这里需要想IUserDao
那样配置一下可以解决找不到User
的问题。
UserServiceImpl:
package Impl;import dao.IUserDao;import model.User;import service.IUserService;public class UserServiceImpl implements IUserService{ private IUserDao dao = new UserDaoImpl(); public void save(User user) { // TODO 自动生成的方法存根 dao.save(user); } public User findUserById(int id) { // TODO 自动生成的方法存根 return dao.findUserById(id); }}
在buyer
与merchant
(温馨提示:这两个war工程创建后需要在webapp下面添加web-inf目录,具体做法在前面文章讲过
)的pom.xml
里面配置:
接下来我们com.taobao taobao-service 1.0
子工程
需要一些jar包,可以直接在父工程Platform
里面的pom.xml里面来配置: junit junit 4.10 javax.servlet javax.servlet-api 3.1.0
我们可以继续在merchant
与buyer
里面创建Controller
,这里我介绍其中一个:
package Controller;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import Impl.UserServiceImpl;import model.User;import service.IUserService;@WebServlet("/controller")public class UserController extends HttpServlet{ private IUserService service = new UserServiceImpl(); @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{ service.save(new User()); resp.sendRedirect("welcome.html"); }}
然后我们需要先install一下Platform。
接下来可以参考我前面讲解的tomcat配置的文章来开启tomcat。 我的配置如下:org.apache.tomcat.maven tomcat7-maven-plugin 2.2 / 8888
如果访问时报cannot be cast to javax.servlet.Servlet
可参考
localhost:8888/controller
最后说一下打包的问题:我们直接打包Platform是没有问题的,但是比方我们想要打包buyer这需要按照dao-service-buyer的顺序来打包,这是有依赖的顺序来决定的,实际上Platform打包就是按照的这个顺序
转载地址:http://oalzi.baihongyu.com/