首页 > 其他分享 >SpringBoot--基础

SpringBoot--基础

时间:2023-09-04 13:34:28浏览次数:53  
标签:username String -- 基础 private springboot password public SpringBoot

SpringBoot--基础

  • SpringBoot的设计目的是用来简化Spring应用的初始搭建以及开发过程

idea创建springboot入门步骤(需要idea联网)

  1. 创建一个空项目

  2. 之后再项目构建中添加springboot相关配置

本处的springboot版本为2.7.14,如果maven报错可以自己修改一下版本,最新的3.0版本以上需要jdk17以上

  1. 编写控制类

    //Rest模式
    @RestController
    @RequestMapping("/book")
    public class BookController {
    
    //    限制为get请求
        @GetMapping
        public  String getById(){
            System.out.println("springboot is running");
            return "springboot is running";
        }
    }
    
  2. 运行

一些服务器信息

结果:

除了idea还可以通过官网创建或者阿里云创建:

另外在idea选择阿里云的网页创建:

springboot和spring程序的对比

  • Spring程序缺点:
    • 依赖设置繁琐
    • 配置繁琐
  • SpringBoot程序优点
    • 起步依赖(简化依赖配置)
    • 自动配置(简化常用工程配置)
    • 辅助功能(内置服务器,......)

springboot入门解析

parent--管理坐标版本

管理坐标版本方式

在pom.xml可以找到parent

<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>2.5.3</version>
   <relativePath/> <!-- lookup parent from repository -->
</parent>

starter--定义项目依赖坐标

即:

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
</dependency>

starter就是一个包含了若干个坐标的依赖集,而一个starter中也可以包括starter,嵌套多层

starter定义当前项目使用的所有依赖坐标,以达到减少依赖配置的目的,达到简化配置的目的

总结:实际开发中我们写坐标时,只需要写 ,版本parent帮我们导入,另外如果报错证明parent中没有该坐标的版本需要按照以前的写法把版本也写上

引导类

引导类就是我们创建springboot自带的那个类

内嵌Tomcat

我们可以在starter里面找到tomcat相关坐标:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-tomcat</artifactId>
  <version>2.5.3</version>
  <scope>compile</scope>
</dependency>

springboot内置服务器

把tomcat替换为jetty服务器:

SpringBoot的基础配置

找到resources下的application.properties,这就是springboot的配置文件,通过键值对的方式进行配置

一些配置展示:

# 服务的端口配置
server.port=80

#修改banner--启动springboot项目时的图案
##启动时图案出现方式--本处为直接关闭
spring.main.banner-mode=off
##指定banner的图片
spring.banner.image.location=xx.png

#控制日志
#日志级别默认为info--本处为调试级别
logging.level.root=debug
#出错才显示日志
#logging.level.root=error

小知识:80端口是浏览网页端口,不用在网址中输入80,例如localhost:80/aaa直接写成localhost/aaa

其他配置自行去官网查阅

Common Application Properties (spring.io)

另外springboot提供了多种属性的配置方式:上面的properties只是其中的一种配置方式:

现在的主流是yml格式

yaml语法规则

语法规则:

字面值:

数组:

变量引用:

country: sichuan

likes: ${country}\aaa
#用引号包裹的字符串转义字符会生效
likes: "${country}\temp \t1 \t2"

读取yml的数据

//  读取yaml数据中的单一数据
    @Value("${country}")
    private String country1;
//多级数据
@Value("${country.china}")
private String country1;
//  读取yaml数据中的数组
    @Value("${likes[0]}")
    private String country1;
//使用自动装配将所有数据封装到该对象中
@Autowired
private Environment env;
//调用方法
env.getProperty("country")

装配指定数据:

#配置文件中
datasource:
  url: xxx
  driver: com.mysql.jdbc.Driver
  username: root
  password: 123456
//datasource类
//实例化bean
@Component
//指定加载的数据
@ConfigurationProperties(prefix = "datasource")
public class MyDataSource {
    private String driver;
    private String url;
    private String username;
    private String password;

    @Override
    public String toString() {
        return "MyDataSource{" +
                "driver='" + driver + '\'' +
                ", url='" + url + '\'' +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }

    public String getDriver() {
        return driver;
    }

    public void setDriver(String driver) {
        this.driver = driver;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }


}
//使用
//    自动装配
    @Autowired
    private MyDataSource myDataSource;

其他注意事项

指定springboot的配置文件:

复制模块:

SpringBoot整合第三方技术

整合JUnit

SpringBoot是默认导入了Junit的,在对应的starter中

进行测试的步骤:

  1. 找到test目录下的该类

  2. 注入要测试的对象

  3. 执行测试对象的方法

    @SpringBootTest
    class Springboot0101QuickstartApplicationTests {
    // 注入测试对象
       @Autowired
       private BookController bookController;
       @Test
       void contextLoads() {
    //    执行对象相关方法
          bookController.getById();
       }
    
    }
    

之后运行即可,springboot测试的关键就是@SpringBootTest注

但是如果想把测试类换一个位置就需要改一下注解

至于原因:找不到对应包下的引导类设置

整合MyBatis

首先,创建项目的时候勾上这两个,当然你也可以自己手动添加相关坐标

配置相关信息:

# 配置相关信息
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/jdbcstudy
    username: root
    password: 123456

之后就按照之前mybait学的一样写dao层等

类
public class Book {
    private int id;
    private String username;
    private int password;

    @Override
    public String toString() {
        return "Book{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password=" + password +
                '}';
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public int getPassword() {
        return password;
    }

    public void setPassword(int password) {
        this.password = password;
    }
}
dao:
@Repository
@Mapper
public interface BookDao {
    @Select("select * from user where id = #{id}")
    public Book getById(int id);
}
测试:
@SpringBootTest
class DemoApplicationTests {

    @Autowired
    private BookDao bookDao;
    @Test
    void contextLoads() {
        System.out.println(bookDao.getById(1));
    }

}

如果时区错误或mysql版本过高:

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/jdbcstudy?serverTimezone=GMT
    username: root
    password: 123456
    
    
mybatis-plus:
  global-config:
    db-config:
#      设置id为自增
      id-type: auto

整合MyBatis-Plus

类似MyBatis,但是也有一些不同:

  • 导入的坐标不同
  • 数据层实现简化

springboot没有收录mybatis-plus

创建方法(第一种--快速):

  • 使用阿里云的创建:

  • 选择mybatis-plus:

创建方法(第二种--正统):

  • 选择默认的创建方法:

  • 在pom文件手动导入mybaits-plus的坐标:

    <dependency>
       <groupId>com.baomidou</groupId>
       <artifactId>mybatis-plus-boot-starter</artifactId>
       <version>3.4.3</version>
    </dependency>
    

整合使用:

在之前写的mybatis整个的基础上:

@Repository
@Mapper
public  interface  BookDao extends BaseMapper<Book>{

}

//下面改成上面
//public interface BookDao {
//    @Select("select * from user where id = #{id}")
//    public Book getById(int id);
//}

测试类改为:

@SpringBootTest
class DemoApplicationTests {

    @Autowired
    private BookDao bookDao;
    @Test
    void contextLoads() {
        //selectById是 BaseMapper的方法,具体自行查阅api
        System.out.println(bookDao.selectById(2));
    }

}

另外,映射数据库的实体类名字改成和表名一样

如果表名叫tb_book,而类叫book,可以在配置文件中为其添加前缀

#设置mybatis-plus相关配置
mybatis-plus:
  global-config:
    db-config:
      table-prefix: tb_

整合Druid

导入druid的starter坐标:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.2.6</version>
</dependency>

配置方法一:

在springboot的配置文件中:

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/jdbcstudy?serverTimezone=GMT
    username: root
    password: 123456
    type: com.alibaba.druid.pool.DruidDataSource

配置方法二:(推荐)

spring:
  datasource:
   druid:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/jdbcstudy?serverTimezone=GMT
    username: root
    password: 123456

标签:username,String,--,基础,private,springboot,password,public,SpringBoot
From: https://www.cnblogs.com/rainaftersummert/p/17676762.html

相关文章

  • 验证码的工具类CheckCodeUtil
    2023-09-04packagecom.hh.util;importjavax.imageio.ImageIO;importjava.awt.*;importjava.awt.geom.AffineTransform;importjava.awt.image.BufferedImage;importjava.io.*;importjava.util.Arrays;importjava.util.Random;/***生成验证码工具类*/publ......
  • AUTOSAR基础篇之OS-00
    OS主要是为我们解决了以下几个基本问题:改变各任务的执行频率;改变各任务的执行时间;设定各任务的优先级,保证高优先级任务能够及时执行;任务切换时的现场保护与恢复;共享资源的安全访问机制等;  首先,AUTOSAROS是基于OSEKOS继承发展而来,所以上述的OSEKOS的基本......
  • 发布策略:蓝绿部署、金丝雀发布(灰度发布)、AB测试、滚动发布、红黑部署的概念与区别
    蓝绿发布(Blue-GreenDeployment)蓝绿发布提供了一种零宕机的部署方式。不停老版本,部署新版本进行测试,确认OK,将流量切到新版本,然后老版本同时也升级到新版本。始终有两个版本同时在线,有问题可以快速切换。蓝绿部署中,一共有两套系统:一套是正在提供服务系统,标记为“绿色”;另一......
  • 2023牛客多校训练营2
    B.LinkwithRailwayCompany最大权闭合子图问题,树链剖分建图求解简述最大权闭合子图:现有一有向图,所有点都有一个权值,你需要选择一个子图,使得子图所有点的出边都指向子图内部,问子图最大权考虑网络流,源点向所有正权点连流量为权值的边,所有负权点向汇点连流量为权值绝对值的边,......
  • 如何将枯燥的大数据呈现为可视化的图和动画?
    在数字时代,大数据已经成为商业、科学、政府和日常生活中不可或缺的一部分。然而,大数据本身往往是枯燥的、难以理解的数字和文字,如果没有有效的方式将其可视化,就会错失其中的宝贵信息。以下是一些方法,可以将枯燥的大数据变成引人入胜的可视化图和动画。首先,选择适合你需求的数据......
  • Apache IoTDB开发之Load External TsFile工具
    LoadExternalTsFile工具简介加载外部tsfile工具允许用户从正在运行的ApacheIoTDB实例加载tsfiles、删除tsfile或将tsfile移动到目标目录。用法用户通过Cli工具或JDBC向ApacheIoTDB系统发送指定的命令以使用该工具。加载TS文件加载tsfiles的命令是。load"<p......
  • 无涯教程-JavaScript - CUBEMEMBER函数
    描述CUBEMEMBER函数从多维数据集返回一个成员或元组。使用此函数可以验证多维数据集中是否存在成员或元组。语法CUBEMEMBER(connection,member_expression,[caption])争论Argument描述Required/OptionalconnectionNameoftheconnectiontothecube-Atextstr......
  • VMware Workstation使用方法
    在VMware中如何创建新虚拟机?vmware虚拟机怎么安装系统?      1、打开我们已经安装好的vmware软件,进入主界面后点击【创建新虚拟机】按钮。2、打开新建虚拟机向导,点击下一步继续。      3、选择要安装的操作系统,有两种安装方式:1)安装程序光盘,可点击选择。2)安装程序光盘映......
  • RTMP中视频直播点播平台LntonMedia该如何使用接口调用实现截取视频的功能
    LntonMedia视频直播点播平台是一款集视频直播、点播、转码、管理、录像、检索、时移回看等功能于一体的平台。该平台可以提供音视频采集、视频推拉流、播放H.265编码视频、存储和分发功能,适用于各种终端和平台。近期有用户询问关于LntonMedia该如何通口实现视频截取功能,今天我们来......
  • 失效日期管理和账户锁定1(Ubuntu)
    一:概述 Linux系统中的用户和密码都是有使用期限的,超过设置日期期限之后,必须更改密码以防止产生漏洞。如果我们使用Linux系统中有一个账号被人盗了,就容易是文件窃取,危害系统安全。二:设置Linux系统中的失效日期 useradd命令与和指定选项搭配可以设置默认的失效日期。useradd命令......