本篇文章为你整理了SpringBoot快速入门(springboot入门教程)的详细内容,包含有springboot 快速入门 springboot入门教程 springboot 教程 springboot超详细教程 SpringBoot快速入门,希望能帮助你了解 SpringBoot快速入门。
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;
* @Name UserController
* @Author Administrator
* @Date 2022-08-09 10:29
* 用户控制类
@RestController
@RequestMapping("/users")
public class UserController {
// Handler
@GetMapping("/{id}")
public String save(@PathVariable Integer id){
System.out.println("id = " + id);
return "save success";
1.2 SpringBoot工程启动
只需要找到启动类的main方法,运行即可只需要找到启动类的main方法,运行即可
作用:为了快速开发Spring项目:简化配置 ,简化依赖引入。
Spring的缺点:配置繁琐、依赖繁琐。
可以使用SpringBoot的自动配置和场景启动器(起步依赖)克服上述缺点。
SpringBoot提供了一种快速使用Spring的方式,基于约定优于配置的思想。不需要关注配置,重点关注业务逻辑开发,缩短了项目周期。
SpringBoot实现了0配置,1个依赖完成项目搭建。
SpringBoot通过两点实现了上述效果:
起步依赖
针对不同的场景封装了启动器,比如:web场景启动器中引入了所有web需要的依赖,我们只需要引入web场景启动器坐标即可。
SpringBoot还提供了一些嵌入式web服务器、安全、指标、健康监测、外部配置等。
注意:SpringBoot只是提供了一种快速开发Spring项目的方式,而非对Spring功能上的增强。
2.2 起步依赖
又名场景启动器
2.2.1 使用
起步依赖,就是依赖。可以理解为一个依赖组,一组依赖。
像导入普通依赖一样,导入即可。
2.2.2 原理
?xml version="1.0" encoding="UTF-8"?
project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"
modelVersion 4.0.0 /modelVersion
parent
groupId org.springframework.boot /groupId
artifactId spring-boot-starter-parent /artifactId
version 2.7.2 /version
relativePath/ !-- lookup parent from repository --
/parent
groupId com.andan /groupId
artifactId spring_boot_io /artifactId
version 0.0.1-SNAPSHOT /version
name spring_boot_io /name
description Demo project for Spring Boot /description
properties
java.version 1.8 /java.version
/properties
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
/dependencies
build
plugins
plugin
groupId org.springframework.boot /groupId
artifactId spring-boot-maven-plugin /artifactId
/plugin
/plugins
/build
/project
?xml version="1.0" encoding="UTF-8"?
project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"
parent
groupId org.springframework.boot /groupId
artifactId spring-boot-starter-parent /artifactId
version 2.7.2 /version
/parent
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
/dependencies
/project
Jetty比Tomcat更轻量级,可扩展性更强(相较于Tomcat),谷歌应用引擎(GAE)已经全面切换为Jetty
dependencies
dependency
groupId org.springframework.boot /groupId
artifactId spring-boot-starter-web /artifactId
!--web起步依赖环境中,排除Tomcat起步依赖--
exclusions
exclusion
groupId org.springframework.boot /groupId
artifactId spring-boot-starter-tomcat /artifactId
/exclusion
/exclusions
/dependency
!--添加Jetty起步依赖,版本由SpringBoot的starter控制--
dependency
groupId org.springframework.boot /groupId
artifactId spring-boot-starter-jetty /artifactId
/dependency
/dependencies
3. 配置
3.1 配置文件分类
SpringBoot支持yml/yaml和properties等格式的配置文件。
按照约定,配置文件的文件名为application.xxx
三种配置文件的优先级:properties yml yaml,
多个配置(文件)中配置了相同的key,优先级高的生效;多个配置(文件)中配置了不同的key,同时生效。
示例如下:
缩进时不允许使用Tab键,只允许使用空格(各个系统 Tab对应的 空格数目可能不同,导致层次混乱)。
获取方式
首先在当前类中注入Environment对象,然后通过该对象的getProperty(“key”)方法获取对应的值
public String getById(@PathVariable Integer id){
System.out.println(environment.getProperty("lesson"));
System.out.println(environment.getProperty("server.port"));
System.out.println(environment.getProperty("enterprise.age"));
System.out.println(environment.getProperty("enterprise.subject[1]"));
return "hello , spring boot!";
// 添加注解,并指定访问前缀。前缀与配置文件中对应的一级属性名一致
@ConfigurationProperties(prefix = "enterprise")
public class Enterprise {
// 实体类中成员变量名和二级属性名一致
private String name;
private Integer age;
private String tel;
private String[] subject;
public class BookController {
// 注入Enterprise,该对象就读取了配置文件,并封装配置文件属性到该对象中。
@Autowired
private Enterprise enterprise;
@GetMapping("/{id}")
public String getById(@PathVariable Integer id){
System.out.println(enterprise);
return "hello , spring boot!";
解决方案(配置依赖)
!-- SpringBoot配置处理器。解决配置文件无提示和实体类飘红问题 --
dependency
groupId org.springframework.boot /groupId
artifactId spring-boot-configuration-processor /artifactId
optional true /optional
/dependency
# 高版本的springBoot中,spring.profiles:文档名 的命名方式已经被标记为过时
# 推荐使用 spring.config.activate.on=profile:文档名 的命名方式
# 激活方式保持不变
spring:
config:
activate:
on-profile: dev
server:
port: 80
spring:
profiles: pro
server:
port: 81
spring:
profiles: test
server:
port: 82
为文档命名的方式,在不同的SpringBoot版本中会稍有差异
低版本中只支持:spring.profiles:文档名
高版本还支持并推荐使用:spring.config.activate.on=profile:文档名
3.4.2 总结
不要记,配置的时候,最终要的是结果;只要结果符合预期,怎么配置都可以。
想了解配置细节规则,可以查看官网文档。
4. 整合其他技术
最终目的是为了能够完成SSM的整合
SpringBoot整合Spring(不需要)
SpringBoot整合SpringMVC(导入web起步依赖)
SpringBoot整合MyBatis(主要)
4.1 整合Mybatis
4.1.1 对比Spring整合Mybatis
配置起步依赖,及MySQL数据库驱动和Druid数据源
!-- 导入Mybatis起步依赖:version --
dependency
groupId org.mybatis.spring.boot /groupId
artifactId mybatis-spring-boot-starter /artifactId
version 2.2.2 /version
/dependency
!-- mysql数据库驱动 --
dependency
groupId mysql /groupId
artifactId mysql-connector-java /artifactId
version 5.1.48 /version
/dependency
// @Mapper // 把该接口的代理对象装配进Spring(Boot)容器 和@MapperScan二选一即可
public interface BookDao {
@Select("select * from ssm_spring.t_book where id= #{id}")
public Book selectById(Integer id);
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
* 整合其他技术的启动类
* @Author Vsunks.v
* @Blog blog.sunxiaowei.net/996.mba
* @Description: 整合其他技术的启动类
@SpringBootApplication
@MapperScan("com.andan.dao") // 扫描指定位置的mapper接口,一劳永逸
public class IntegrateApplication {
public static void main(String[] args) {
SpringApplication.run(IntegrateApplication.class,args);
导入起步依赖(脚手架方式创建的模块会自动添加)
在主包下编写测试入口类(脚手架方式创建的模块会自动添加)
4.2.2 代码演示
导入起步依赖(脚手架方式创建的模块会自动添加)
!-- test起步依赖(脚手架建的boot项目默认导入) --
dependency
groupId org.springframework.boot /groupId
artifactId spring-boot-starter-test /artifactId
scope test /scope
/dependency
如果遇到没有这个程序包的问题 把pom的依赖全删了保存在重新导入依赖刷新
package com.andan;
import com.andan.dao.BookDao;
import com.andan.entity.Book;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
// @RunWith(SpringRunner.class) // 使用junit4 需要配置该运行器
// 标注该类是一个SpringBoot中的测试类,该类要放在主包下
// 如果不在主包下,需要通过其classes属性指定启动类的字节码对象
@SpringBootTest
class BookDaoTest {
// 测谁就注入谁
@Autowired
BookDao bookDao;
@Test
public void testSelectById() {
Book book = bookDao.selectById(14);
System.out.println("book = " + book);
4.3 整合service
不需要整合,按照Spring的要求编码即可。
4.3.1 实现步骤
新建service接口和实现类
装配实现类进Spring容器,并注入Dao
定义方法调用Dao中方法
4.3.2 代码演示
import com.andan.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
* @Name BookServiceImpl
* @Author Administrator
* @Date 2022-08-09 11:03
@Service
public class BookServiceImpl implements BookService {
@Autowired
BookDao bookDao;
@Override
public Book getById(Integer id) {
return bookDao.selectById(id);
import com.andan.service.BookService;
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;
* @Name BookController
* @Author Administrator
* @Date 2022-08-09 11:01
@RestController
@RequestMapping("/books")
public class BookController {
@Autowired
BookService bookService;
// 根据id查询
@GetMapping("/{id}")
public Book getById(@PathVariable Integer id) {
return bookService.getById(id);
4.5 静态页面
静态页面,放在resources/static文件夹下。
也可以放在其他位置,使用SpringMVC中的放行静态资源;SpringBoot支持读取配置类,方式和之前一致。
最后:附上spring-boot官方文档地址
https://docs.spring.io/spring-boot/docs/current/reference/html/
以上就是SpringBoot快速入门(springboot入门教程)的详细内容,想要了解更多 SpringBoot快速入门的内容,请持续关注盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。