前言:看到这篇博客的小可爱们,这篇博客是我自己从0到实战的笔记,后面我会附上我整个过程的源码给大家参考,一起加油把。
同时,这是上一篇博客,SpringBoot详解,完整版。从0到1!(持更 的第二部分,因为一下写完实在是太长,阅读起来不友好(既然写了,我就想给大家最好的阅读体验,也希望大家多多指点👀)
不在废话进入正题:想看前半部分的 传送门
我把综合示例放到另一个里面。传送门:https://blog.csdn.net/qq_44850489/article/details/109313589
spring boot从0到实战
- 十八:spring boot继承redis
- 1,首先说明redis是什么东西:
- 2,在pom.xml中引入redis依赖,
- 3,主要是在service层。
- 4,哨兵模式
- 十九:dubbo以及Zookeeper的安装
- Zookeeper的安装:这是注册中心,相当于连接前后台。
- 002: 安装dubbo ,只是一个监控平台。
- 003: 打包成jar包之后,双击jar包运行,如果没有启动zookeeper的话会一直报错,但是程序不会停止,因为它是一个监控中心,启动Zookeeper之后,访问localhost:7001 默认端口,默认登录账号密码是 root root
- 01:dubbo的提供者
- 02:dubbo的消费者
- 二,配置dubbo配置。
- 二十:Springboot使用拦截器
- 二十一:Springboot使用Servlet
- 1.通过注解
- 方法二: 编写一个普通的servlet 在写一个配置类
- 二十二:Springboot使用Filter
- 方法一:与使用Servlet对应 filter过滤器 ,要在启动类上扫描一下,
- 方法二: 用一个普通的filter,用配置类,把这个filter注入进来。
- 二十三:Springboot配置字符编码
- 第一种方式: 利用spring提供的字符编码过滤器
- 方式二:在application.properties中配置字符编码
- 二十四:Springboot 非web应用程序
- 二十五:Springboot日志Logo处理
- 二十六:Springboot部署war包
- 二十七:springboot继承Thymelef
- 二十八:springboot的服务监控
- 二十九:springboot综合示例
十八:spring boot继承redis
1,首先说明redis是什么东西:
redis是数据库,用来管理缓存(很重要,很火的一门技术,几乎是java后端面试必备),我这里只讲如何在spring boot项目里继承,坦白说,220-10-27 我还没有系统的学习到redis,我是学这个springboot接触到的。推荐一个redis数据库可视化工具:RedisDesktopManager 。网上可以找到,如果有人需要,可以私信我,如果人多我会封装好发出来,这里就不去弄这些了,我们继续。
2,在pom.xml中引入redis依赖,
在配置文件中配置上数据库的信息,然后就可以再类中注入。
3,主要是在service层。
我们可以先判断redis中有无要查询的数据,有的话直接返回。没有的话再从数据库中取出,然后放到redis中。
同时要注意,有一些添加功能之后,比如总数已经发生改变,但是我们redis缓存中的数据并没有改变。所以需要我们将数据重新添加到redis中,完成数据的更新。
4,哨兵模式
只需要改一下这个配置就可以,就是redis可能并没有在一个电脑上,我们可能多个集群起来使用,(大广都是这样搞,还是在linux上)
关于redis就说这么多,现在还用不到,在最后的实战中,里面会有一个使用的demo
十九:dubbo以及Zookeeper的安装
Zookeeper的安装:这是注册中心,相当于连接前后台。
安装方法: 到官网下载 带有bin的版本,在conf文件中 复制zoo_sample 然后更名为zoo。再到bin目录下,以管理员身份运行,zkServer.cmd。
(同样如果找不到可以找我要)
可以运行 zkCli.cmd客户端。看是否启动成功。
002: 安装dubbo ,只是一个监控平台。
本身就是一个mvn springboot项目
安装方法:到官网下载 然后在目录中cmd
执行mvn clean package -Dmaven.test.skip=true 是mvn的打包命令,第一次打包比较慢,clean是先清除配置, -Dmaven.test.skip=true是跳过测试,测试时更慢的。
003: 打包成jar包之后,双击jar包运行,如果没有启动zookeeper的话会一直报错,但是程序不会停止,因为它是一个监控中心,启动Zookeeper之后,访问localhost:7001 默认端口,默认登录账号密码是 root root
pom.xml
<!--Dubbo集成SpringBoot框架起步依赖--><dependency><groupId>com.alibaba.spring.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>2.0.0</version></dependency><!--zookeeper注册中心--><dependency><groupId>com.101tec</groupId><artifactId>zkclient</artifactId><version>0.10</version><!--过滤掉log4j的依赖包--><exclusions><exclusion><groupId>log4j</groupId><artifactId>log4j</artifactId></exclusion><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></exclusion></exclusions></dependency>
.properties 配置文件
#内嵌的服务端口号
server.port=8081#redis配置
spring.redis.host=127.0.0.1
spring.redis.port=6379#dubbo配置
spring.application.name=01-springboot-all-provider
spring.dubbo.appname=01-springboot-all-provider
spring.dubbo.registry=zookeeper://192.168.43.230:2181#配置数据库连接
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/springdb?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
配置完成时候,dubbo 和zookeeper将项目分为三部分:我在最后的实战中将他分为三个模块
01:dubbo的提供者
dubbo注解,service类用dubbo的@service 还有@Componet注解
在启动类中开启@EnableDubboConfiguration 开启dubbo的自动配置
就是识别出来里面的注解,然后自动配置
02:dubbo的消费者
消费者也是springboot项目,第一步,加依赖springboot继承dubbo的起步依赖
二,配置dubbo配置。
在properties 三加入zookeeper的依赖包
导入接口项目的依赖包
@Reference 引用远程服务 在main方法上开启dubbo自动配置的支持。
到这里应该很多小伙伴都倒下了,不管你倒没倒(我倒了),如果一两天都没搞出来,就继续往下学,最后的实战一用就站起来了。
二十:Springboot使用拦截器
拦截器这种东西就不用多说了吧(如果需要可以自行百度,这个解释很多)。我们看看spring boot里面如何实现
拦截器做继承,没有业务逻辑 实现一个接口 HandlerInterceptor 实现里面的方法,
逻辑代码按照之前的去写就可以。
写一个配置类,WebConfig 继承一个类 WebMvcConfigurerAdapter,实现add。。方法
注册登录拦截器,里面写可拦截的路径,不拦截的路径。
配置类,加注解@Configuration 注解,表示是一个配置类
(我写的代码demo实在是难以找到,先混个面熟,等会实例就用到了)
二十一:Springboot使用Servlet
1.通过注解
在mian上面继承
方法二: 编写一个普通的servlet 在写一个配置类
把这个servlet配置到里面去添加配置注解
@Configuration springboot没有xml,这个注解就可以表示是spring的一个xml文件
里面加一个注解@Bean 等价于看成是配置文件
二十二:Springboot使用Filter
方法一:与使用Servlet对应 filter过滤器 ,要在启动类上扫描一下,
方法二: 用一个普通的filter,用配置类,把这个filter注入进来。
有些现有的过滤器实现不了某些功能,所以可以利用添加一个拦截器来实现一些特定的功能
二十三:Springboot配置字符编码
第一种方式: 利用spring提供的字符编码过滤器
在Config里面设置上,
properties在spring.thhp.encoding.enabled=false 后,过滤器才会生效。
方式二:在application.properties中配置字符编码
在application.properties中配置字符编码
推荐方式
二十四:Springboot 非web应用程序
方式一:创建一个springboot项目,不勾选web,然后写一个service,在启动类中获取service对象调用。
方式二:在入门类实现CommandLineRuner接口,实现里面的方法,实现的这个方法相当于纯java程序的main方法。
那么原来的入口类还是要,它是启动springboot容器,可以吧启动语句方法这个实现方法中。启动之后,会将类放到容器中,那么可以在实现的那个方法里注入@Auowired
二十五:Springboot日志Logo处理
关掉每次启动时 LOGO的输出
在启动类中关闭
二十六:Springboot部署war包
入口方法继承SprinBootServletInitializer类
覆盖里面的方法。
将pom.xml文件中的jar改成war
配置springboot打包插件
在里面写一个controller,调用json和jsp
依赖中加入 tomcat对jsp的解析包,依赖的jar包,start包三个
二十七:springboot继承Thymelef
Thymeleaf它是基于HTML 是一个流行的模板引擎,以HTML为载体。
#request请求,在方法参数里面放置一个request,然后在request.setAttribute();放数据,就可以在页面中取。
二十八:springboot的服务监控
在xml文件中导入:
org.springframework.boot spring-boot-starter-actuator在properties中配置文件中指定的监控的http端口
如果不指定,则使用和server相同的端口 比如:
服务运行端口: server.prot=8080
@actuator 监控的端口可配可不配
managent.server.port=8100
managent.server.servlet.context-path=/03-springboot-web
#默认只开启health和info,设置为*,则包括所有web入口端口
management.endpoints.web.exposure.include=*
二十九:springboot综合示例
最最最激动人心的时刻来了,篇幅太长,我把综合示例放到另一个里面。传送门:https://blog.csdn.net/qq_44850489/article/details/109313589