使用SpingBoot快速构建工程入门
一、SpingBoot的概述
Build Anything with Spring Boot:Spring Boot is the starting point for building all Spring-based applications. Spring Boot is designed to get you up and running as quickly as possible, with minimal upfront configuration of Spring.
上面是引自官网的一段话,大概是说: Spring Boot 是所有基于 Spring 开发的项目的起点。Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件。
二、SpringBoot的好处
回顾我们之前的 SSM 项目,搭建过程还是比较繁琐的,需要:
- 配置 web.xml,加载 spring 和 spring mvc
- 配置数据库连接、配置日志文件
- 配置家在配置文件的读取,开启注解
- 配置mapper文件
.....
而使用 Spring Boot 来开发项目则只需要非常少的几个配置就可以搭建起来一个 Web 项目,并且可以避免依赖之间的各种冲突
三、项目的搭建
1、创建数据库和表
创建一个数据库为mybatis的数据库,在该数据库下面创建一张表,建表语句如下:
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
/* Navicat Premium Data Transfer Source Server : local Source Server Type : MySQL Source Server Version : 50723 Source Host : localhost:3306 Source Schema : yun6 Target Server Type : MySQL Target Server Version : 50723 File Encoding : 65001 Date: 08/09/2018 16:33:40*/SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for tb_user-- ----------------------------DROP TABLE IF EXISTS `tb_user`;CREATE TABLE `tb_user` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `user_name` varchar(100) DEFAULT NULL COMMENT '用户名', `password` varchar(100) DEFAULT NULL COMMENT '密码', `name` varchar(100) DEFAULT NULL COMMENT '姓名', `age` int(10) DEFAULT NULL COMMENT '年龄', `sex` tinyint(1) DEFAULT NULL COMMENT '性别,1男性,2女性', `birthday` date DEFAULT NULL COMMENT '出生日期', `note` varchar(255) DEFAULT NULL COMMENT '备注', `created` datetime DEFAULT NULL COMMENT '创建时间', `updated` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`), UNIQUE KEY `username` (`user_name`)) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;-- ------------------------------ Records of tb_user-- ----------------------------BEGIN;INSERT INTO `tb_user` VALUES (1, 'zhangsan', '123456', '张三', 30, 1, '1964-08-08', '张三同学在学Java', '2014-09-19 16:56:04', '2014-09-21 11:24:59');INSERT INTO `tb_user` VALUES (2, 'lisi', '123456', '李四', 21, 2, '1995-01-01', '李四同学在传智学Java', '2014-09-19 16:56:04', '2014-09-19 16:56:04');INSERT INTO `tb_user` VALUES (3, 'wangwu', '123456', '王五', 22, 2, '1994-01-01', '王五同学在学php', '2014-09-19 16:56:04', '2014-09-19 16:56:04');INSERT INTO `tb_user` VALUES (4, 'zhangwei', '123456', '张伟', 20, 1, '1996-09-01', '张伟同学在传智播客学Java', '2014-09-19 16:56:04', '2014-09-19 16:56:04');INSERT INTO `tb_user` VALUES (5, 'lina', '123456', '李娜', 28, 1, '1988-01-01', '李娜同学在传智播客学Java', '2014-09-19 16:56:04', '2014-09-19 16:56:04');INSERT INTO `tb_user` VALUES (6, 'lilei', '123456', '李磊', 23, 1, '1993-08-08', '李磊同学在传智播客学Java', '2014-09-20 11:41:15', '2014-09-20 11:41:15');INSERT INTO `tb_user` VALUES (7, 'hanmeimei', '123456', '韩梅梅', 24, 2, '1992-08-08', '韩梅梅同学在传智播客学php', '2014-09-20 11:41:15', '2014-09-20 11:41:15');INSERT INTO `tb_user` VALUES (8, 'liuyan', '123456', '柳岩', 21, 2, '1995-08-08', '柳岩同学在传智播客学表演', '2014-09-20 11:41:15', '2014-09-20 11:41:15');INSERT INTO `tb_user` VALUES (9, 'liuyifei', '123456', '刘亦菲', 18, 2, '1998-08-08', '刘亦菲同学在传智播客学唱歌', '2014-09-20 11:41:15', '2014-09-20 11:41:15');INSERT INTO `tb_user` VALUES (10, 'fanbingbing', '123456', '范冰冰', 25, 2, '1991-08-08', '范冰冰同学在传智播客学表演', '2014-09-20 11:41:15', '2014-09-20 11:41:15');INSERT INTO `tb_user` VALUES (11, 'zhengshuang', '123456', '郑爽', 23, 2, '1993-08-08', '郑爽同学在传智播客学习如何装纯', '2014-09-20 11:41:15', '2014-09-20 11:41:15');INSERT INTO `tb_user` VALUES (12, 'tangyan', '123456', '唐嫣', 26, 2, '1990-08-08', '郑爽同学在传智播客学习如何耍酷', '2014-09-20 11:41:15', '2014-09-20 11:41:15');COMMIT;SET FOREIGN_KEY_CHECKS = 1; |
2、创建一个maven工程
在pom.xml中导入下面依赖:
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.6.RELEASE</version> <relativePath/> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <mapper.starter.version>2.1.4</mapper.starter.version> <mysql.version>5.1.46</mysql.version> <pageHelper.starter.version>1.2.5</pageHelper.starter.version> </properties> <dependencies> <!--web启动器--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 通用Mapper启动器 --> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>${mapper.starter.version}</version> </dependency> <!-- mysql驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> |
3、编写启动类
在src下创建包:com.heima.brand,在com.heima.brand包下创建SpringBoot的启动器:
|
1
2
3
4
5
6
7
8
|
@SpringBootApplicationpublic class BrandApplication { public static void main(String[] args) { SpringApplication.run(BrandApplication.class, args); }} |
4、创建对应的实体
在创建完实体类之后,在对应的类和属性上加上通用mapper和lombok的注解,用来映射表和字段和生成对应的set和get方法:
|
01
02
03
04
05
06
07
08
09
10
11
12
|
@Data@Table(name = "tb_brand")public class Brand { @Id @KeySql(useGeneratedKeys =true)//开启主键回填 private Long id; private String name; private String firstChar;} |
5、编写配置文件
在resources目录下创建application.yml文件:
|
01
02
03
04
05
06
07
08
09
10
11
12
13
|
server: port: 8080spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/mybatis username: root password: 123456mybatis: type-aliases-package: com.heima.brand.beanlogging: level: com.heima.brand: debug |
5、创建对应的mapper接口
在mapper包下面创建BrandMapper接口,并且继承通用Mapper的父类:
|
1
2
3
4
5
6
|
import com.heima.brand.bean.Brand;import tk.mybatis.mapper.common.Mapper;public interface BrandMapper extends Mapper<Brand> {} |
6、在启动类上加入借口扫描包
在SpringBoot的启动器中加入通用mapper的扫描包:
|
01
02
03
04
05
06
07
08
09
10
11
12
13
|
import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import tk.mybatis.spring.annotation.MapperScan;@SpringBootApplication@MapperScan("com.heima.brand.mapper")public class BrandApplication { public static void main(String[] args) { SpringApplication.run(BrandApplication.class, args); }} |
编写业务层的接口和实现:
|
1
2
3
4
|
public interface BrandService { List<Brand> findAllBrand();} |
|
01
02
03
04
05
06
07
08
09
10
11
12
|
@Servicepublic class BrandServiceImpl implements BrandService { @Autowired private BrandMapper brandMapper; @Override public List<Brand> findAllBrand() { return brandMapper.selectByExample(null); }} |
8、编写控制层
编写控制层:BrandController
|
01
02
03
04
05
06
07
08
09
10
11
12
13
|
@RestController@RequestMapping("/brand")public class BrandController { @Autowired private BrandService brandService; @RequestMapping("/findAllBrand") public List<Brand> findAllBrand(){ return brandService.findAllBrand(); }} |
9、启动进行测试
启动类默认的扫描包为:com.heima.brand,因此controler,service,mapper等包必须要是com.heima.brand的子包。
更多免费技术资料可关注:annalin1203

浙公网安备 33010602011771号