项目是使用maven创建的,所以不懂maven的请先了解学习一下maven的基础知识,编程工具选择使用的是IDEA。
首先,当然是SSM所需要的jar包,如下:
4.3.18.RELEASE
1.7.7
1.2.17
junit
junit
3.8.1
test
org.springframework
spring-context
${spring-version}
org.springframework
spring-core
${spring-version}
org.springframework
spring-aop
${spring-version}
org.springframework
spring-beans
${spring-version}
org.springframework
spring-web
${spring-version}
org.springframework
spring-oxm
${spring-version}
org.springframework
spring-tx
${spring-version}
org.springframework
spring-jdbc
${spring-version}
org.springframework
spring-webmvc
${spring-version}
org.springframework
spring-context-support
${spring-version}
org.springframework
spring-test
${spring-version}
org.mybatis
mybatis
3.4.1
org.mybatis
mybatis-spring
1.3.1
javax
javaee-api
7.0
mysql
mysql-connector-java
5.1.38
commons-dbcp
commons-dbcp
1.2.2
log4j
log4j
${log4j.version}
com.alibaba
fastjson
1.1.41
org.slf4j
slf4j-api
${slf4j.version}
org.slf4j
slf4j-log4j12
${slf4j.version}
commons-fileupload
commons-fileupload
1.3.1
commons-io
commons-io
2.4
commons-codec
commons-codec
1.9
junit
junit
RELEASE
test
接着spring-mvc.xml 文件如下:
还有web.xml 文件如下:
Archetype Created Web Application
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
true
encoding
UTF-8
encodingFilter
/*
SpringMVC
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring/spring-mvc.xml
1
true
SpringMVC
/
/index.jsp
此处我的配置路径是:
先写一个Controller,测试web访问正确。
IndexController 代码如下:
package com.cn.demo.controller;
import org.apache.log4j.Logger;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
/**
* @Author: Orine
* @Date: 2018/10/25
*/
@RestController
public class IndexController {
private static final Logger LOGGER = Logger.getLogger(IndexController.class);
@GetMapping("/{string}")
public String index(@PathVariable("string") String s) {
LOGGER.info(s);
LOGGER.warn(s);
LOGGER.error(s);
return s;
}
}
由于我这里用到了日志,所以也将日志配置贴出:
log4j.rootLogger=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=%d{yyyy-MM-dd HH\:mm\:ss} [%c] %L %-5p : %m%n
log4j.appender.Console.Encoding=UTF-8
#文件大小到达指定尺寸的时候产生一个新的文件
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
此时我们启动tomcat,可以看到如下信息:
到此,我们的web可以正常访问。接下来配置MyBatis的东西了。
spring-mybatis.xml 代码如下:
数据库连接属性,jdbc.properties 文件如下:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test1
username=root
password=root
#定义初始连接数
initialSize=0
#定义最大连接数
maxActive=20
#定义最大空闲
maxIdle=20
#定义最小空闲
minIdle=1
#定义最长等待时间
maxWait=60000
本次Demo我是使用IDEA编写,所以也增加了一个Mybatis的生成插件:
在pom.xml文件中添加:
spring-mybatis
org.apache.maven.plugins
maven-compiler-plugin
3.7.0
1.8
UTF8
org.mybatis.generator
mybatis-generator-maven-plugin
1.3.5
src/main/resources/mybatis-generatorConfig/generatorConfig.xml
true
true
Generate MyBatis Artifacts
generate
org.mybatis.generator
mybatis-generator-core
1.3.5
其中上部分plugin是打包插件,后一部分是mybatis的代码生成插件。
还需要相应的插件配置文件,generatorConfig.xml 如下:
此文件需要一个 mysql-connector-java 的jar包路径,这里你可以选择一个包含此包的路径即可,放在: classPathEntry 里。
你需要创建相应的数据库和表:
这是便可以通过如下方式直接生成相应的代码:
红框中的既是通过插件生成的代码:
此时我们可以编写Service,如ArticleService 和 ArticleServiceImpl 代码如下:
package com.cn.demo.service;
import com.cn.demo.model.Article;
/**
* @Author: Orine
* @Date: 2018/10/25
*/
public interface ArticleService {
public int save(Article article);
public Article findOneById(Integer id);
}
package com.cn.demo.service.impl;
import com.cn.demo.dao.ArticleMapper;
import com.cn.demo.model.Article;
import com.cn.demo.service.ArticleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @Author: Orine
* @Date: 2018/10/25
*/
@Service
public class ArticleServiceImpl implements ArticleService {
@Autowired
private ArticleMapper articleMapper;
@Override
public int save(Article article) {
return articleMapper.insert(article);
}
@Override
public Article findOneById(Integer id) {
return articleMapper.selectByPrimaryKey(id);
}
}
测试代码:
import com.cn.demo.model.Article;
import com.cn.demo.service.ArticleService;
import org.apache.log4j.Logger;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.Date;
/**
* @Author: Orine
* @Date: 2018/10/25
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:spring/spring-mybatis.xml"})
public class Test1 {
private static final Logger LOGGER = Logger.getLogger(Test1.class);
@Autowired
private ArticleService articleService;
@Before
public void save() {
Article article = new Article();
article.setTitle("c");
article.setContent("ccc");
article.setCreateTime(new Date());
int i = articleService.save(article);
LOGGER.info(i);
}
@Test
public void findArticle() {
LOGGER.info(articleService.findOneById(1).toString());
}
}
如此,运行测试代码之后查看数据库发现数据库表中增加了数据的话那就完成,本次的精简ssm框架搭建就可以了。
还有本次Demo代码已放在了github上面,地址是:https://github.com/OrineK/spring-mybatis-demo
本人菜鸟,所有东西都在学习当中,如有各种建议想法欢迎交流。