SpringBoot
2021-07-19 15:16:00 0 举报
AI智能生成
登录查看完整内容
此思维导图为本人在学习springboot过程中为了方便复习所作
作者其他创作
大纲/内容
简化Spring应用的初始搭建以及开发过程
简介
底层是Configuration,也就是对spring原生注解的封装
@SpringBootConfiguration
此注解为开启自动装配功能,spring会在自己的类路径下找到所有配置的bean进行装配
@EnableAutoCOnfigration
开启自动扫描,默认扫描的是启动类同级的类或者同级包下的所有类
@ComponentScan
@SpringBootApplication
总的来说:Spring自动装配原理利用了SpringFactoriesLoader来加载META-INF/spring.factories文件里的所有配置的EnableAutoConfiguration,通过start启动器判断是否生效,最后确定要装配的类
1、SpringBoot启动时会加载大量的自动配置类
2、检查所需功能有没有在SpringBoot默认写好的自动配置类当中
3、检查自动配置类当中到底配置了哪些组件
4、给容器自动配置类添加组件的时候,会从properties类中获取某些属性,我们只需要在配置文件中给这些属性赋值即可
精髓有四
自动装配原理
不仅仅知识一个简单的main()方法,启动会开启服务
run()方法
1、推断应用的类型是普通的项目还是web项目
2、查找并加载所有可用初始化器,设置到initializers属性中
3、找出所有的应用程序监听器,设置到listeners属性中
4、推断并设置main方法的定义类,找到运行的主类
启动类主要做了四件事情:
主启动类SpringApplication
初识SpringBoot
YAML 是 “YAML Ain’t a Markup Language”(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)
1、大小写敏感
2、使用缩进表示层级关系
3、缩进时不允许使用tab键,只允许空格缩进
4、缩进的空格数不重要,只要相同层级的元素左对齐即可
5、注释方法:#
基本语法
对象键值对使用冒号结构表示 key: value,注意冒号后面需要加一个空格
对象
以-开头的行表示构成一个数组
数组
数据类型
YAML
JSR-303 是 JAVA EE 6 中的一项子规范,叫做 Bean Validation,官方参考实现是Hibernate Validator。
1、在需要校验的属性的类上添加注解:@Validated
2、在需要的校验的属性上添加注解,比如邮件格式:@Email
使用方法
JSR303校验
thymeleaf是一款用于渲染XML/XHTML/HTML5内容的模板引擎。类似JSP,Velocity,FreeMaker等, 它也可以轻易的与Spring MVC等Web框架进行集成作为Web应用的模板引擎。与其它模板引擎相比, Thymeleaf最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个Web应用。
Thymeleaf选用html作为模板页,这是任何一款其他模板引擎做不到的!Thymeleaf使用html通过一些特定标签语法代表其含义,但并未破坏html结构,即使无网络、不通过后端渲染也能在浏览器成功打开,大大方便界面的测试和修改。
1、动静分离
Thymeleaf提供标准和Spring标准两种方言,可以直接套用模板实现JSTL、 OGNL表达式效果
2、开箱即用
Springboot官方大力推荐和支持,Springboot官方做了很多默认配置,开发者只需编写对应html即可,大大减轻了上手难度和配置复杂度。
3、SpringBoot官方推荐
优点
引入Thymeleaf依赖
在需要操作的html界面中添加命名空间:xmlns:th=\"http://www.thymeleaf.org\"
Selection Variable Expressions: *{...}:选择表达式:和${}在功能上是一样
Message Expressions: #{...}:获取国际化内容
Link URL Expressions: @{...}:定义URL
Fragment Expressions: ~{...}:片段引用表达式
语法
使用
Thymeleaf模板引擎
application.properties 主配置文件
application-test.properties 代表测试环境配置
application-dev.properties 代表开发环境配置
环境种类
#比如在配置文件中指定使用dev环境,我们可以通过设置不同的端口号进行测试;#我们启动SpringBoot,就可以看到已经切换到dev下的配置了;spring.profiles.active=dev
激活方法
优先级1、项目路径下的config文件夹配置文件
优先级2、项目路径下的配置文件
优先级3、资源路径下的config文件夹配置文件
优先级4、资源路径下的配置文件
配置文件加载的优先级
多环境切换
在编写类或者配置文件时,\"classpath:\"就代表我们的资源文件夹Resources
优先级1、\"classpath:/META-INF/resources/\"
优先级2、\"classpath:/resources/\"
优先级3、\"classpath:/static/\"
优先级4、classpath:/public/\"
静态资源加载优先级
加载优先级最高的静态资源文件下的index.html页面
首页加载
静态资源处理
在SpringBoot中默认的数据源为:class com.zaxxer.hikari.HikariDataSource,HikariDataSource 号称 Java WEB 当前速度最快的数据源,相比于传统的 C3P0 、DBCP、Tomcat jdbc 等连接池更加优秀;
1、导入依赖
2、编写application.yml配置文件中连接数据库的参数,url、driver、username、password等
3、测试
整合JDBC
Java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池。Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C3P0、DBCP 等 DB 池的优点,同时加入了日志监控。Druid 可以很好的监控 DB 池连接和 SQL 的执行情况,天生就是针对监控而生的 DB 连接池。Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。Spring Boot 2.0 以上默认使用 Hikari 数据源,可以说 Hikari 与 Driud 都是当前 Java Web 上最优秀的数据源
2、在配置文件中切换数据源并配置设置项
3、导入log4j依赖
4、配置log4j.properties文件
5、为 DruidDataSource 绑定全局配置文件中的参数
Druid 数据源具有监控的功能,并提供了一个 web 界面方便用户查看,类似安装 路由器 时,人家也提供了一个默认的 web 页面。在DruidConfig类中设置 Druid 的后台管理页面,比如 登录账号、密码等配置后台管理;
配置Druid数据源监控
整合Druid
2、配置数据库连接信息
余下的就是正常使用mybatis需要编写的一些类和SQL映射文件
整合Mybatis
WebSecurityConfigurerAdapter:自定义Security策略
AuthenticationManagerBuilder:自定义认证策略
@EnableWebSecurity:开启WebSecurity模式
主要类和注解
认证(Authentication)
授权(authorization)
SpringSecurity两个主要目的
请求规则
登录页
注销功能(logout)
记住我(rememberMe)
权限管理
主要是登录是的用户名和密码核对和授权功能
认证规则
3、在html界面引入命名空间:xmlns:sec=\"http://www.thymeleaf.org/extras/spring-security\"
sec:authorize=\"!isAuthenticated()\"——条件判断,根据用户是否认证来判断是否显示内容
sec:authentication=\"name\"——提取登录用户的用户名
4、主要语法
整合SpringSecurity
SpringBoot使用
SpringBoot
收藏
0 条评论
回复 删除
下一页