Maven+SSM项目搭建

最近再做一个项目,需要用到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)

三。项目结构如下:

Maven+SSM项目搭建_第1张图片

 

 

Maven+SSM项目搭建_第2张图片

 

具体代码可以详见: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 结尾的请求,并且这里的

classpath*:applicationContext-*.xml 注意到没有 classpath 后面有一个 * 号,这里先埋一个伏笔,这里解决了一个bug

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 

得到结果为:Maven+SSM项目搭建_第3张图片

 

第二个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

这里的结果是:

这里记录一下,防止以后忘了。

 

不积跬步,无以至千里

不积小流,无以成江海

你可能感兴趣的:(java学习)