最近再做一个项目,需要用到maven 和 SSM搭建项目,这里记录一下,搭建的全过程,也踩了好多坑,做个记录。
这里是项目的地址: https://pan.baidu.com/s/13C7pZPP_8qnMjtoaLDh4Bg
使用工具:Eclipse
使用框架:SSM + Maven
这里记录一下步骤:
一. 首先 创建一个 Maven 项目 jipao1-parent (pom)
jipao1-parent 下面再创建两个子工程 ,jipao1-manager(pom) 和 jipao1-common (jar)
创建过程不再描述了,应该可以自己搞定。
二。jipao1-manager 项目下面 创建了四个子工程
jipao1-manager-dao(jar)
jipao1-manager-pojo(jar)
jipao1-manager-service(jar)
jipao1-manager-web(war)
三。项目结构如下:
具体代码可以详见:https://pan.baidu.com/s/13C7pZPP_8qnMjtoaLDh4Bg
四。这里说一下 Controller, Service, Dao 三者之间的关系
4.1 jipao1-manager-web(war) 项目代表 Controller
pom文件如下:
4.0.0
cn-jipao1
jipao1-manager
0.0.1-SNAPSHOT
jipao1-manager-web
war
jstl
jstl
${jstl.version}
javax.servlet
servlet-api
${servlet-api.version}
provided
javax.servlet
jsp-api
${jsp-api.version}
provided
log4j
log4j
1.2.17
cn-jipao1
jipao1-manager-service
0.0.1-SNAPSHOT
这是 jipao1-manager-web 项目的pom文件 ,这里面引入了 Servlet 的一些依赖,也引入了 Service 的依赖
下面是 jipao1-manager-web 项目 web.xml 文件 ,
characterEncoding
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
characterEncoding
/*
org.springframework.web.context.ContextLoaderListener
contextConfigLocation
classpath*:applicationContext-*.xml
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springmvc.xml
springmvc
*.form
从上面可以看出,DispatcherServlet 拦截的是 *.form 结尾的请求,并且这里的
4.2 jipao1-manager-service 项目的pom文件,
4.0.0
cn-jipao1
jipao1-manager
0.0.1-SNAPSHOT
jipao1-manager-service
org.springframework
spring-context
${spring.version}
org.springframework
spring-beans
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-aspects
${spring.version}
org.springframework
spring-jms
${spring.version}
org.springframework
spring-context-support
${spring.version}
cn-jipao1
jipao1-manager-dao
0.0.1-SNAPSHOT
这里的service 引入了dao的依赖,
4.3下面是 jipao1-manager-dao 的pom文件:
4.0.0
cn-jipao1
jipao1-parent
0.0.1-SNAPSHOT
jipao1-manager
pom
jipao1-manager-dao
jipao1-manager-pojo
jipao1-manager-service
jipao1-manager-web
cn-jipao1
jipao1-common
0.0.1-SNAPSHOT
org.apache.tomcat.maven
tomcat7-maven-plugin
2.2
8085
/
这里的dao引入了entity的依赖、
有此可以看出,这几个子工程之间相互依赖,这样就会产生一个问题,controller 调用了 service的jar包,service又调用了 dao的jar包,但是dao中也会有.xml配置文件,这样就会产生一个问题,Spring 扫描不到dao项目中的配置文件,这样就会导致,我在启动项目的时候,一直说我加载不了dao中的接口,说我扫描不到,原来是 扫描不到dao工程中的配置文件,故而扫描不到dao中的接口,所以在 classpagth 后面加了一个 * 号,后来问题解决。
详细的代码可以直接将我的源码当下来,工程也在我的I:\J2EEWorkSpace\xinlegou\Resource\WorkSpace01 工作空间中。
其中我写了两个controller ,可以用这两个Controller 来做验证
第一个:DemoController
package cn.xljy.xlg.controller.token;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class DemoController {
@RequestMapping("/demo")
@ResponseBody
public String handleRequest() throws Exception{
System.out.println("进入DemoController");
// ModelAndView mav = new ModelAndView();
// mav.setViewName("demo");
// mav.getModel().put("msg", "你好啊");
System.out.println("退出DemoController");
return "Hello World";
}
}
这里可以直接访问: http://localhost:8085/demo.form
第二个Controller : LoginController
package cn.xljy.xlg.controller.token;
import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import cn.xljy.xlg.entity.User;
import cn.xljy.xlg.service.token.LoginService;
//@SuppressWarnings("unused")
@Controller
@RequestMapping("/login")
public class LoginController {
@Autowired
private LoginService loginService;
@RequestMapping("/doLogin")
@ResponseBody
public String doLogin(String jsCode){
String openId = "LoginController--openId";
System.out.println("获取到的jsCode:"+jsCode);
User user = loginService.getOpenId(jsCode);
return user.toString();
// return "KKKKK";
}
}
这里访问: http://localhost:8085/login/doLogin.form?jsCode=XXOO
这里的结果是:
这里记录一下,防止以后忘了。
不积跬步,无以至千里
不积小流,无以成江海