这篇文章的ssm架构事务是xml形式的,其实都是差不多,其实公司用注解事务更多一些,因为容易控制。
代码我也是放在git上面了。
如果你不想看文章,可以直接下载源码浏览,
1、https://gitee.com/redpigstu/ssm_demo_xml
2、https://gitee.com/imjcoder/ssm_demo_interface
1、在eclipse中新建maven项目
新建完你的项目如图:
这时候java、test都没有,需要简单配置下,右击项目选择最后一个属性:
做一些配置
之后你的项目会如下图:
2、下面开始配置把相关的pom里面的依赖加进来
4.0.0
ssm_demo
ssm_demo
war
0.0.1-SNAPSHOT
ssm_demo Maven Webapp
http://maven.apache.org
junit
junit
3.8.1
test
org.springframework
spring-test
4.3.3.RELEASE
org.springframework
spring-core
4.3.3.RELEASE
org.springframework
spring-context
4.3.3.RELEASE
org.springframework
spring-context-support
4.3.3.RELEASE
jar
compile
org.springframework
spring-beans
4.3.3.RELEASE
org.springframework
spring-expression
4.3.3.RELEASE
org.springframework
spring-aop
4.3.3.RELEASE
org.springframework
spring-aspects
4.3.3.RELEASE
org.aspectj
aspectjrt
1.8.5
org.aspectj
aspectjweaver
1.8.5
org.springframework
spring-web
4.3.3.RELEASE
org.springframework
spring-webmvc
4.3.3.RELEASE
org.springframework
spring-websocket
4.3.3.RELEASE
org.springframework
spring-webmvc-portlet
4.3.3.RELEASE
org.codehaus.jackson
jackson-core-lgpl
1.9.6
org.codehaus.jackson
jackson-core-asl
1.9.4
org.codehaus.jackson
jackson-mapper-asl
1.9.5
org.codehaus.jackson
jackson-mapper-lgpl
1.9.6
org.springframework
spring-jdbc
4.3.3.RELEASE
org.springframework
spring-tx
4.3.3.RELEASE
org.springframework
spring-orm
4.3.3.RELEASE
org.springframework
spring-jms
4.3.3.RELEASE
org.codehaus.jackson
jackson-mapper-asl
1.9.13
org.mybatis
mybatis
3.4.1
org.mybatis
mybatis-spring
1.3.0
mysql
mysql-connector-java
5.1.21
c3p0
c3p0
0.9.1.2
jar
org.slf4j
slf4j-api
1.7.22
org.slf4j
slf4j-log4j12
1.7.22
log4j
log4j
1.2.17
jstl
jstl
1.2
javax.servlet
servlet-api
2.5
provided
javax.servlet
jsp-api
2.0
provided
ssm_demo
src/main/resources
**/*.properties
**/*.xml
**/*.tld
false
src/main/java
**/*.properties
**/*.xml
**/*.tld
false
org.apache.maven.plugins
maven-compiler-plugin
3.1
1.8
UTF-8
true
true
true
org.apache.maven.plugins
maven-surefire-plugin
2.4.3
true
3、开始配置mybatis
在src/main/resources下面新建文件夹mybatis,以及mybatis的xml配置文件:mybatis-config.xml
4、配置spring相关
在src/main/resources下面新建文件夹spring
①、新建文件名:applicationContext.xml
②、新建文件名
applicationContext-mybatis.xml
③、新建文件名:applicationContext-transaction.xml
5、下面开始配置springmvc相关的
在src/main/resources/ spring文件夹下新建:SpringMVC.xml
6、配置日志
##root logger , local level: debug, output: stdout ##
## root logger: better performance than others ##
log4j.rootLogger=info,stdout
log4j.appender.F=org.apache.log4j.DailyRollingFileAppender
log4j.appender.F.DatePattern='.'yyyy-MM-dd
log4j.appender.F.File=logs/ssm_demo.log
log4j.appender.F.layout=org.apache.log4j.PatternLayout
log4j.appender.F.layout.ConversionPattern=[%d{ISO8601}|%t|%-5p|%C] - %m%n
log4j.appender.F.encoding=UTF-8
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d{HH:mm:ss}|%-5p|%c] - %m%n
#show application DEBUG log
log4j.logger.com.asecs = DEBUG,F
#show ibatis DEBUG log
log4j.logger.com.ibatis = DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource = DEBUG
log4j.logger.com.ibatis.common.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
log4j.logger.java.sql.ResultSet = DEBUG
7、配置web.xml
my
contextConfigLocation
classpath:spring/applicationContext*.xml
org.springframework.web.util.IntrospectorCleanupListener
org.springframework.web.context.ContextLoaderListener
SpringMVC
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring/SpringMVC.xml
1
SpringMVC
*.action
字符集过滤器
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
字符集编码
encoding
UTF-8
encodingFilter
/*
60
index.jsp
8、新建表t_user
CREATE TABLE `t_user` (
`username` varchar(255) NOT NULL,
`password` varchar(255) DEFAULT NULL,
PRIMARY KEY (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
9、新建实体类User
package com.entity;
public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
10、新建mybatis mapper配置文件UserMapper.xml
username, password
11、创建service接口
package com.service;
import org.springframework.stereotype.Service;
import com.entity.User;
@Service
public interface UserService {
boolean doUserLogin(User user);
}
12、创建service实现类
package com.service;
import java.util.List;
import javax.annotation.Resource;
import javax.annotation.Resources;
import org.springframework.stereotype.Service;
import com.dao.UserDao;
import com.entity.User;
@Service
public class UserServiceImpl implements UserService {
@Resource
private UserDao userDao;
public boolean doUserLogin(User user) {
List list = userDao.selectId(user.getUsername());
if(list.size() == 0){
return false;
}else{
if(list.get(0).getPassword().equals(user.getPassword())){
return true;
}else{
return false;
}
}
}
}
13、创建UserDao接口
package com.dao;
import java.util.List;
import org.springframework.stereotype.Repository;
import com.entity.User;
@Repository
public interface UserDao{
List selectId(String username);
}
14、创建controller
package com.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import com.entity.User;
import com.service.UserService;
@Controller
@RequestMapping("/test")
/*@ResponseBody */
public class LoginController {
@Autowired
private UserService userService; //基于接口的,用接口接收
@RequestMapping("/login.action") //url
public String dologin(User user, Model model){
if(userService.doUserLogin(user)){
System.out.println(user);
model.addAttribute("successMsg", "登陆成功!");//返回到页面所夹带的参数
model.addAttribute("name", user.getUsername());
return "/success";//返回的页面
}else{
model.addAttribute("failMsg", "用户不存在或密码错误!");
return "/fail";
}
}
}
至此配置完成,还有前端页面代码没有贴出来,大家需要的话到这里下载:https://gitee.com/redpigstu/ssm_demo_xml