1.环境准备:
jdk:1.8
maven:3.6.3
idea 2019.2.3
请先检查maven环境是否已经搭建完成,否则会出现项目构建速度极其缓慢甚至失败的情况。
2.开始
2.1 搭建springboot项目
直接看图片,一步一步对着来:
选择如图所示,点击下一步(NEXT):
填写项目名,点击下一步(NEXT):
选择web,勾选springboot web 其他的不用管,注意:我的springboot版本为2.3.1,但是不影响项目构建,其他的基本组件将在maven中直接添加,然后继续下一步(NEXT):
这里可以指定文件的目录,以及项目名,完成之后,点击finish,即可构建完成:
如果遇见以下情况,直接点ok,创建新的文件夹,不修改路径不会出下下面的情况:
构建完成之后,目录结构如下图:
删除下面图中指定的文件,也可以不删,不影响:
删除resources目录下面的所有默认文件,使用yml格式的配置文件:
在resources新建application.yml文件,可以直接通过后缀名创建:
在src目录下面新建文件夹webapp:
创建完成,webapp用于存放前端页面样式等。
其他的相关文件夹创建过程不放了,具体创建完成后的目录结构如下:
配置pom.xml,考虑到环境不同,本文只针对dependencies标签里面的配置
<dependencies>
<!-- 自动生成-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- 自动生成结束-->
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
<!--mybatis配置-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
<!--lombok注解-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
<scope>provided</scope>
</dependency>
<!--driud连接属性-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.19</version>
</dependency>
<!--热部署插件 可以不需要添加-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
并在application.yml文件中放入以下代码:
server:
port: 8080 #端口号
servlet:
context-path: /musiconline #根访问地址
spring:
application:
name: musiconline #项目id,用于分布式唯一标识,单项目可以不写
datasource:
type: com.alibaba.druid.pool.DruidDataSource #alibaba数据库连接池
driver-class-name: com.mysql.jdbc.Driver #数据库加载驱动
url: jdbc:mysql://localhost:3306/bootvue?characterEncoding=UTF-8&useSSL=false #bootvue数据库名,characterEncoding指定编码,useSSL数据库版本高则需要加useSSL=true
username: root #数据库账号
password: root #数据库密码
mybatis:
mapper-locations: classpath:com/jjtlm/musiconline/mapper/*.xml #mapper映射路径
type-aliases-package: com.jjtlm.musiconline.entity #实体类的存放目录
配置环境已经完成,接下来对启动类添加@MapperScan注解:
package com.jjtlm.musiconline;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.jjtlm.musiconline.dao")
public class MusiconlineApplication {
public static void main(String[] args) {
SpringApplication.run(MusiconlineApplication.class, args);
}
}
entity示例:
@Data //get set方法
@AllArgsConstructor //全参构造器
@NoArgsConstructor //无参构造器
@ToString //tostring方法
@Accessors(chain=true) //chain 为true,setter方法返回当前对象
public class User {
private String id;
private String name;
private Integer age;
private Double salary;
private String phoneCode;
}
controller示例:
@RestController
@CrossOrigin
@RequestMapping("user")
public class UserController {
@Autowired
private UserService userService;
//查询所有方法
@GetMapping("findAll")
public List<User> findAll() {
List<User> users = userService.findAll();
return users;
}
}
UserDao 类示例:
public interface UserDAO {
//查询所有
List<User> findAll();
}
service接口示例:
public interface UserService {
//查询所有用户
List<User> findAll();
}
service实现类示例:
@Service
@Transactional // 控制事务
public class UserServiceImpl implements UserService {
@Autowired
private UserDAO userDAO;
@Override
@Transactional(propagation = Propagation.SUPPORTS) //解决跨域
public List<User> findAll() {
return userDAO.findAll();
}
}
mapper示例:
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jjtlm.musiconline.dao.UserDAO">
<!--查询所有功能-->
<select id="findAll" resultType="User">
select id,name,age,salary,phoneCode from t_user
</select>
</mapper>
sql语句:
create table t_user(
id varchar(40) primary key,
name varchar(40),
age int(3),
salary double(7,2),
phoneCode varchar(11)
);
本次创建springBoot项目总结完成
。