第一阶段源码分析-SpringBoot
2020-07-27 22:50:37 0 举报
AI智能生成
springboot相关笔记
作者其他创作
大纲/内容
SpringBoot概念和基本应用
SpringBoot的定义:约定优于配置。SpringBoot是所有基于Spring开发的项目的起点。SpringBoot的设计是为了让你尽可能快的跑起来Spring应用程序并且尽可能减少你的配置文件。
解决中文乱码
单元测试与热部署
单元测试
添加测试依赖启动器
编写单元测试类和测试方法
热部署
添加spring-boot-devtools热部署依赖启动器
IDEA工具热部署设置
在项目任意页面中使用组合快捷键“Ctrl+Shift+Alt+/”打开Maintenance选项框,选中并打开Registry页面
全局配置文件
添加一个SpringBoot提供的配置处理器依赖
配置属性的类上添加@ConfigurationProperties(prefis = "person") //将配置文件中以person开头的属性注入到该类中
application.properties
application.yaml
使用application.yaml配置文件需要注释掉application.properties配置,因为application.properties配置文件会覆盖application.yaml配置文件
配置文件属性值的注入
使用@ConfigurationProperties注解,结合配置文件注入,必须有set方法
使用@Value注解注入,可以免去属性的set方法。但是@Value不能注入包含Map集合、对象以及YAML文件格式的行内式写法的配置文件的属性注入。
自定义配置:使用@PropertySource加载配置文件
针对于配置类的几个注解,具体说明
@Configuration注解标识当前类时一个自定义配置类,并添加Spring容器的组件,这里也可以使用传统的@Component注解
@PropertySource(“classpath:test.properties”)注解制定了自定义配置文件的位置和名称,此示例表示自定义配置文件为classpath类路径下的test.properties文件
@ConfigurationProperties(prefix="test")注解将上述自定义配置文件test.properties中以test开头的属性值注入到该配置类属性中。
如果配置类上使用的是@Compontent注解而非@Configuration注解,那么@EnableConfigurationProperties注解还可以省略
随机数设置及参数间引用
随机值设置
参数间引用,在后一个配置的属性可以直接引用已经定义过得属性,语法格式为${xx}
SpringBoot数据访问
整合Mybatis
添加Mybatis启动start依赖
使用@Mapper注解表示该类是一个Mybatis接口文件(加注在Dao文件上)
开启驼峰命名匹配映射
基于Mybatis注解的整合
配置数据源
在Dao层方法上加上对应Mybatis的@Select等注解即可
基于Mybatis的XML的整合
配置数据源
创建XML映射文件
配置Mybatis的xml配置文件的路径
配置XML映射文件中指定的实体类别名的路径
整合JPA
添加JPA的依赖启动器
编写JPA实体类
编写JPA的Dao层接口
整合Redis
添加Redis的依赖启动器
编写实体类
@RedisHash,用于指定操作实体类对象在Redis数据库中的存储空间
@Id,标识实体类主键,在Redis数据库中会默认生成字符换形式的HashKey表示唯一的实体对象id,当然也可以在数据存储时手动指定id
@Indexed,用于表示对应属性在Redis数据库中生成二级索引。使用该注解后会在Redis数据库中生成对应的二级索引,索引名称就是属性名,可以方便的进行数据条件查询。
编写Repository接口
在操作Redis数据库时编写的Repository接口文件需要继承最底层的CrudRepository接口,而不是JpaRepository,这是因为JpaRepository是Spring Boot整合JPA特有的。当然,也可以在项目pom.xml文件中同时导入Spring Boot整合的JPA依赖和Redis依赖,这样就可以编写一个继承JpaRepository的接口操作Redis数据库
Redis数据库连接配置。在项目的全局配置文件application.properties中添加Redis数据库的连接配置
SpringBoot视图技术
SpringBoot不太支持常用的JSP模版,并且没有提供对应的整合配置,
这是因为使用嵌入式Servlet容器的SpringBoot应用程序对于JSP模版存在一些限制:
这是因为使用嵌入式Servlet容器的SpringBoot应用程序对于JSP模版存在一些限制:
SpringBoot默认使用嵌入式Servlet容器以JAR包方式进行项目打包部署,这种JAR包方式不支持JSP模版。
如果使用Undertow嵌入式Servlet容器以JAR包方式进行项目打包部署,这种JAR包方式不支持JSP模版。
SpringBoot默认提供了一个处理请求路径“/error”的统一错误处理器,返回具体的异常信息。使用JSP模版时,无法对默认的错误处理器进行覆盖,只能根据SpringBoot要求在指定位置定制位置定制错误页面。
Thymeleaf
常用标签
th:insert,布局标签,替换内容到引入的文件
th:replace, 页面片段包含(类似JSP中的include标签)
th:each, 元素遍历(类似JSP中的c:forEach标签)
th:if, 条件判断,如果为真
th:unless,条件判断,如果为假
th:switch, 条件判断,进行选择性匹配
th:case, 条件判断,进行选择性匹配
th:value, 属性值修改,指定标签属性值
th:href, 用于设定链接地址
th:src, 用于设定链接地址
th:text, 用于指定标签显示的文本内容
标准表达式
变量表达式:${...}
主要用于获取上下文中的变量值
Thymeleaf为变量所在域提供了一些内置对象
#ctx:上下文对象
#vars:上下文变量
#locale:上下文区域设置
#request:(仅限Web Context)HttpServletRequest对象
#response:(仅限Web Context)HttpServletResponse对象
#session:(仅限Web Context)HttpSession对象
#ServletContext:(仅限Web Context)ServletContext对象
选择变量表达式:*{...}
和变量表达式用法类似,一般用于从选定对象而不是上下文中获取属性值,如果没有选定对象,则和变量表达式一样
消息表达式:#{...}
主要用于Thymeleaf模版页面国际化内容的动态替换和展示
链接URL表达式:@{...}
一般用于页面跳转或者资源的引入,在Web开发汇总占据着非常重要的地位,并且使用也非常频繁
片段表达式:~{...}
用来标记一个片段模版,并根据需要移动或传递给其他模版。其中,最常见的用法是使用th:insert或th:replace属性插入片段
基本使用
添加Thymeleaf依赖
在全局配置文件中配置Thymeleaf模版的一些参数
0 条评论
下一页