一、ssm框架所需要的jar包
我这里用得是jdk1.8,改1,7的自己改一下
4.0.0
com.own
niub
war
0.0.1-SNAPSHOT
niub Maven Webapp
http://maven.apache.org
UTF-8
5.1.5.RELEASE
2.9.8
junit
junit
3.8.1
test
org.springframework
spring-core
${spring.version}
org.springframework
spring-context
${spring.version}
org.springframework
spring-beans
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-tx
${spring.version}
org.springframework
spring-aop
${spring.version}
org.springframework
spring-webmvc
${spring.version}
javax
javaee-api
7.0
javax.servlet
javax.servlet-api
3.1.0
provided
org.slf4j
slf4j-api
1.7.25
ch.qos.logback
logback-classic
1.2.3
test
org.mybatis
mybatis
3.4.6
org.mybatis
mybatis-spring
1.3.2
mysql
mysql-connector-java
5.1.6
com.alibaba
druid
1.1.10
javax.servlet
jstl
1.2
com.fasterxml.jackson.core
jackson-databind
${jackson.version}
com.fasterxml.jackson.core
jackson-core
${jackson.version}
com.fasterxml.jackson.core
jackson-annotations
${jackson.version}
niub
org.apache.maven.plugins
maven-compiler-plugin
utf-8
1.8
1.8
二、web.xml配置
这里需要注意以下这个命名空间和这个dtd格式这里,我用得3.1,因为我用得tomcat8.5,用其他版本的自己改2.3或3.0,同时我这边springmvc部分的名称为springmvc-servlet.xml,取其他名字自己更改一下,applicationContext.xml名字没变,贴一下路径
niub
index.jsp
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springmvc-servlet.xml
1
springmvc
/
org.springframework.web.context.ContextLoaderListener
contextConfigLocation
classpath:applicationContext.xml
characterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
characterEncodingFilter
/*
三、applicationContext.xml配置
注意自动扫描部分的通配路径
com.ssm..service
properties/jdbc.properties
spring-mybatis.xml
mapper/**/.xml
com.ssm.*.dao
SELECT 1
四、springmvc-servlet.xml
注意通配符
博主搭这个框架也是看了很多人的框架搭建的,不要只是照抄,每个部分都有独特的意义,之所以贴代码,是可以自己备份一下,同时建议多理解,最好自己能够说出每个部分的原因,代码少不了,少了就出问题了。
五、spring-mybatis.xml
这个部分没啥好写的,别处抄的,这里可以写那个分页的配置,pageHelper或者其他分页功能的配置,我也在想着怎么把applicationContext里面的数据库配置挪过来,感觉应该分离出来更好点,更加符合逻辑点。
六、jdbc.properties
jdbc.user=root
jdbc.password=woshimima
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/niub?useUnicode=true&characterEncoding=UTF-8
七、两个日志文件,log4j.properties和logback.xml,之所以有两个,因为后面那个logback更加强大,但是spring中默认是log4j的日志,随便用吧,我这里抄别人的,大家可以仔细看看吧
### 设置###
log4j.rootLogger = debug,stdout,D,E
### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
### 输出DEBUG 级别以上的日志文件设置 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = vincent_player_debug.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### 输出ERROR 级别以上的日志文件设置 ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = vincent_player_error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
logback
DEBUG
%d [%thread] %-5level %logger{36} [%file : %line] - %msg%n
${scheduler.manager.server.home}/logs/${app.name}.log
${scheduler.manager.server.home}/logs/${app.name}.%d{yyyy-MM-dd.HH}.log.gz
60
20GB
100MB
%d [%thread] %-5level %logger{36} [%file : %line] - %msg%n
八、三个jsp文件
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
NIUB
Natrual Image , Unique
Beauty
自然的想象力,独一无二的美丽
相信自己,加油!
success.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page isELIgnored="false"%>
Insert title here
username
password
success.jsp
error.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
error.jsp
九、bean,ctrl,dao,service,impl部分的代码
bean部分,用entity也行,自己随意就行
package com.ssm.user.bean;
public class User {
private Integer id;
private String userName;
private String password;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
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;
}
}
ctrl部分
这里为什么只用写success就行了,可以到那个springmvc-servlet中查看
这里定义了前缀和后缀,所以不需要写其他的,直接写个success就好,同时注意注解的部分
package com.ssm.user.ctrl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.ssm.user.bean.User;
import com.ssm.user.service.UserService;
@Controller
@RequestMapping("/user")
public class UserCtrl {
@Autowired
private UserService userService;
@RequestMapping("/login")
public ModelAndView login(User user){
ModelAndView mv = new ModelAndView();
User obj = this.userService.getPwdByUserName(user);
if(obj != null && obj.getPassword() != null && obj.getPassword().equals(user.getPassword())){
mv.addObject("obj", obj) ;
mv.setViewName("success");
}else{
mv.setViewName("error");
}
return mv;
}
}
service部分
package com.ssm.user.service;
import com.ssm.user.bean.User;
public interface UserService {
User getPwdByUserName(User user);
}
impl部分,同样要注意注解@Service,@Transactional,@Resource,需要了解这几个注解的意义。
package com.ssm.user.service.impl;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.ssm.user.bean.User;
import com.ssm.user.dao.UserMapper;
import com.ssm.user.service.UserService;
@Service("userService")
@Transactional
public class UserServiceImpl implements UserService{
@Resource
private UserMapper userMapper;
public User getPwdByUserName(User user) {
// TODO Auto-generated method stub
User obj = this.userMapper.getPwdByUserName(user);
return obj;
}
}
dao部分
package com.ssm.user.dao;
import com.ssm.user.bean.User;
public interface UserMapper {
User getPwdByUserName(User user);
}
十、Mapper.xml部分代码,注意这个namespace和dao同名,不然无法识别
十一、数据库部分建语句
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`userName` varchar(40) NOT NULL,
`password` varchar(40) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
至此就结束了,大家可以跑一下代码,对于新手来说应该很齐全了,我会把文件放我资源里面,免费,大家下吧