SSM(Spring+SpringMVC+Mybatis),不多介绍。
Maven 项目构建管理神器,JAR包管理。MAVEN的仓库配置链接
下图是完整的目录结构,看下图:
这里博主用到的IDE是IntelliJ IDEA,创建工程的过程略有不同,但是大同小异。
groupid和artifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。groupId一般分为多个段,这里我只说两段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。举个apache公司的tomcat项目例子:这个项目的groupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,artigactId是tomcat。
比如我创建一个项目,我一般会将groupId设置为cn.zxl,cn表示域为中国,zxl是我个人姓名缩写,artifactId设置为ssmProj,表示你这个项目的名称是ssmProj
选择Maven仓库
next——>finish创建成功
创建Maven工程成功后,这里就可以Debug运行一下了。Hello World!
在这里楼主将所有的配置文件放在了config文件夹中,Spring-config.xml和Springmvc和Mybatis-config.xml。
Mybatis的配置文件就是mybatis-config.xml,主要是配置typeAlias,将实体类匹配成XXXMapper.xml中可以直接使用的类型,相当于一个别名,在XXXMapper.xml中就无需再写完整的实体类全路径,直接用alias的值来代替。
Spring-config.xml 这个配置文件中,我们主要配置数据源,Spring的事务管理和Dao接口的扫描,以及对Mybatis的一些列相关配置文件的扫描。
在这里,为了后期便于维护,我将数据源文件单独拿出来放在了application.properties
application.properties
#mysql database
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/testfirst
jdbc.username=root
jdbc.password=123456
#定义初始连接数,连接池启动时创建的连接数量的初始值
jdbc.initialSize=0
#定义最大连接数,同一时间可以从池分配的最多连接数量,0时无限制
jdbc.maxActive=50
#定义最大空闲,当经过一个高峰期后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止,0时无限制
jdbc.maxIdle=20
#定义最小空闲,当空闲的连接数少于该值时,连接池就会预申请一些连接,以免洪峰来时来不及申请
jdbc.minIdle=0
#请求连接最大等待时间(毫秒),默认-1无期限,超出时间将抛出异常
jdbc.maxWait=-1
这个配置文件中我们主要启用Sping注解驱动,进行静态资源的配置,注解扫描配置和视图解析器配置。
我们在web.xml中加载Spring配置,并且将所有的请求都过滤给Spring MVC来处理,同时设置编码过滤器解决编码问题(最后一项可以不配置)。其中Spring MVC的请求过滤就是一个简单的Servlet配置。
maven-ssm
/WEB-INF/views/index.jsp
org.springframework.web.context.ContextLoaderListener
contextConfigLocation
classpath:config/spring-config.xml
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath*:config/springmvc-config.xml
1
springmvc
/
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
encodingFilter
/*
在这里SSM框架就基本完成了,要测试一下,看看是否搭建成功。
MySQL数据库
CREATE TABLE `user` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Name` varchar(255) DEFAULT NULL,
`Age` int(11) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
我在这里,逆向工程来生成实体类,Dao接口和对应的Mapper文件,具体方法我在下一篇博客会介绍。
UserMapper.java
package com.zxl.dao;
import com.zxl.entity.User;
import tk.mybatis.mapper.common.Mapper;
public interface UserMapper extends Mapper {
}
UserMapper.xml
User.java
package com.zxl.entity;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
public class User {
@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "Name")
private String name;
@Column(name = "Age")
private Integer age;
/**
* @return ID
*/
public Integer getId() {
return id;
}
/**
* @param id
*/
public void setId(Integer id) {
this.id = id;
}
/**
* @return Name
*/
public String getName() {
return name;
}
/**
* @param name
*/
public void setName(String name) {
this.name = name;
}
/**
* @return Age
*/
public Integer getAge() {
return age;
}
/**
* @param age
*/
public void setAge(Integer age) {
this.age = age;
}
}
IndexController.java
package com.zxl.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/")
public class IndexController {
@RequestMapping("/")
public String index() {
return "index";
}
}
目录结构如下
好啦,到此大功告成。访问 http://localhost:8080/
特别的
web.xml中我更改了index.jsp的位置
/WEB-INF/views/index.jsp
配置文件时,凡是涉及到路径的地方一定要加倍注意。