Spring Boot框架——快速入门
Spring Boot是Spring 全家桶非常重要的一个模块,通过 Spring Boot 可以快速搭建一个基于 Spring 的 Java 应用程序,Spring Boot 对常用的第三方库提供了配置方案,可以很好地和 Spring 进行整合,MyBatis、Spring Data JPA 等,可以一键式搭建功能完备的 Java 企业级应用。
Spring Boot 的优势
- 不需要任何 XML 配置文件。
- 内嵌 Web 服务器,可以直接启动。
- 默认支持 JSON 数据,不需要做额外配置。
- 支持 RESTful 风格
- 使用一个配置文件(非 XML、propertis、YAML)可以配置所有的个性化信息
Spring Boot 就是一个可以用很少的配置快速搭建 Spring 应用的框架,并且可以自动集成主流的 Java 技术栈。
Spring Boot有两种创建方式
- 在线创建工程
- 手动创建工程
这里演示一下在线创建
1、启动idea,点击Create New Project

2、选择Spring Initializr--Default: https://start.spring.io--next

3、输入Group、Artifact等--点击next

4、选择web--勾选Spring Web--点击next

5、选择路径--点击finish

6、OK,spring boot项目创建成功了,如果是第一次创建spring boot项目的话,需要等待一会,下载pom依赖

7、添加pom.xml依赖
<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>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.14</version>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
</dependency>
<!-- mybaits -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
</dependencies>
8、配置application.properties文件
注意:Spring Boot支持 .properties / .yml两种格式的配置文件,如果两种都存在时,以第一种优先。这里我修改为了.yml后缀的(便于书写,建议使用此格式的)
为了演示例子,这里只做最简单配置
server:
port: 7777
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
username: root
password: root
url: jdbc:mysql://127.0.0.1:3306/sunjian2?&useSSL=false&serverTimezone=UTC
9、创建实体类
package com.sunjian.demo.entity;
import lombok.Data;
/**
* @author sunjian
* @date 2020/3/24 23:20
*/
@Data
public class Person {
private Integer id;
private String name;
private String age;
private String gender;
private String email;
private String city;
}
10、创建dao层接口
package com.sunjian.demo.dao;
import com.sunjian.demo.entity.Person;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
/**
* @author sunjian
* @date 2020/3/24 23:25
*/
@Mapper
public interface UserDao {
@Select("select * from person where id = #{id}")
Person findById(Integer id);
}
11、创建service层接口及实现类
package com.sunjian.demo.service;
import com.sunjian.demo.entity.Person;
/**
* @author sunjian
* @date 2020/3/24 23:29
*/
public interface PersonService {
public Person findById(Integer id);
}
package com.sunjian.demo.service.impl;
import com.sunjian.demo.dao.UserDao;
import com.sunjian.demo.entity.Person;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* @author sunjian
* @date 2020/3/24 23:30
*/
@Service
public class PersonServiceImpl {
@Autowired
private UserDao userDao;
public Person findById(Integer id){
return userDao.findById(id);
}
}
12、创建controller视图层类
package com.sunjian.demo.controller;
import com.sunjian.demo.entity.Person;
import com.sunjian.demo.service.PersonService;
import com.sunjian.demo.service.impl.PersonServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author sunjian
* @date 2020/3/24 23:32
*/
@RestController
@RequestMapping("/person")
public class PersonController {
@Autowired
private PersonServiceImpl personServiceImpl;
@GetMapping("/findById/{id}")
public Person findById(@PathVariable("id") Integer id){
Person person = personServiceImpl.findById(id);
System.out.println(person);
return person;
}
}
13、启动项目(Spring Boot内置了Tomcat web服务器,直接运行DemoApplication启动类文件即可启动项目),访问


OK.
Spring Boot框架——快速入门的更多相关文章
- (Spring Boot框架)快速入门
Spring Boot 系列文章推荐 Spring Boot 入门 Spring Boot 属性配置和使用 Spring Boot 集成MyBatis Spring Boot 静态资源处理 今天介绍一 ...
- Spring Boot:快速入门教程
什么是Spring Boot? Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人 ...
- Spring Boot【快速入门】简单案例
Spring Boot[快速入门] Spring Boot 概述 Build Anything with Spring Boot:Spring Boot is the starting point ...
- Spring Boot【快速入门】
Spring Boot 概述 Build Anything with Spring Boot:Spring Boot is the starting point for building all Sp ...
- 【转载】Spring Boot【快速入门】2019.05.19
原文出处:https://www.cnblogs.com/wmyskxz/p/9010832.html Spring Boot 概述 Build Anything with Spring Boot ...
- Spring Boot WebFlux 快速入门实践
02:WebFlux 快速入门实践 Spring Boot 2.0 spring.io 官网有句醒目的话是: BUILD ANYTHING WITH SPRING BOOT Spring Boot ( ...
- Spring Boot (十四): 响应式编程以及 Spring Boot Webflux 快速入门
1. 什么是响应式编程 在计算机中,响应式编程或反应式编程(英语:Reactive programming)是一种面向数据流和变化传播的编程范式.这意味着可以在编程语言中很方便地表达静态或动态的数据流 ...
- Spring Boot JWT 快速入门
本章节讨论 jwt 在 spring boot 中的应用.意在快速入门 jwt. java jdk1.8 maven 3.2+ spring boot 2.0+ JSON Web Token(JWT) ...
- Spring Boot:快速入门
上一篇讲述什么是Spring Boot,这一篇讲解怎么使用IDE工具快速搭建起来独立项目. 一.构建方式 快速搭建项目有三种方式,官方也有答案给到我们: 二.构建前准备 想要使用IDE运行起来自己的S ...
随机推荐
- 是谁收购了被谷歌私藏7年之久的Zagat?
国内餐饮行业的风口似乎总是执着于"价格"上,无论是天天搞特价的外卖,还是优惠不停歇的团购网站,都将"价格"当做了竞争的杀手锏.即使是网红奶茶.甜品之类的,也是将 ...
- Java遍历文件夹的两种方法(非递归和递归)
import java.io.File; import java.util.LinkedList; public class FileSystem { public static int num ...
- 使用Google BBR加速 VPS
0X00 预备知识 在使用Google BBR之前,我们首先要了解它是什么. 了解计算机网络的人都知道,在TCP连接中,由于需要维持连接的可靠性,引入了拥塞控制和流量管理的方法.Google BBR就 ...
- 怎样解决使用feof()函数时出现的问题?
feof函数 昨天在做一个课程设计时,一个函数的功能是将文件中的数据一条条的读到链表中去.既然不确定有多少条数据,那只能借助feof()函数了,本来文件部分就没学好,也就知道这一个方法. ...
- JS逆向某网站登录密码分析
声明: 本文仅供研究学习使用,请勿用于非法用途! 目标网站 aHR0cHM6Ly9hdXRoLmFsaXBheS5jb20vbG9naW4vaW5kZXguaHRt 今日目标网站是某知名支付网站,感觉 ...
- datatable某列不排序、和自定义搜索、给数据里面加属性
datatable中如果不想对前几列进行排序,使用以下代码: $('#informationList').DataTable({ //对0,1,2列不排序 "columnDefs" ...
- Manjaro 19.01 kde下Tim sogou软件安装问题及解决
我的系统配置 首先第一个问题是,在manjaro下Tim Thunderspeed这种deepin-wine的软件.今天我在装这些软件的时候,安装之后不能打开,闪退.苦恼了我好一会儿.终于找到了解决的 ...
- 大厂面试官最常问的@Configuration+@Bean(JDKConfig编程方式)
大厂面试官最常问的@Configuration+@Bean(JDKConfig编程方式) 现在大部分的Spring项目都采用了基于注解的配置,采用了@Configuration 替换标签的做法.一 ...
- 从0开发3D引擎(十一):使用领域驱动设计,从最小3D程序中提炼引擎(第二部分)
目录 上一篇博文 本文流程 回顾上文 解释基本的操作 开始实现 准备 建立代码的文件夹结构,约定模块文件的命名规则 模块文件的命名原则 一级和二级文件夹 api_layer的文件夹 applicati ...
- HTML5中form的新增属性或元素
1.新增的表单元素 1.1 progress表示任务的完成情况,常用于进度条. max 定义进度元素所要求的任务的工作量,默认值为1 value 定义已经完成的工作量,如果max值为1,该值必须是介于 ...