使用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
|
@SpringBootApplication public 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: 8080
spring: datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/mybatis
username: root
password: 123456
mybatis: type-aliases-package: com.heima.brand.bean
logging: 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
|
@Service public 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