前言:
想必大家对smm框架已经熟悉的不能再熟悉了,它是由Spring、SpringMVC、MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架。我们在一般的项目都能用到它,自己搭建一个smm也挺方便的。下面我就给大家介绍一下如何搭建一个初级的ssm框架。
下面吧demo的下载贡献给大家,需要的可以去下载
https://download.csdn.net/download/dsn727455218/10524640
正文:
1.创建一个maven项目,这个这里我就不做介绍了,很简单的,拿eclipse举例,下载maven插件就行,已经maven本地仓库。
2.准备需要得jar包,maven仓库有可以直接引用的,没有的可以动态的下载。
3.mybatis配置文件
4.myBatis-config:自动扫描实体类
5.application-trans:事务管理
5.application:核心配置文件
6.spring-mvc:核心配置文件
application/json;charset=UTF-8
text/html;charset=UTF-8
text/plain;charset=UTF-8
text/xml;charset=UTF-8
UTF-8
5120000
4096
7.log4j:日志配置文件
# Rules reminder:
# DEBUG < INFO < WARN < ERROR < FATAL
# Global logging configuration
log4j.rootLogger=debug,stdout
# My logging configuration...
log4j.logger.cn.jbit.mybatisdemo=DEBUG
## Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p %d %C: %m%n
log4j.logger.org.apache.ibatis=DEBUG
## log4j.logger.org.apache.jdbc.SimpleDataSource=DEBUG
log4j.logger.org.apache.ibatis.jdbc.ScriptRunner=DEBUG
## log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapclientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
#base log config
log4j.rootLogger=INFO,CONSOLE,INFO_FILE,ERROR_FILE
log4j.addivity.org.apache=true
#console config
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[%d{HH\:mm\:ss ms}]-%5p (%F\:%L)\:%m%n
# information logs config
log4j.appender.INFO_FILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.INFO_FILE.File=..\\logs\\OSS-INFO.log
log4j.appender.INFO_FILE.Threshold=INFO
log4j.appender.INFO_FILE.Append=true
log4j.appender.INFO_FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.INFO_FILE.layout.ConversionPattern=[%d{HH\:mm\:ss ms}]-[%p]\:%m ->%l %n
# error logs config
log4j.appender.ERROR_FILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ERROR_FILE.File=..\\logs\\OSS-ERROR.log
log4j.appender.ERROR_FILE.Threshold=ERROR
log4j.appender.ERROR_FILE.Append=true
log4j.appender.ERROR_FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.ERROR_FILE.layout.ConversionPattern=[%d{HH\:mm\:ss ms}]-[%p]\:%m ->%l %n
# fail bill logs config
log4j.logger.FAIL_BILL=INFO, FAIL_BILL
log4j.appender.FAIL_BILL=org.apache.log4j.DailyRollingFileAppender
log4j.appender.FAIL_BILL.File=..\\logs\\FAIL_BILL.log
log4j.appender.FAIL_BILL.Threshold=FAIL_BILL
log4j.appender.FAIL_BILL.Append=true
log4j.appender.FAIL_BILL.layout=org.apache.log4j.PatternLayout
log4j.appender.FAIL_BILL.layout.ConversionPattern=[%d{HH\:mm\:ss ms}]\:%m %n
8.web:项目启动加载spring配置
MyDemo
index.jsp
contextConfigLocation
classpath:spring/application.xml
org.springframework.web.context.ContextLoaderListener
org.springframework.web.util.IntrospectorCleanupListener
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
forceEncoding
true
encodingFilter
/*
spring mvc servlet
mvcServlet
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring/spring-mvc.xml
1
mvcServlet
*.do
*.mdo
所需要的配置文件就这么多,当然你需要redis,quartz也可以加入配置。
下面我就来测试一下
在项目中我创建BaseMapper作为一个父类接口,只需要继承就可以调用其方法,是为了方便重复创建方法;BaseService也是同样的道理。
首先我们创建一个实体类User:
/**
* @author dsn
*
* @version 创建时间:2018年7月5日 上午11:30:00
*/
package com.demo.entity;
/**
* @author dsn
* @version 创建时间:2018年7月5日 上午11:30:00
*/
public class User {
/**
* @return the id
*/
public int getId() {
return id;
}
/**
* @param id
* the id to set
*/
public void setId(int id) {
this.id = id;
}
/**
* @return the username
*/
public String getUsername() {
return username;
}
/**
* @param username
* the username to set
*/
public void setUsername(String username) {
this.username = username;
}
/**
* @return the userpass
*/
public String getUserpass() {
return userpass;
}
/**
* @param userpass
* the userpass to set
*/
public void setUserpass(String userpass) {
this.userpass = userpass;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name
* the name to set
*/
public void setName(String name) {
this.name = name;
}
private int id;
private String username;
private String userpass;
private String name;
}
创建一个dao层接口:继承BaseMapper引入实体类User
/**
* @author dsn
*
* @version 创建时间:2018年7月5日 上午11:35:10
*/
package com.demo.dao;
import com.demo.entity.User;
/**
* @author dsn
* @version 创建时间:2018年7月5日 上午11:35:10
*/
public interface UserMapper extends BaseMapper {
}
创建一个service接口:继承BaseService引入实体类User
/**
* @author dsn
*
* @version 创建时间:2018年7月5日 上午11:35:36
*/
package com.demo.service;
import com.demo.entity.User;
/**
* @author dsn
* @version 创建时间:2018年7月5日 上午11:35:36
*/
public interface UserService extends BaseService {
}
创建一个Mapper文件:UserMapper.xml,这里我写一个insert的语句以及一个select语句,需要注意的是column需要与实体类User字段对应以及对应的type
insert into user(name,username,userpass)
values(#{name},#{username},#{userpass})
接下来我们创建一个UserAction:这是作为controller控制器,处理所有的访问请求以及逻辑
/**
* @author dsn
*
* @version 创建时间:2018年7月5日 上午11:47:26
*/
package com.demo.controller;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.demo.entity.User;
import com.demo.service.UserService;
/**
* @author dsn
* @version 创建时间:2018年7月5日 上午11:47:26
*/
@Controller
@RequestMapping("user")
public class UserAction {
@Resource
private UserService userService;
@ResponseBody
@RequestMapping(value = "/adduser")
public String addactivity(User user, String msg) throws Exception {
int insert = userService.insert(user);
if (insert == 1) {
msg = "插入成功";
} else {
msg = "插入失败";
}
return msg;
}
}
启动项目,用postman测试一下,完美收官。
下面吧demo的下载贡献给大家,需要的可以去下载
https://download.csdn.net/download/dsn727455218/10524640
如有需要可以加我Q群【308742428】大家一起讨论技术。
后面会不定时为大家更新文章,敬请期待。