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 等等 。
彩蛋 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>
- 继承 WebSecurityConfigurerAdapter
- @EnableWebSecurity ⇒ 开始 web 安全 ⇒ 启动类
shiro ⇒ 和 SpringSecurity 在一篇文档,主页可以找
Swagger
什么是 Swagger(这个就可以百度了呢,我不怎么喜欢 用这个,抱歉)
号称世界上最流行的 API 框架。
直接运行,支持在线测试 API 接口。
支持多种语言。
异步任务
也就是异步,这个理解起来应该很简单,以前的笔记有记载,Springboot 的开启方式更简单。
①开启异步
② 给方法上面添加异步
就这么简单,hhhhh ~~ 。
定时任务
开启定时功能的
@EnableScheduling
给方法上面添加注解
@Scheduled(cron = "秒 分 小时 日 月 星期")
任务调度就是这么简单。重点是了解一下 cron表达式
具体的 cron 表达式,百度一下,很简单的 ~~,多看看例子,就可以总结出来,网上有很多的示例。
分布式 Dubbo + Zookeeper
保存一下,1天之内更新,嘿嘿