10 高级特性
1 ProfileProfile功能为了方便多环境适配,springboot简化了profile功能。 application-profile功能● 默认配置文件 application.yaml;任何时候都会加载● 指定环境配置文件 application-{env}.yaml● 激活指定环境 ○ 配置文件激活 ○ 命令行激活:java -jar xxx.jar –spring.profiles.active=prod –person.name=haha ■ 修改配置文件的任意值,命令行优先● 默认配置与环境配置同时生效● 同名配置项,profile配置优先 @Profile条件装配功能@Configuration(proxyBeanMethods = false)@Profile(“production”)public class ProductionConfiguration { // ... } Profile 分组功能spring.profiles.group.production[0]=proddbspring...
09 指标监控
1 简介概念未来每一个微服务在云上部署以后,我们都需要对其进行监控、追踪、审计、控制等。SpringBoot就抽取了Actuator场景,使得我们每个微服务快速引用即可获得生产级别的应用监控、审计等功能。 引入1234<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId></dependency> 2 使用简单使用 暴露指标 123456management: endpoints: enabled-by-default: true #暴露所有端点信息 web: exposure: include: '*' #以web方式暴露 访问界面 12345http://localhost:8080/actuator/beanshttp://localhost:8080/actu...
11 启动过程
1 springboot的启动过程springcontext.run到底干了什么 SpringApplication.run()到底干了什么 服务构建调用SpringApplication的静态run方法。通过一系列配置创建SpringApplication类。 初始化资源加载器 初始化服务类型 初始化spring.factories中定义的初始化类。包括Initializer和Listener 找到启动类 12345678910111213141516171819202122/** * Create a new {@link SpringApplication} instance. The application context will load * beans from the specified primary sources (see {@link SpringApplication class-level} * documentation for details). The instance can be customi...
06 Web开发5-原生组件
0 概述使用的标准方法 1234@ServletComponentScan(basePackages = "com.atguigu.admin") :指定原生Servlet组件都放在那里@WebServlet(urlPatterns = "/my"):效果:直接响应,没有经过Spring的拦截器?@WebFilter(urlPatterns={"/css/*","/images/*"})@WebListener WebServlet1234567891011@WebServlet(urlPatterns = "/path2/*")public class MyServlet extends HttpServlet { @Override protected void doGet (HttpServletRequest req, HttpServletResponse resp) throws ServletException...
06 web开发3-文件上传
文件上传 设置文件上传的表单 1234<form method="post" action="/upload" enctype="multipart/form-data"> <input type="file" name="file"><br> <input type="submit" value="提交"></form> 在服务端接收文件上传的参数。 1234567891011121314151617181920212223242526272829303132333435/** * MultipartFile 自动封装上传过来的文件 * @param email * @param username * @param headerImg * @param photos * @return */@PostMapping("/upload")publ...
06 web开发2-拦截器
拦截器1 Servlet中的FilterServlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是设置字符集、控制权限、控制转向、做一些业务逻辑判断等。 Filter有如下几个用处。 在HttpServletRequest到达Servlet之前,拦截客户的HttpServletRequest。 根据需要检查HttpServletRequest,也可以修改HttpServletRequest头和数据。 在HttpServletResponse到达客户端之前,拦截HttpServletResponse。 根据需要检查HttpServletResponse,也可以修改HttpServletResponse头和数据。 Filter有如下几个种类。 用户授权的Filter:Filter负责检查用户请求,根据请求过滤用户非法请求。 日志Filter:详细记录某些特殊的用户请求。 负责解码的Filter:包括对非标准编码的请求解码。 能改变XML内容的XSLT Filter等。 Filter可以负责拦截多个请求或响应;一个请求或响应也...
06 web开发4-异常处理
1 机制1、默认规则 默认情况下,Spring Boot提供/error处理所有错误的映射 对于机器客户端,它将生成JSON响应,其中包含错误,HTTP状态和异常消息的详细信息。对于浏览器客户端,响应一个“ whitelabel”错误视图,以HTML格式呈现相同的数据 要对其进行自定义,添加View解析为error 要完全替换默认行为,可以实现 ErrorController 并注册该类型的Bean定义,或添加ErrorAttributes类型的组件以使用现有机制但替换其内容。 error/下的4xx,5xx页面会被自动解析; 2、定制错误处理逻辑 自定义错误页 error/404.html error/5xx.html;有精确的错误状态码页面就匹配精确,没有就找 4xx.html;如果都没有就触发白页。抛出异常给Tomcat捕获异常forward到error视图进行处理,由BasicErrorController处理(springboot底层自动注册的error视图) @ControllerAdvice+@Excep...
14 Servlet容器
Servlet容器、Http服务器:Servlet、Tomcat、SpringMVC的关系 参考文章https://blog.csdn.net/cristianoxm/article/details/121268913 1. Servlet概念 servlet就是一个接口;接口就是规定了一些规范,使得一些具有某些共性的类都能实现这个接口,从而都遵循某些规范。有的人往往以为就是servlet直接处理客户端的http请求,其实并不是这样,servlet并不会去监听8080端口;直接与客户端打交道是“容器”,比如常用的tomcat。客户端的请求直接打到tomcat,它监听端口,请求过来后,根据url等信息,确定要将请求交给哪个servlet去处理,然后调用那个servlet的service方法,service方法返回一个response对象,tomcat再把这个response返回给客户端。 简而言之,就是说S...
01 基本概念
1 概述简介Prometheus 就是一个时序数据库,每隔一段时间收集一次数据,连起来就是一段时间的监控数据。 一种多维数据模型,其中包含通过 metric 名称和键/值对标识的时间序列数据 可利用各种维度的灵活的查询语句 PromQL 不依赖分布式存储;单服务节点是自治的 时间序列通过 HTTP 拉取方式进行收集 支持通过中间网关推送时间序列 通过服务发现或静态配置发现目标 多种图形和仪表板支持模式 架构 Prometheus 服务器Prometheus Server 是 Prometheus组件中的核心部分,负责实现对监控数据的获取,存储以及查询。 NodeExporter 业务数据源业务数据源通过 Pull/Push 两种方式推送数据到 Prometheus Server。 AlertManager 报警管理器Prometheus 通过配置报警规则,如果符合报警规则,那么就将报警推送到 AlertManager,由其进行报警处理。 可视化监控界面Prometheus 收集到数据之后,由 WebUI 界面进行可视化图标展示。目前我们可以通过自...
02 快速开始
快速开始1 Prometheus 从https://prometheus.io/download/找到最新版本的Prometheus Sevrer软件包: 12345export VERSION=2.4.3curl -LO https://github.com/prometheus/prometheus/releases/download/v$VERSION/prometheus-$VERSION.darwin-amd64.tar.gztar -xzf prometheus-${VERSION}.darwin-amd64.tar.gzcd prometheus-${VERSION}.darwin-amd64 Promtheus作为一个时间序列数据库,其采集的数据会以文件的形式存储在本地中,默认的存储路径为data/ .用户也可以通过参数–storage.tsdb.path=”data/“修改本地数据存储的路径。启动命令如下 1./prometheus mac brew 安装 12345678 98...














