SpringBoot核心原理与实践

news2024/11/26 1:48:09

第一章、SpringBoot简介

1、入门案例

2、官网创建压缩包程序

注意使用的版本pom文件中java --> 1.8、 springboot --> 2.5.0

3、SpringBoot快速启动

运行程序--找引导类

换技术、加技术--加starter

第二章、基础配置

1、配置文件格式

《1、端口号配置》

《2、将目录文件添加到配置文件识别中》

配置文件加载顺序:application.properties > application.yml > application.yaml

 

2、yaml

《1、语法格式》

语法规则:------------一般根据他的语法提示就好了-----------

缩进空格多少表示层级关系;数据前面要有空格

logging:
  level:
    root: warn

数组数据

《2、数据读取三方式》

1、直接读取----直接定义Value及变量

    @Value("${server.port}")
    private int port;

    @Value("${enterprise.subject[1]}")
    private String subject__01;

2、封装对象读取----定义对象获取数据

将所有数据都加载到对象中,使用属性来获取数据

 @Autowired
    private Environment environment; //使用独立的对象。将所有数据加载进去,直接使用对象来读取具体的数据
    
    @GetMapping("{id}")
    public String getId(@PathVariable Integer id) {
        System.out.println("id---->" + id);

        System.out.println(environment.getProperty("lession"));
        System.out.println(environment.getProperty("server.port"));
        System.out.println(environment.getProperty("enterprise.subject[2]"));
        return "{'module':'kaonijiwa'}";
    }

 

3、封装实体类读取----定义实体类获取数据  --将数据转换为数据对象

针对数据定义实体类

@Component//加载为bean让spring识别
@ConfigurationProperties(prefix = "enterprise") //从配置文件中获取属性 使之与本实体类属性对应
public class Enterprise {
    private String name;
    private Integer age;
    private String tel;
    private String[] subject;

//接下来还要setter & getter

直接自动装配 获取实体类对象

 @Autowired
    private Enterprise enterprise;

对象打印即可获取数据

3、多环境启动

注意:

1、package之前先从clean!

2、设置中encoding全部设置为utf-8

《1、yaml配置》

#三个横线 --- 代表一个文件
#设置启用的环境
spring:
  profiles:
    active: test
---

#开发
spring:
  profiles: dev
server:
  port: 90

---
#生产
spring:
  profiles: pro
server:
  port: 91

---

#测试
spring:
  profiles: test
server:
  port: 92

文件配置(麻烦--了解)

《2、多环境命令行启动参数设置》

按照指定环境启动    开发--dev 、 生产--pro 、 测试--test

格式:
java - jar jar包名 --spring.profiles.active=启动参数
举例:
java -jar /Users/wangjia/Desktop/CS/Spring/SpringBoot/target/springboot_01-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev 

指定端口号:  跟在后面写就行了

--server.port=xxx

命令行优先级高于配置文件。

所以可以使用命令行设置参数临时覆盖配置参数。

《3、多环境开发兼容问题》

maven、SpringBoot均要设置多环境。以maven为主,SpringBoot配置为辅。

 

3、clean -> package

4、配置文件分类

第三章、整合第三方技术

1、SpringBoot整合JUnit

对于设置运行器、加载环境,每一次都是一样的,只有环境名称不一样,所以直接使用

@SpringBootTest代替二者。

@SpringBootTest //= 运行器@RunWith() + 加载启动类
//此处没有再设置启动类 是因为 测试类在启动类SpringBootApplication.class的包或者子包内
class Springboot01ApplicationTests {
    @Autowired
    private BookService bookService;//自动装配测试类对象
    @Test
    public void save(){
        bookService.save();
    }
}
//其他的都不需要设置了

2、SpringBoot整合Mybatis

前置知识:

 

----在创建新模块或项目要勾选SQL、Mybatis

《1、写实体类》

domain.Book

public class Book {
    private Integer id;
    private String name;
    private String type;

    public String toString() {}
    getter & setter

}

《2、写数据层注解开发》

没有实体对象,在采用自动代理时要使用@Mapper标示--定义数据层接口

dao.XXXDao

@Mapper //只有一个接口,在测试时没有对象。采用了自动代理,要标注一下!
 public interface BookDao {
    @Select("select * from tbl_book where id = #{id}")
    public Book getById(Integer id);
}

《3、写数据库登录信息配置文件》

在文件application.yml中写配置

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/ssm_db
    username: root
    password: wbj731290
    type: com.alibaba.druid.pool.DruidDataSource
#指定druid数据源 同时记得pom要添加坐标依赖

3、SpringBoot整合SSM

基本点:

--config文件夹下所有配置类都不需要了

--Dao层自动代理,要添加@Mapper

--数据库登录信息要写在yml文件中

--由于是整合了前后端 web 要选、Mybatis要选、mysql要选

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/969309.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

React原理 - React Hooks

目录 扩展学习资料 React Hooks 编写函数组件 Hooks使命 Hooks解决了什么问题 Hooks原理 useState源码解析 mountState源码解析 Hooks应用 Hooks 实践 倒计时组件 练习 扩展学习资料 名称 链接 React Hooks 官方文档 Introducing Hooks – React useEffect 完整…

PYTHON知识点学习-列表和元组

🌈write in front🌈 🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流. 🆔本文由 Aileen_0v0🧸 原创 CSDN首发🐒 如…

把一般数据转换成因子数据格式,做单因子、债券对历史数据回测+获取curl命令+垃圾数据转换成标准行情数据(bardata)

下载curl软件,地址: curl for Windows for 64-bit下载好后解压到文件夹,将里面的bin文件添加到环境变量中,bon文件地址为:C:\Users\59980\curl-8.2.1_7-win64-mingw\bin 打开cmd,输入curl --help,出现下…

软考:中级软件设计师:程序语言基础:表达式,标准分类,法律法规,程序语言特点,函数传值传址

软考:中级软件设计师:程序语言基础:表达式 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都…

ssm民宿管理系统源码和论文

ssm民宿管理系统源码和论文110 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳&…

SSM整合~

构建并配置项目&#xff1a; 第一步&#xff1a;创建maven项目 第二步&#xff1a;配置pom.xml文件 设置打包方式&#xff1a; <packaging>war</packaging>设置版本号为自定义属性&#xff1a; <properties><!--将版本号通过自定义属性配置--><…

跨站请求伪造(CSRF)攻击与防御原理

跨站请求伪造&#xff08;CSRF&#xff09; 1.1 CSRF原理 1.1.1 基本概念 跨站请求伪造&#xff08;Cross Site Request Forgery&#xff0c;CSRF&#xff09;是一种攻击&#xff0c;它强制浏览器客户端用户在当前对其进行身份验证后的Web 应用程序上执行非本意操作的攻击&a…

差异化竞争阵地的所在【周技术进阶】-从BS 项目C#最基础截取字符串方法开始

效果 代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace ConsoleAppNumberOneHelloWorld {class Program{static void Main(string[] args){Console.WriteLine("hello world&#xf…

TCP机制之确认应答及超时重传

TCP因为其可靠传输的特性被广泛使用,这篇博客将详细介绍一下TCP协议是如何保证它的可靠性的呢?这得主要依赖于其确认应答及超时重传机制,同时三次握手四次挥手也起到了少部分不作用,但是主要还是由确认应答和超时重传来决定的;注意:这里的可靠传输并不是说100%能把数据发送给接…

JVM学习(五)--方法区

概念&#xff1a; 方法区就是存和类相关的东西&#xff0c;成员方法&#xff0c;方法参数&#xff0c;成员变量&#xff0c;构造方法&#xff0c;类加载器等&#xff0c;逻辑上存在于堆中&#xff0c;但是不同的虚拟机对它的实现不同&#xff0c;oracle的hotsport vm在1.6的时…

事务(SQL)

事务概述 事务是一组操作的集合&#xff0c;他是一个不可分割的工作单位&#xff0c;事务会把所有的操作作为一个整体一起向西永提交或撤销操作请求。这组操作&#xff0c;要么全部执行成功&#xff0c;要么全部执行失败。 事务操作 查看/设置事务提交方式 -- 查看/设置事务…

9.1.tensorRT高级(4)封装系列-自动驾驶案例项目self-driving-道路分割分析

目录 前言1. 道路分割总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程&#xff0c;之前有看过一遍&#xff0c;但是没有做笔记&#xff0c;很多东西也忘了。这次重新撸一遍&#xff0c;顺便记记笔记。 本次课程学习 tensorRT 高级-自动驾驶案例项目self-driving-道路分…

Linux入门之多线程|线程|进程基本概念及库函数

目录 一、线程 1.线程的概 补充知识点&#xff1a;页表 2.线程的优点 3.线程的缺点 4.线程异常 5.线程用途 二、线程与进程的区别与联系 三、关于进程线程的问题 0.posix线程库 1.创建线程 2.线程终止 3.取消线程 4.线程等待&#xff08;等待线程结束&#xff09;…

02|李沐动手学深度学习v2(笔记)

基础优化算法 导航 基础优化算法梯度下降1.1 小批量随机梯度下降1.2 小结 线性回归实现1. 处理数据1.3 生成大小为batch_size的小批量 2. 处理模型3. 模型评估4. 训练过程 梯度下降 针对我们的模型没有显示解。&#xff08;生活中很少能有完全符合的线性模型&#xff0c;大多数…

用户中心笔记-leovany

1. 安装 官方地址&#xff1a;https://pro.ant.design/zh-CN/docs/getting-started 1.1 Mac系统 1.1.1 安装yarn 安装yarn brew install yarn查看版本 brew -v 1.1.2 安装node // 安装node brew install node // 关联 brew unlink node && brew link node // 查看版…

信息系统安全运维模型 课堂记录

声明 本文是学习 信息系统安全运维管理指南. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 范围 本标准描述了信息系统安全运维管理体系&#xff0c;给出了安全运维策略、安全运维组织、安全运维规程和安全运维支撑系统等方面相关活动的目的、要求和…

【项目 计网9】4.25 IO多路复用简介 4.26select API介绍 4.27 select代码编写

文章目录 4.25 IO多路复用&#xff08;I/O多路转接&#xff09;简介4.26select API介绍4.27 select代码编写客户端程序select程序select的缺点 4.25 IO多路复用&#xff08;I/O多路转接&#xff09;简介 输入输出&#xff1a;以内存为主体 读写&#xff1a;以程序为主体 程序要…

2023-09-03 LeetCode每日一题(消灭怪物的最大数量)

2023-09-03每日一题 一、题目编号 1921. 消灭怪物的最大数量二、题目链接 点击跳转到题目位置 三、题目描述 你正在玩一款电子游戏&#xff0c;在游戏中你需要保护城市免受怪物侵袭。给你一个 下标从 0 开始 且长度为 n 的整数数组 dist &#xff0c;其中 dist[i] 是第 i …

从一到无穷大 #12 Planet-Scale In-Memory Time Series Database, Is it really Monarch?

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作)&#xff0c;由 李兆龙 确认&#xff0c;转载请注明版权。 文章目录 引言约束优势数据模型写路径查询路径Field Hints Index可靠性 其他总结 引言 Monarc…

Thymeleaf常见属性

参考文档 thymeleaf 语法——th:text默认值、字符串连接、th:attr、th:href 传参、th:include传参、th:inline 内联、th:each循环、th:with、th:if_猎人在吃肉的博客-CSDN博客 代码演示 Controller public class TestController {AutowiredMenuService menuService;GetMapp…