当前位置: 首页 > news >正文

平台网站建设教程怎么在网上卖东西

平台网站建设教程,怎么在网上卖东西,南京企业网站建设,设计素材网站千图网文章目录 一、认识Actuator1、回顾Actuator2、Actuator重要端点 二、源码分析1、Endpoint自动装配#xff08;1#xff09;自动配置入口#xff08;2#xff09;普通Endpoint自动装配#xff08;3#xff09;配置Web - Endpoint#xff08;4#xff09;注册Endpoint为M… 文章目录 一、认识Actuator1、回顾Actuator2、Actuator重要端点 二、源码分析1、Endpoint自动装配1自动配置入口2普通Endpoint自动装配3配置Web - Endpoint4注册Endpoint为Mvc映射 2、BeansEndpoint自动装配原理1自动装配类2BeansEndpoint3执行结果 3、MappingsEndpoint自动装配原理1自动装配类2MappingsEndpoint3执行结果 4、ShutdownEndpoint自动装配原理1自动装配类2ShutdownEndpoint 一、认识Actuator 1、回顾Actuator Actuator是Springboot提供运行时数据交互的规范。 它覆盖应用内心戏、环境配置、度量指标、敏感操作。 交互方式为Http Web或者JMX。 Spring Boot Actuator ——健康检查神器 2、Actuator重要端点 二、源码分析 1、Endpoint自动装配 1自动配置入口 2普通Endpoint自动装配 AutoConfiguration ConditionalOnAvailableEndpoint(endpoint EnvironmentEndpoint.class) // EnvironmentEndpoint可用 EnableConfigurationProperties(EnvironmentEndpointProperties.class)// 构建属性配置文件 public class EnvironmentEndpointAutoConfiguration {BeanConditionalOnMissingBeanpublic EnvironmentEndpoint environmentEndpoint(Environment environment, EnvironmentEndpointProperties properties,ObjectProviderSanitizingFunction sanitizingFunctions) {EnvironmentEndpoint endpoint new EnvironmentEndpoint(environment,sanitizingFunctions.orderedStream().collect(Collectors.toList()));String[] keysToSanitize properties.getKeysToSanitize();if (keysToSanitize ! null) {endpoint.setKeysToSanitize(keysToSanitize);}String[] additionalKeysToSanitize properties.getAdditionalKeysToSanitize();if (additionalKeysToSanitize ! null) {endpoint.keysToSanitize(additionalKeysToSanitize);}return endpoint;}BeanConditionalOnMissingBeanConditionalOnBean(EnvironmentEndpoint.class)ConditionalOnAvailableEndpoint(exposure { EndpointExposure.WEB, EndpointExposure.CLOUD_FOUNDRY })public EnvironmentEndpointWebExtension environmentEndpointWebExtension(EnvironmentEndpoint environmentEndpoint) {return new EnvironmentEndpointWebExtension(environmentEndpoint);}}3配置Web - Endpoint 通过自动配置类WebEndpointAutoConfiguration进行自动装配。 // org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration#webEndpointDiscoverer Bean ConditionalOnMissingBean(WebEndpointsSupplier.class) public WebEndpointDiscoverer webEndpointDiscoverer(ParameterValueMapper parameterValueMapper,EndpointMediaTypes endpointMediaTypes, ObjectProviderPathMapper endpointPathMappers,ObjectProviderOperationInvokerAdvisor invokerAdvisors,ObjectProviderEndpointFilterExposableWebEndpoint filters) {// 把所有的Web - Endpoint都搜集到return new WebEndpointDiscoverer(this.applicationContext, parameterValueMapper, endpointMediaTypes,endpointPathMappers.orderedStream().collect(Collectors.toList()),invokerAdvisors.orderedStream().collect(Collectors.toList()),filters.orderedStream().collect(Collectors.toList())); }4注册Endpoint为Mvc映射 通过自动配置类WebMvcEndpointManagementContextConfiguration注册Endpoint为Mvc映射。 通过各种方式定义的Endpoint创建为WebMvcEndpointHandlerMapping进行Web映射。 // org.springframework.boot.actuate.autoconfigure.endpoint.web.servlet.WebMvcEndpointManagementContextConfiguration#webEndpointServletHandlerMapping Bean ConditionalOnMissingBean public WebMvcEndpointHandlerMapping webEndpointServletHandlerMapping(WebEndpointsSupplier webEndpointsSupplier,ServletEndpointsSupplier servletEndpointsSupplier, ControllerEndpointsSupplier controllerEndpointsSupplier,EndpointMediaTypes endpointMediaTypes, CorsEndpointProperties corsProperties,WebEndpointProperties webEndpointProperties, Environment environment) {ListExposableEndpoint? allEndpoints new ArrayList();CollectionExposableWebEndpoint webEndpoints webEndpointsSupplier.getEndpoints();allEndpoints.addAll(webEndpoints);allEndpoints.addAll(servletEndpointsSupplier.getEndpoints());allEndpoints.addAll(controllerEndpointsSupplier.getEndpoints());String basePath webEndpointProperties.getBasePath();EndpointMapping endpointMapping new EndpointMapping(basePath);boolean shouldRegisterLinksMapping shouldRegisterLinksMapping(webEndpointProperties, environment, basePath);return new WebMvcEndpointHandlerMapping(endpointMapping, webEndpoints, endpointMediaTypes,corsProperties.toCorsConfiguration(), new EndpointLinksResolver(allEndpoints, basePath),shouldRegisterLinksMapping, WebMvcAutoConfiguration.pathPatternParser); }2、BeansEndpoint自动装配原理 1自动装配类 AutoConfiguration ConditionalOnAvailableEndpoint(endpoint BeansEndpoint.class) public class BeansEndpointAutoConfiguration {BeanConditionalOnMissingBeanpublic BeansEndpoint beansEndpoint(ConfigurableApplicationContext applicationContext) {// 创建一个BeansEndpointreturn new BeansEndpoint(applicationContext);}}2BeansEndpoint // id就是可以访问的web路径 Endpoint(id beans) public class BeansEndpoint {// 读操作 ReadOperation public ApplicationBeans beans() {MapString, ContextBeans contexts new HashMap();// 将所有容器都拿出来ConfigurableApplicationContext context this.context;while (context ! null) {// 将Bean都拿出来封装成一个ContextBeanscontexts.put(context.getId(), ContextBeans.describing(context));context getConfigurableParent(context);}// 创建一个ApplicationBeans// 返回的信息就会json格式化到响应return new ApplicationBeans(contexts); }// 返回的对象 public static final class ApplicationBeans {private final MapString, ContextBeans contexts;private ApplicationBeans(MapString, ContextBeans contexts) {this.contexts contexts;}public MapString, ContextBeans getContexts() {return this.contexts;}}3执行结果 3、MappingsEndpoint自动装配原理 1自动装配类 AutoConfiguration ConditionalOnAvailableEndpoint(endpoint MappingsEndpoint.class) public class MappingsEndpointAutoConfiguration {// 配置MappingBeanpublic MappingsEndpoint mappingsEndpoint(ApplicationContext applicationContext,ObjectProviderMappingDescriptionProvider descriptionProviders) {return new MappingsEndpoint(descriptionProviders.orderedStream().collect(Collectors.toList()),applicationContext);}// 后面还有关于Servlet的相关配置此处就先不看2MappingsEndpoint // web访问路径 Endpoint(id mappings) public class MappingsEndpoint {// org.springframework.boot.actuate.web.mappings.MappingsEndpoint#mappings ReadOperation public ApplicationMappings mappings() {ApplicationContext target this.context;MapString, ContextMappings contextMappings new HashMap();while (target ! null) {// 查找所有的MappingcontextMappings.put(target.getId(), mappingsForContext(target));target target.getParent();}return new ApplicationMappings(contextMappings);// 返回的信息就会json格式化到响应 }// org.springframework.boot.actuate.web.mappings.MappingsEndpoint#mappingsForContext private ContextMappings mappingsForContext(ApplicationContext applicationContext) {MapString, Object mappings new HashMap();this.descriptionProviders.forEach((provider) - mappings.put(provider.getMappingName(), provider.describeMappings(applicationContext)));return new ContextMappings(mappings,(applicationContext.getParent() ! null) ? applicationContext.getId() : null); } 3执行结果 4、ShutdownEndpoint自动装配原理 1自动装配类 AutoConfiguration ConditionalOnAvailableEndpoint(endpoint ShutdownEndpoint.class) public class ShutdownEndpointAutoConfiguration {Bean(destroyMethod )ConditionalOnMissingBeanpublic ShutdownEndpoint shutdownEndpoint() {return new ShutdownEndpoint();}}2ShutdownEndpoint // 默认是不开启的因为安全性要求极高 Endpoint(id shutdown, enableByDefault false) public class ShutdownEndpoint implements ApplicationContextAware {private static final MapString, String NO_CONTEXT_MESSAGE Collections.unmodifiableMap(Collections.singletonMap(message, No context to shutdown.));private static final MapString, String SHUTDOWN_MESSAGE Collections.unmodifiableMap(Collections.singletonMap(message, Shutting down, bye...));private ConfigurableApplicationContext context;// 写操作WriteOperationpublic MapString, String shutdown() {if (this.context null) {return NO_CONTEXT_MESSAGE; // 返回的信息就会json格式化到响应}try {return SHUTDOWN_MESSAGE;}finally {// 另起一个线程进行shutdown操作目的是优雅关机。Thread thread new Thread(this::performShutdown);thread.setContextClassLoader(getClass().getClassLoader());thread.start();}}private void performShutdown() {try {// 暂停500毫秒Thread.sleep(500L);}catch (InterruptedException ex) {Thread.currentThread().interrupt();}// 执行Spring容器关闭操作this.context.close();}Overridepublic void setApplicationContext(ApplicationContext context) throws BeansException {if (context instanceof ConfigurableApplicationContext) {this.context (ConfigurableApplicationContext) context;}}}
http://www.pierceye.com/news/754090/

相关文章:

  • 网站建设贰金手指科捷6构建一个网站需要什么
  • wordpress 插件下载站seo网站布局
  • 公司网站建设费用会计入账招代理的网站建设公司
  • 查询网站入口中廉建设网站
  • 在市场部做网站多少工资微网站需要域名吗
  • 做网站有没有前景WordPress 长文 阅读
  • 按揭车在哪个网站可以做贷款网页素材制作
  • 做网站公司怎样wordpress 速度优化
  • 网站建设必须要主机吗程序员外包公司是什么意思
  • 百度入口的链接seo赚钱培训
  • 利川网站建设wordpress 文章音频
  • 对电子商务网站建设与管理的理解福州市建设工程造价管理网站
  • 网站登录系统内部错误建设机械网站案例分析
  • 网络营销网站建设培训乔拓云的品牌推广方案
  • 狼雨seo网站河北省建设集团有限公司网站首页
  • 如何建双注册网站一嗨租车网站建设的功能特色
  • 陕西正天建设有限公司网站wordpress 筛选
  • 产品展示网站方案2022年国内重大新闻
  • 网站的支付接口对接怎么做深圳品牌网站建设服务
  • 哈尔滨网站快速排名网站采集被降权
  • 做网站要钱吗学校网站建设调查问卷
  • 重庆网站建设招标网站建设网站建设教程
  • 权威的广州h5网站seo网站分析工具
  • 美食网站要怎么做游戏优化大师下载安装
  • vip解析网站怎么做的做网站需要注册商标多少类
  • 一般做网站宽高多少网页调用 wordpress 图片编辑器
  • 简述网站建设的基本过程word模板免费下载网站
  • 页面好看的蛋糕网站wordpress路由插件
  • 网站建站四种方案深圳网站建设维护
  • 企业网站优化的方案游戏网页设计图片