Spring Boot设计目的是用来简化Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
一、环境准备
Idea 2017 或 2018,直接安装即可,太低版本webapp模板不同。
tomcat8.0 解压缩即可,配置不配置tomcathome都可。
mysql5.6
maven3.5.0
Java安装jdk版本即可。
二、通过maven模板创建Java web项目
1、点击 New project,选择maven-webapp项目
2、输入groupid和artifactid,随便输入即可。单机next
3、如果没有maven选择即可,选好后单击 next
4、选择存放目录后,单击 Finish,开始创建项目
5、第一次根据你的网络不同所需时间不同,我第一次创建大概用了10多分钟。成功后如下图能看到web.xml部署描述文件。
三、创建Java web项目文件结构
1、创建好后结构如下图
src\main\
java
com
huatu
qa
controller
dao
entity
service
impl
Application.java
resources
application.yml
test
2、目录创建完毕选择,源码 Source root;资源 resource,test等资源目录
四、配置pom.xml导入必要的jar包
1、添加 spring-boot-starter-parent
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
</parent>
2、添加 “spring-boot-starter-web”、“mysql-connector-java”、“org.mybatis.spring.boot”
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.6</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
配置好后如下图:
五、配置tomcat
1、点击 Run -> Edit Configurations
2、如果第一次配置需要选择“Templates” -> Local
主要设置tomcat位置,选择你的tomcat加压缩目录即可。
3、再次点击 Run -> Edit Configurations,点 + 号,选择里边的 Tomcat server -> local
4、选择 “Deployment” -> + 号,选择 “war exploded”,在开发阶段选择这个支持热部署。
5、保存后设置context
6、返回后确认下端口,之后点击“run”即可启动tomcat
7、运行成功后会自动打开浏览器看到如下图
8、下次再次运行可以直接点击 run -> tomcat
六、配置mybatis
1、 在mysql中创建数据库及表,表明 user_info。字段两个 user_id、user_name。创建好后再增加几条数据
2、在 resources 目录添加 application.yml 配置数据源和映射文件路径
#application.yml
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/aaa?serverTimezone=GMT
username: root
password: 123456
mybatis:
mapper-locations: classpath:dao/**/*Dao.xml
其中:
1、serverTimezone=GMT 是高版本mysql jar需要配置服务器时区
2、com.mysql.cj.jdbc.Driver 为高版本mysql使用的driver
七、编写代码
1、编写实体类
在 entity 目录创建 UserInfo.java 类,内容如下
package com.huatu.qa.entity;
public class UserInfo {
private String userId;
private String userName;
下边是get set方法
2、Dao层代码
在 dao 目录中添加 UserInfoDao.java、UserInfoDao.xml
dao接口
package com.huatu.qa.dao;
import com.huatu.qa.entity.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
public interface UserInfoDao {
public List<UserInfo> selectAll();
}
mapper映射文件
<?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="com.huatu.qa.dao.UserInfoDao">
<resultMap id="AllColumnMap" type="com.huatu.qa.entity.UserInfo">
<result column="user_id" property="userId"/>
<result column="user_name" property="userName"/>
</resultMap>
<select id="selectAll" resultMap="AllColumnMap">
SELECT * FROM user_info
</select>
</mapper>
修改pom.xml复制mapper映射文件到resource目录
<resources>
<resource>
<directory>src/main/java/com/huatu/qa</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
pom改完后如下,这里有两个选择
1、将mapper直接放到resource目录。mvn编译时会自动将xml复制到运行resource目录。但这样有一个问题就是如果你有多个配置,比如测试配置,生产配置每个目录里都要有一份mapper文件。
2、就是放到dao或其它目录运行时在通过pom中的resource配置,复制到运行resource目录。之前就是这里忘记配置了,导致找不到mapper文件。
3、Service层代码
在 service 目录中创建一个接口 IUserInfoService.java
package com.huatu.qa.service;
public interface IUserInfoService {
Object selectAll();
}
在 service\impl 目录下创建一个实现类 UserInfoService.java
package com.huatu.qa.service.impl;
import com.huatu.qa.dao.UserInfoDao;
import com.huatu.qa.entity.UserInfo;
import com.huatu.qa.service.IUserInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserInfoService implements IUserInfoService {
@Autowired
UserInfoDao userInforDao;
@Override
public Object selectAll() {
List<UserInfo> list = userInforDao.selectAll();
return list;
}
}
4、controller层代码
在 controller 目录下创建 UserInfoController.java
package com.huatu.qa.controller;
import com.huatu.qa.service.IUserInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class UserInfoController {
@Autowired
IUserInfoService userInfoService;
@RequestMapping("/users")
@ResponseBody
public Object selectAll(){
return userInfoService.selectAll();
}
}
5、配置快速启动类
在 package 目录 创建 Application.java
package com.huatu.qa;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
public static void main(String[] args){
SpringApplication.run(Application.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Application.class);
}
}
以上都完成后如下图
八、运行
1、点击 run -> tomcat ,如果之前已经启动tomcat请重启。如果启动两个tomcat会报端口冲突,需要手动找到那个java进程kill掉。
2、浏览器输入接口地址 http://localhost:8080/htqa_war_exploded/users 会看到请求回来的数据
到此使用springboot搭建一个完整ssm项目框架,是不是越来越简单。
九、打包成可以运行jar包
1、点击 Project Structure
2、Artifacts -> + -> JAR -> From modules with dependencies
3、选择 Main Class,选 copy to the output directory and link via manifest
4、点击 ok
5、build -> Build Arifacts
6、All Artifacts -> Build
7、在终端中,进入项目目录 out -> artifacts 目录,执行
8、运行成功
9、访问 http://localhost:8080/ 即可