当前位置: 首页 > article >正文

springBoot --> 学习笔记

文章目录

    • 认识 SpringBoot
      • 第一个 SpringBoot 程序
      • 彩蛋 banner (emmmmm,哈哈哈哈哈哈,牛逼!)
      • SpringBoot 配置
        • 配置文件
        • 第一个 yaml 配置 成功案例
          • yaml 存在 松散绑定
      • JSR 303 数据校验
      • 多环境配置以及文件位置
      • 访问静态资源的方式
      • 用 SpringBoot 创建 Web 项目 和 Thymeleaf 模板
      • 首页 和 图标引入 (没啥讲的,配置好自动生成。这些百度就可以解决了。略……)
      • Thymeleaf 模板引擎
        • Thymeleaf 模板(常用集合)
      • MVC配置原理
      • 聊一聊工作用的开发
      • SpringBoot整合JDBC
      • SpringBoot 整合 Druid
        • 第一步:先去 maven 下载 依赖
        • 第二步:填写配置 yml 文件
        • 第三部:写 配置文件
        • 第四部:检查
      • SpringBoot 整合 mybatis
      • SpringSecurity(安全)==> 因为比较重要,请在主页看一下,已单另区分开
      • shiro ⇒ 和 SpringSecurity 在一篇文档,主页可以找
      • Swagger
        • 什么是 Swagger(这个就可以百度了呢,我不怎么喜欢 用这个,抱歉)
      • 异步任务
        • ①开启异步
        • ② 给方法上面添加异步
      • 定时任务
        • 开启定时功能的
        • 给方法上面添加注解
      • 分布式 Dubbo + Zookeeper

认识 SpringBoot

什么是 spring ?为了解决企业级应用开发而创建的,简化开发

什么是 SpringBoot
.
其设计目的是用来简化Spring应用的创建、运行、调试、部署等。使用Spring Boot可以做到专注于Spring应用的开发,而无需过多关注XML的配置。Spring Boot使用“习惯优于配置”的理念,简单来说,它提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题。使用Spring Boot可以不用或者只需要很少的Spring配置就可以让企业项目快速运行起来。

①SpringBoot 默认内嵌 tomcat控制器
②不依赖idea,打出来的包不是 war ,而变成了 jar 包

什么是 微服务
.
微服务就是把一个项目拆分成独立的多个服务,并且多个服务是可以独立运行的,而每个服务都会占用线程

第一个 SpringBoot 程序

使用 idea 创建首个 SpringBoot 程序。我们可以发现,省去了太多太多的配置。就比如内置的 Tomcat 等等 。

>官方:提供了一个快速生成的网站!IDEA 继承了这个网站。

彩蛋 banner (emmmmm,哈哈哈哈哈哈,牛逼!)

在这里插入图片描述
在这里插入图片描述

哈哈哈哈哈哈嗝 ~ 。 哥们已经一阵阵 卧槽 已经喷涌而出。

SpringBoot 配置

@SpringBootApplication 定义一个:启动类

配置文件

配置文件的作用:修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们配置好了。

application.properties
语法: key = value
application.yaml
语法: key:空格 value

yaml语法(对空格要求极其高! ) ⇒ (但是,是官方推荐的一种方式):

servlet:
	prot: 8080

在这里插入图片描述

servlet语法:

<servlet>
	<prot>8080</prot>
<servlet>

properties语法
在这里插入图片描述

yaml 和 properties 对比
在这里插入图片描述

yaml 可以对实体类 / 配置类 进行 赋值 。使用 @ConfigurationProperties(prefix = "xx" ) 。将配置文件的内容,映射 到 实体类 / 配置类 之中

在这里插入图片描述

第一个 yaml 配置 成功案例

牢记application.yaml 是官方规定的,不可以随意更改哦 ~~ 。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

yaml 存在 松散绑定

在 yaml中,lastName 和 last-name 效果是一样的。后面跟着的字母默认是大写的。这就是松散绑定。

JSR 303 数据校验

@Validated ⇒ 开启数据效验
@Email( xxx ) ⇒ 测试是不是 e-mail,如果不是,则返回括号中的内容,进行返回

示例:
在这里插入图片描述

在这里插入图片描述

多环境配置以及文件位置

这个去网站上看一下吧,一大堆,目前来说不是很重要,先略过,后期补充。自己不是很常用。

访问静态资源的方式

可以通过一下方式进行访问静态资源: public , static , /**, resource

优先级:resources > static ( 默认 ) > public

那啥,兄弟看的课程,前面的源代码部门略过先,我觉得初学者应该先学会怎么用,然后熟练了再说 往源代码发展,要不然拽一堆看不懂的英文,还浪费时间,浪费精力,损耗兴趣。

用 SpringBoot 创建 Web 项目 和 Thymeleaf 模板

话不多说,直接上图

在这里插入图片描述

我们可以清楚的看到,此时此刻 创建了 一个Web 项目,和一个 Thymeleaf 模版

首页 和 图标引入 (没啥讲的,配置好自动生成。这些百度就可以解决了。略……)

但是我们还是要知道,只有 @Controller 是负责页面转跳的。别的注解可能会转跳不成功。反正咱们就按照规范的来吧!

Thymeleaf 模板引擎

默认是自带的。但是如果使用不了的话,或者有些功能用不了的话,尝试降低一下 jar 包。因为新版本可能会更改一些东西或属性。

下面演示一下 Thymeleaf 是什么。

在这里插入图片描述
在这里插入图片描述

怎么样,兄弟们,有没有一种 jstl 的感觉呢

Thymeleaf 模板(常用集合)

1)th:text:文本替换;
2)th:utext:支持html的文本替换。
3)th:value:属性赋值
4)th:each:遍历循环元素
5)th:if:判断条件,类似的还有th:unless,th:switch,th:case
6)th:insert:代码块引入,类似的还有th:replace,th:include,常用于公共代码块提取的场景
7)th:fragment:定义代码块,方便被th:insert引用
8)th:object:声明变量,一般和*{}一起配合使用,达到偷懒的效果。
9)th:attr:设置标签属性,多个属性可以用逗号分隔

MVC配置原理

在这里插入图片描述
在这里插入图片描述

如果我们要扩展 MVC,官方建议我们这么去做 !!!

在这里插入图片描述

聊一聊工作用的开发

我们在工作用的顺序

①前端设计 ⇒ 最起码要知道前端长什么样子
②设计好数据库
③数据对接接口
④前后端联调测试

那我们在工作中需要什么呢?

①我们至少需要一个前端框架,随手可以搭配出一个网站出来
②我们要有一个自己的后台模版。可以随意的拿出来使用。

SpringBoot整合JDBC

吐槽一声:这玩意真的能让我们 很简单很简单的 解决问题。先上代码。应该能看明白的。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

look,look 成果
在这里插入图片描述

SpringBoot 整合 Druid

type: com.alibaba.druid.pool.DruidDataSource

示例:
在这里插入图片描述

以下,我们将进入详细步骤(首先准备一个差不多的后端)

第一步:先去 maven 下载 依赖

在这里插入图片描述

第二步:填写配置 yml 文件

在这里插入图片描述

源码附到下面

druid:
      #SpringBoot因为默认是hikari数据源所以对于其他数据源默认是不注入这些属性的,需要手动配置
      #druid数据源专有配置
      initialSize: 5
      minIdle: 5
      maxActive: 20
      maxWait: 600000
      # 主要配置以上几个即可
      timeBetweenEvictionRunsMillis: 600000
      minEvictableIdleTimeMillis: 300000
      validationQuery: SELECT 1 FROM DUAL
      testWhileIdle: true
      testOnBorrow: false
      testOnReturn: false
      poolPreparedStatements: true

      #配置监控统计拦截的filters:stat:监控统计、self4j(使用log4j的记得导入log4j的依赖):日志记录、wall:防御sql注入 此处配置不能遗漏服务sql监控台不能监控sql

      filter:
        slf4j:
          enabled: true
        stat:
          enabled: true
          merge-sql: true
          slow-sql-millis: 5000
        wall:
          enabled: true
      #配置stat-view-servlet
      stat-view-servlet:
        enabled: true
        login-username: admin
        login-password: 123456
        reset-enable: false
      #配置web-stat-filter
      web-stat-filter:
        enabled: true
第三部:写 配置文件

在这里插入图片描述

源码附到下面

@Configuration
public class DruidConfig {
     @Bean
    @ConfigurationProperties(prefix = "spring.druid")
    public DataSource getMyDruidDataSource(){
        return new DruidDataSource();
    }

    //配置Druid的监控
    //1.配置一个管理后台的Servlet
    @Bean
    public ServletRegistrationBean statViewServlet(){
        // 记得加上"/druid/*",否则在进行登录页面的重定向过多而无法访问的问题(记得在Google浏览器才会报这个错)
        ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>(new StatViewServlet(),"/druid/*");
        Map<String,String> initParams = new HashMap<>();

        initParams.put("loginUsername","admin");
        initParams.put("loginPassword","123456");
        //默认是允许所有访问
        //initParams.put("allow","");
//        initParams.put("deny","192.168.31.30");
        bean.setInitParameters(initParams);
        return bean;
    }
    //2.配置一个web监控的filter
    @Bean
    public FilterRegistrationBean webStatFilter(){
        FilterRegistrationBean bean = new FilterRegistrationBean();
        bean.setFilter(new WebStatFilter());

        Map<String,String> initParams = new HashMap<>();
        //配置拦截时需要排除的请求
        initParams.put("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
        bean.setInitParameters(initParams);

        bean.setUrlPatterns(Arrays.asList("/*"));

        return bean;

    }

}

第四部:检查

让我们登录 后台 查看一下

http://localhost:8080/druid/

在这里插入图片描述

成功!

SpringBoot 整合 mybatis

话不多说,直接上图咯

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

很简单吧!!!确实省去了不少的步骤呢 。

SpringSecurity(安全)==> 因为比较重要,请在主页看一下,已单另区分开

在 WEB 开发的时候,安全永远都是第一位。

SpringSecurity 是针对 Spring 项目的安全框架,也是从 SpringBoot 底层安全默认的选型

SpringSecurity 的主要两个目标是:认证 和 授权

导入的maven:

  <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>5.1.4.RELEASE</version>
        </dependency>
  1. 继承 WebSecurityConfigurerAdapter
  2. @EnableWebSecurity ⇒ 开始 web 安全 ⇒ 启动类

shiro ⇒ 和 SpringSecurity 在一篇文档,主页可以找

Swagger

什么是 Swagger(这个就可以百度了呢,我不怎么喜欢 用这个,抱歉)

号称世界上最流行的 API 框架。

直接运行,支持在线测试 API 接口。

支持多种语言。

异步任务

也就是异步,这个理解起来应该很简单,以前的笔记有记载,Springboot 的开启方式更简单。

①开启异步

在这里插入图片描述

② 给方法上面添加异步

在这里插入图片描述

就这么简单,hhhhh ~~ 。

定时任务

开启定时功能的
@EnableScheduling
给方法上面添加注解
@Scheduled(cron = "秒 分 小时 日 月 星期")

任务调度就是这么简单。重点是了解一下 cron表达式

具体的 cron 表达式,百度一下,很简单的 ~~,多看看例子,就可以总结出来,网上有很多的示例。

分布式 Dubbo + Zookeeper

保存一下,1天之内更新,嘿嘿


http://www.kler.cn/a/325436.html

相关文章:

  • PHP代码审计 --MVC模型开发框架rce示例
  • 躺平成长-人工智能进行编程-(12)
  • wordpress使用相关
  • 论文笔记 SuDORMRF:EFFICIENT NETWORKS FOR UNIVERSAL AUDIO SOURCE SEPARATION
  • Ubuntu24 上安装搜狗输入法
  • 代码随想录算法训练营第四十八天|Day48 单调栈
  • 锐捷—NAT地址映射+IPsec隧道
  • 使用openpyxl轻松操控Excel文件
  • C++学习笔记(48)
  • grafana加载缓慢解决方案
  • 初学playbook,从一个简单的示例开始。
  • Vue前端浏览器指纹获取:数字世界的身份密码
  • linux常见指令与权限【第四课】
  • C语言基本语法————基本数据类型、变量与常量
  • HDFS组件相关问题-持续更新
  • Growthly Quest 增长工具:助力 Web3 项目实现数据驱动的增长
  • RTE 大会报名丨AI 时代新基建:云边端架构和 AI Infra ,RTE2024 技术专场第二弹!
  • 【在Linux世界中追寻伟大的One Piece】进程间通信
  • 在Windows on Arm上使用Electron构建桌面应用
  • Rust和Go谁会更胜一筹
  • Day28笔记-Python自动化操作Word
  • Redis结合Caffeine实现二级缓存:提高应用程序性能
  • 计算机组成原理之数制与编码
  • 交通标志与路面标识检测系统源码分享
  • linux 系统磁盘空间查看与清理
  • 基于nodejs+vue的旅游管理系统