一,环境准备
* IDEA开发工具
* JDK
* Tomcat
* Maven
二,环境配置
* JDK和Maven配置HOME环境变量并引入Path路径,分别用java -version和mvn -v验证
* Maven配置工厂路径和镜像路径(从阿里云服务器下载,速度较快)
-- 路径配置 ${MAVEN_HOME}\config\setting.xml
E:/develop/apache-maven-3.5.3-bin/.m2/repository
-- 镜像路径
nexus-aliyun
central
Nexus aliyun
http://maven.aliyun.com/nexus/content/groups/public
三,搭建流程
1,创建maven项目
* 指定JDK,注意不要选择圆框中的webapp
* 自定义名称
* 指定本地maven
* 注意修改setting文件和maven工厂路径
* 修改maven引入方式为自动引入
2,添加项目到Tomcat
* 添加一个本地Tomcat,Tomcat Server不存在点最下面的more
* 配置Tomcat名称,路径,jre路径和端口,默认浏览器
* 添加项目,Artifact不存在,install一次maven项目,添加exploded后缀,可以热部署
* 后面名称建议和项目名称保持一致
3,启动Tomcat
* 直接点击上方启动按钮
* 启动成功,会自动弹出指定浏览器显示结果
* 踩坑日记
-- 注意 : Tomcat整合maven和maven自身路径的jdk,jre路径保持一致,不然会出现莫名错误
-- 注意 : 报1099,8085等端口冲突,正常情况下不是端口的问题,可以先试着install
-- 注意 : 如果自认为一切都没问题了,还不能弹出的话,可以查看下maven和Tomcat的版本问题
4,搭建SSM框架
* pom.xml
4.0.0
myProject
com.gupao.myProject
1.0-SNAPSHOT
war
com.gupao.myProject Maven Webapp
http://www.example.com
UTF-8
1.7
1.7
UTF-8
4.1.4.RELEASE
3.2.8
1.7.7
1.2.17
2.5.0
junit
junit
3.8.1
test
org.mybatis
mybatis
${mybatis.version}
org.mybatis
mybatis-spring
1.2.2
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-core
${spring.version}
org.springframework
spring-beans
${spring.version}
org.springframework
spring-context
${spring.version}
org.springframework
spring-context-support
${spring.version}
org.springframework
spring-tx
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-jdbc
${spring.version}
javax.servlet
javax.servlet-api
3.0.1
provided
javax.servlet.jsp
jsp-api
2.2
provided
mysql
mysql-connector-java
5.1.30
commons-dbcp
commons-dbcp
1.2.2
jstl
jstl
1.2
log4j
log4j
${log4j.version}
com.alibaba
fastjson
1.1.41
org.slf4j
slf4j-api
${slf4j.version}
org.slf4j
slf4j-log4j12
${slf4j.version}
org.codehaus.jackson
jackson-mapper-asl
1.9.13
com.fasterxml.jackson.core
jackson-databind
2.1.0
com.fasterxml.jackson.core
jackson-annotations
2.1.0
commons-fileupload
commons-fileupload
1.3.1
commons-io
commons-io
2.4
commons-codec
commons-codec
1.9
junit
junit
4.11
test
org.springframework
spring-test
4.1.7.RELEASE
junit
junit
RELEASE
org.jsoup
jsoup
1.8.1
net.sourceforge.htmlunit
htmlunit
2.15
org.seleniumhq.selenium
selenium-java
2.33.0
us.codecraft
webmagic-core
0.6.1
us.codecraft
webmagic-extension
0.6.1
com.gupao.myProject
maven-clean-plugin
3.0.0
maven-resources-plugin
3.0.2
maven-compiler-plugin
3.7.0
maven-surefire-plugin
2.20.1
maven-war-plugin
3.2.0
maven-install-plugin
2.5.2
maven-deploy-plugin
2.8.2
src/main/java
**/*.properties
**/*.xml
true
* web.xml文件
MyProject
contextConfigLocation
classpath:spring/applicationContext-*.xml
log4jRefreshInterval
60000
org.springframework.web.util.Log4jConfigListener
CharacterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
CharacterEncodingFilter
/*
org.springframework.web.context.ContextLoaderListener
org.springframework.web.util.IntrospectorCleanupListener
myProject
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springmvc/spring-mvc.xml
1
myProject
/
15
* springmvc前端控制器指定的springmvc.xml
* spring核心配置指定的applicationContext-dao.xml
* applicationContext-dao.xml引入的配置文件db.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=123456
#定义初始连接数
initialSize=0
#定义最大连接数
maxActive=20
#定义最大空闲
maxIdle=20
#定义最小空闲
minIdle=1
#定义最长等待时间
maxWait=60000
* applicationContext-dao.xml指定的mybatis配置文件SqlMapConfig.xml
* 日志文件log4j.properties
#定义LOG输出级别
log4j.rootLogger=DEBUG,INFO,Console,File
#定义日志输出目的地为控制台
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
#可以灵活地指定日志输出格式,下面一行是指定具体的格式
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n
#文件大小到达指定尺寸的时候产生一个新的文件
log4j.appender.File = org.apache.log4j.RollingFileAppender
#指定输出目录
log4j.appender.File.File = logs/ssm.log
#定义文件最大大小
log4j.appender.File.MaxFileSize = 10MB
# 输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志
log4j.appender.File.Threshold = ALL
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n
* 项目结构展示 -- java
* 项目结构展示 -- resource
5,Java代码
* controller
@Controller
@RequestMapping("/myProjectController")
public class MyProjectController {
@Autowired
private IMyProjectService myProjectService;
@RequestMapping(value = "/getAllUser", method = RequestMethod.GET)
@ResponseBody
public List
* service -- 接口
public interface IMyProjectService {
public List
* service -- 实现类
@Service
public class MyProjectServiceImpl implements IMyProjectService{
@Autowired
private IMyProjectDao myProjectDao;
@Override
public List
* dao -- 接口
@Repository
public interface IMyProjectDao {
public List
* dao -- mapper
6,踩坑日记
* No mapping found for HTTP request with URI [*********] in DispatcherServlet with name 'dispatch
spring-mvc.xml配置 :
* 自动扫描包路径 :
* class path resource [spring/] cannot be resolved to URL because it does not exist 这个报错比较坑了
完全找不到原因,在target目录中,也确实找不到resource下自定义目录的文件
解决:在pom.xml中添加配置
src/main/java
**/*.properties
**/*.xml
true
* 最后,因为没有做页面,想通过GET方式直接返回查询结果到页面,走通一套流程。结果一直报404,但是看
控制台确实SQL已经打印出来了,这是因为controller中没有添加@ResponseBody转换为json转回,页面不
响应List
7,结果展示