使用Maven搭建Springboot版ssm框架
开发环境
IDE:Idea-2017.1.4
Maven:3.0.4
Spring-Boot:1.5.3.RELEASE
mysql:5.5.49
开发步骤:
一、搭建Maven版本SpringBoot工程
1 .搭建普通Maven工程
2 .导入SpringBoot依赖
3 .书写SpringBoot运行主类
4 .配置application.properties文件
5 .测试SpringBoot是否搭建成功
二、搭建SSM工程
1 .建立UserBean类
2 .建立mapper.xml文件
3 .建立mapper,service,controller类
4 .配置application.properties文件
5 .启动工程测试
直接上截图:
一、搭建Maven版本SpringBoot工程
1 .使用Idea搭建普通Maven工程
使用模板创建Maven工程
填写项目在全球的唯一标识和项目名称
填写Maven的配置(请保证填写的Maven配置可以正常连接到Maven仓库)
直接点击finish完成即可
2 .导入SpringBoot依赖
引入依赖前,将maven生成的一些插件和依赖删除,只保留如下配置:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.org.test</groupId>
<artifactId>spring-bootTest</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>spring-bootTest Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
</dependencies>
<build>
<!--项目打出来的war包的名称-->
<finalName>spring-bootTest</finalName>
</build>
</project>
在pom.xml文件中加入以下依赖
<!--继承spring-boot-starter-parent项目来获得一些合理的默认配置-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.3.RELEASE</version>
</parent>
<!--web项目依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
3 .建立包路径cn.org.test。并在test包下书写SpringBoot运行主类
@SpringBootApplication
public class SpringBootUserApplication {
/**
* spring boot的入口
* @param args
*/
public static void main(String[] args) {
SpringApplication.run(SpringBootUserApplication.class,args);
}
}
@SpringBootApplication注解的作用(个人理解):
(1).扫描当前包及当前包子包下被@Controller、@service、@Resposity注解的类,并将其加入到Spring容器管理
(2).程序启动时,加载SpringBoot默认的配置
进行到这一步,项目结构为:
4 .测试SpringBoot是否搭建成功
运行主类中的main方法,启动SpringBoot工程。看到下图所示提示信息,代表启动成功
二、搭建SSM工程
1 .添加mybatis和mysql驱动依赖
<!--SpringBoot和Mybatis的集成-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<!--Mysql驱动包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.23</version>
</dependency>
2 .在test包下建立domain包并在其下建立UserBean类,随便写几个属性
public class User implements Serializable {
private String userId;
private String userName;
private int age;
private String address;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
User user = (User) o;
if (age != user.age) return false;
if (userId != null ? !userId.equals(user.userId) : user.userId != null) return false;
if (userName != null ? !userName.equals(user.userName) : user.userName != null) return false;
return address != null ? address.equals(user.address) : user.address == null;
}
@Override
public int hashCode() {
int result = userId != null ? userId.hashCode() : 0;
result = 31 * result + (userName != null ? userName.hashCode() : 0);
result = 31 * result + age;
result = 31 * result + (address != null ? address.hashCode() : 0);
return result;
}
}
3 .建立mapper.xml文件
新建resources文件夹,并在其下建立mapper包,在mapper下建立mapper.xml文件,结构如下:
mapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.org.test.mapper.UserMapper">
<resultMap id="getUser" type="User">
<result column="user_id" property="userId" jdbcType="VARCHAR" />
<result column="user_name" property="userName" jdbcType="VARCHAR" />
<result column="age" property="age" jdbcType="INTEGER" />
<result column="address" property="address" jdbcType="VARCHAR" />
</resultMap>
<select id="getUser" resultMap="getUser">
SELECT * from USER
</select>
</mapper>
4 .分别在test包下建立mapper包,service包,controller包,并分别在其下建立mapper接口,service接口,controller类
(1) UserMapper.java
@Mapper
public interface UserMapper {
public User getUser();
}
@Mapper注解是将当前接口声明为一个Mapper接口。
(2) 建立service接口
public interface UserService {
public User getUser();
}
在service包下建立impl包,并在impl包下建立UserServiceImpl.java。实现UserService接口
@Service
public class UserServiceImpl implements UserService {
@Autowired
public UserMapper userMapper;
@Override
public User getUser() {
User user = userMapper.getUser();
return user;
}
}
(3) UserController.java
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
public UserService userService;
@RequestMapping("/getUser")
@ResponseBody
public User getUser(String userId) {
System.out.println("获取到用户的唯一标识:"+userId);
User user = userService.getUser();
return user;
}
}
注意:我们自己写的类所在包层级要低于主类所在包的层级,否则Springboot主类无法扫描我们写的类。启动工程后,进行访问。会报出如下错误:
我工程中的层级结构截图如下:
5 .在resources文件夹下新建application.properties文件,并添加如下配置:
#数据库连接配置
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/user?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=1234
#mybatis扫描mapper文件
mybatis.mapper-locations=classpath:/mapper/*.xml
#mybatis将bean设置别名
mybatis.type-aliases-package=cn.org.test.domain
6 .在SpringBoot运行主类上添加@ComponentScan注解,扫描自写类。
@SpringBootApplication
@ComponentScan(basePackages = {"cn.org.test.service.impl", "cn.org.test.dao", "cn.org.test.controller"})
public class SpringBootUserApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootUserApplication.class,args);
}
}
7 .建立数据库表
8 .启动工程测试