springboot学习笔记2106版

  • springboot 应用零配置开发
    springboot框架推荐使用注解式开发和环境配置,完全取代了原始的xml配置文件,
    注解
    声明bean注解
    @mapper持久层
    @service服务层
    @repository 持久层
    @controller 控制器
    @Component (把普通pojo实例化到spring容器中)
    注入bean注解
    @Resource
    @AutoWired
    配置类,boot没有配置文件可以有配置类
    @configuration 作用在类上,声明当前的类为一个配置类,相当于是一个xml配置文件啊
    @componentScan 自动扫描包下的注解,
    @component 注解的类实例化成bean
    @bean 作用在方法上,声明当前方法返回值是一个bean对象
    @value 获取properties配置文件的属性值

  • 程序开发的学习过程演变
    javaweb 就是servlet+jsp
    ssm 框架 简化了开发流程,但是配置文件比较复杂
    spring boot 一个框架整合项目+maven管理工具,
    spring cloud 整理多个项目,项目就是服务, 就是微服务架构,

     程序= 数据结构+算法   程序员 
     程序 = 面向对象+框架  码农 
    
     项目架构的演变 
       单体架构   一个应用将所有服务封装到了一个应用中,
       分布式  多个应用相互协调工作,
       微服务架构 应用是由一系列小服务组成而成,将应用看做服务来进行管理 ,
    
  • 第一个springboot项目 用idea来创建boot项目
    springboot学习笔记2106版_第1张图片

  • spring boot框架的原理
    自动装配:
    在pom.xml文件中有一个parent的坐标 打开源码可以看到核心依赖在父工程中,
    在引入一些boot依赖时不需要指定版本号,就因为是父项目中有版本仓库,
    启动器:
    boot的依赖都会封装到boot启动场景中,导入了什么启动器就等于导入了对应的依赖。
    springboot学习笔记2106版_第2张图片
    可以说想要使用什么功能,导入对应的启动器就好了,

    主程序:
    springboot学习笔记2106版_第3张图片

  • yaml语法讲解
    springboot学习笔记2106版_第4张图片

  • 给实体赋值的方式
    yaml可以直接给实体类赋值,
    先在实体类中定义
    springboot学习笔记2106版_第5张图片
    在配置文件中编写值
    springboot学习笔记2106版_第6张图片
    测试开始
    springboot学习笔记2106版_第7张图片
    配置文件yml和properties都可以获取值,推荐使用yml
    如果是想要得到某个值,可以使用@value
    如果是对一个javabean对象进行赋值,直接使用@configurationProperties()

  • jsr303校验
    JSR-303是基于Bean的验证,那就是需要在Bean上加注解喽,
    springboot学习笔记2106版_第8张图片
    springboot学习笔记2106版_第9张图片
    springboot学习笔记2106版_第10张图片

    springboot学习笔记2106版_第11张图片

  • 多环境配置和配置文件的位置
    配置文件的位置可以是
    project:./config/ 在项目下的config目录下
    project: ./
    classpath:/config/ 这个就是resources目录下的config目录下
    classpath:/
    以上四个地方都可以存放配置文件,
    多个环境的具体指定 设置指定环境用active来指定,
    配置文件的名字语法结构是application-{profile}.yml
    profile表示是一个环境 dev 开发 test 测试 prod生产

     ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210620103928862.png)
     还可以这样写
     ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210620104018286.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzEyMDM0OA==,size_16,color_FFFFFF,t_70)
    
  • spring boot web
    静态资源导入:
    静态资源可以存放的位置:public static resources
    动态资源存放位置是templates 存放基于模板层引擎技术的页面,是一个安全目录, 不允许直接访问,
    static目录是存放静态资源 公开可以访问,

  • thymeleaf模板引擎
    springboot项目是以jar包的形式运行,不是war包,因为boot内嵌了tomcat,boot推荐使用Thymeleaf模板引擎处理页面数据不推荐使用jsp,
    模板引擎的作用就是我们自己写一个页面,调用接口响应一些数据,有数据是动态的,写一些表达式来获取数据,有了数据和页面交给引擎来处理,引擎会把这些数据来处理放到指定位置,最终生成一个页面,不管是jsp还是thymeleaf都是模板引擎,区别就是语法会不一样,
    首先第一步先引入thymeleaf模板依赖,
    第二步在templates目录下创建页面
    第三步写接口

    总结:需要使用thymeleaf模板引擎,只需要导入依赖就可以了,boot是自动装配的,我们将html页面放到templates目录下即可,
    在这里插入图片描述
    如何使用thymeleaf页面
    第一导入标签约束 命名空间
    第二步是对标签进行数据添加springboot学习笔记2106版_第12张图片

  • thymeleaf语法
    th:text="${msg}" // 是 获 取 到 后 端 传 过 来 的 字 符 串 , t h : t e x t 是 在 标 签 中 输 出 文 本 值 , t h : u t e x t = " {}是获取到后端传过来的字符串,th:text是在标签中输出文本值, th:utext=" th:textth:utext="{msg}" //可以识别html标签的字符串
    th:each=“user: u s e r s " t h : t e x t = " {users}" th:text=" users"th:text="{user}” each是用来遍历数组的,先获取到数组,赋值给user 然后在获取user具体的值
    th:value 可以将一个值放到input标签中的value属性中
    普通变量获取用${key}
    url 数据用@{key}来获取
    片段表达式用~{key}来获取

  • thymeleaf字符串的操作
    thymeleaf提供了一些内置对象,内置对象可以直接在模板中使用,这些对象是以#号引用的,
    使用内置对象的语法:
    引用内置对象需要使用#,大部分内置对象的名称都以s结尾,strings,numbers,dates,
    示例:
    ${#strings.isEmpty(key)} 判断字符串是否为空,如果为空返回true,否则返回的是false ,
    ${#strings.contains(key,‘t’)} 判断字符串是否包含指定的内容,如果包含返回

  • 日期格式化处理
    ${#dates.format(key)} 对日期对象进行格式化处理,
    ${#dates.format(key,‘yyyy/MM/dd’)} 按照指定格式做日期转化,
    springboot学习笔记2106版_第13张图片

  • 条件判断
    th:if 条件判断,
    th:switch/th:case 显示匹配到条件数据,如果匹配到多个条件的话,只会选择第一个,
    th:case="*" 表示java中的default,就是没有case的值为true时则显示这个内容,
    springboot学习笔记2106版_第14张图片

  • 迭代遍历
    th:each 迭代器,用于循坏迭代集合
    springboot学习笔记2106版_第15张图片
    th:each的状态变量
    index:当前迭代器的索引
    count: 当前迭代对象的计数从1开始
    size:被迭代的对象的长度,
    springboot学习笔记2106版_第16张图片
    遍历map集合要注意key和value的值
    springboot学习笔记2106版_第17张图片

  • url表达式
    语法:在Thymeleaf中url的表达式语法格式是@{}
    url类型 绝对路径:
    springboot学习笔记2106版_第18张图片

  • mvc配置原理
    想要扩展bootspringmvc 比如说:拦截器,视图控制,可以创建一个配置类就是在一个类上加上@Configuration并且实现了WebMvcConfigurer这个接口才算是可以设置mvc
    想要diy一些定制化功能,只要写好这个组件,将他交给springboot后,boot会自动装配的,
    springboot学习笔记2106版_第19张图片

  • springboot项目pom.xml配置文件中 parent 设置必须是boot starter parent 依赖了这个就依赖了大部分配置,可以导入相关插件 在plugin中 比如是maven插件,
    Starter坐标是boot引入的全新坐标体系,集合了开发大部分开发场景,这里引入的坐标不像传统的maven坐标那样包含了版本号,在boot中引入starter系列坐标对应的版本库有父工程坐标统一控制,

  • boot中的热部署
    在应用运行中升级应用不需要重新启动, 热部署会自动检测有新代码改动,自动生成class文件,热部署原理是分成了两个加载器,一个加载不会改变的类,另一个去加载改变的类,
    第一添加dev tools工具 依赖,
    第二步在maven插件中添加devtools生效标记
    springboot学习笔记2106版_第20张图片
    第三步在修改配置文件,
    springboot学习笔记2106版_第21张图片

     第四步 设置idea自动检查编译,
     file-settings-compiler-build project automatically
     ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210621142234385.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzEyMDM0OA==,size_16,color_FFFFFF,t_70)
    
     设置Registry属性修改,
     ctrl+shift+alt+/  选择Registry 勾选Compiler autoMake allow when app running
     ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210621142248999.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzEyMDM0OA==,size_16,color_FFFFFF,t_70)
    

最后按ctrl+f9的自动编译,每次改完代码按一下就可以了,

  • springboot事务控制
    springboot事务支持,在操作数据库时需要事务管理,springboot应用启动时会自动进行配置,在使用时通过注解方式标注相关方法,加入事务控制,
    事务声明配置:@Transactional(propagation=Propagation.REQUIRED)

  • Spring boot全局异常处理
    在springboot应用中提供了对异常进行全局性的处理,如果没有这个全局异常处理的话,如果浏览器报错,会出现什么404,500 这些代码,用户看不懂啊
    注解如下:
    @ControllerAdvice 类上注解, 全局异常处理类
    @ExceptionHandle 是方法上的注解,
    springboot学习笔记2106版_第22张图片

  • springboot项目打包
    springboot项目在打包时需要依赖一个打包插件, 也就是说是依赖maven来进行打包的,作用就是将boot项目依赖的jar包都会被打包在项目中,如果不用这个打包,也可以打包,只是不能包含boot依赖的jar包,
    springboot学习笔记2106版_第23张图片
    打包方式 命令打包 工具打包

  • springboot项目的启动
    java -jar xxx.jar --spring.profiles.active={profile} 这个是运行boot项目的命令
    在这里插入图片描述
    在liunx系统中启动
    安装上传下载工具:yum install lrzsz -y
    上传命令:rz
    下载 :sz 文件名

springboot学习笔记2106版_第24张图片

  • springboot的日志管理
    springboot默认使用logback组件作为日志管理,在boot中不需要添加Logback的依赖,在spring-boot-starter-web中包含了Logback依赖
    logback组件读取配置是放在classpath下查找logback-test.xml ,如果没有那就找logback.xml 在没有就用自带的BasicConfiguration自动最小化配置,
    配置logback.xml

你可能感兴趣的:(苦练基本功)