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

有限公司网站建设 互成网络地址 四川合肥网站建设兼职

有限公司网站建设 互成网络地址 四川,合肥网站建设兼职,关闭wordpress用户注册,为什么小城市做不出来好的网站文章目录一、Tomcat集成1、依赖层级2、自动化配置二、Tomcat架构三、Tomcat配置1、基础配置2、属性配置类3、配置加载分析四、周期管理方法1、控制类2、核心方法使用的成本越低#xff0c;内部封装越复杂#xff1b; 一、Tomcat集成 1、依赖层级 在SpringBoot框架的web依赖… 文章目录一、Tomcat集成1、依赖层级2、自动化配置二、Tomcat架构三、Tomcat配置1、基础配置2、属性配置类3、配置加载分析四、周期管理方法1、控制类2、核心方法使用的成本越低内部封装越复杂 一、Tomcat集成 1、依赖层级 在SpringBoot框架的web依赖包中引入的是内嵌Tomcat组件基于SpringBoot的版本Tomcat集成的是9.0版本 !-- 1、项目工程依赖 -- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactIdversion2.2.5.RELEASE/version /dependency!-- 2、starter-web依赖 -- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-tomcat/artifactIdversion2.2.5.RELEASE/versionscopecompile/scope /dependency!-- 3、starter-tomcat依赖 -- dependencygroupIdorg.apache.tomcat.embed/groupIdartifactIdtomcat-embed-core/artifactIdversion9.0.31/versionscopecompile/scope /dependency2、自动化配置 在SpringBoot框架的自动配置类中Web项目中不显式更换其他服务依赖时默认提供了对Tomcat服务的管理 ConditionalOnWebApplication(type Type.SERVLET) EnableConfigurationProperties(ServerProperties.class) Import({ ServletWebServerFactoryAutoConfiguration.BeanPostProcessorsRegistrar.class,ServletWebServerFactoryConfiguration.EmbeddedTomcat.class}) public class ServletWebServerFactoryAutoConfiguration {BeanConditionalOnClass(name org.apache.catalina.startup.Tomcat)public TomcatServletWebServerFactoryCustomizer tomcatServletWebServerFactoryCustomizer(ServerProperties serverProperties) {return new TomcatServletWebServerFactoryCustomizer(serverProperties);} }二、Tomcat架构 Server代表整个Tomcat容器 Service服务器内部的中间组件将一个或多个Connector绑定到一个Engine上; Engine表示特定服务的请求处理管道接收Connector的请求并响应 Host网络主机名称 Connector连接器处理与客户端的通信 Context代表一个Web应用程序的上下文 参考Tomcat9.0版本的核心组件描述对于框架有大致的了解后再去分析集成原理会更容易把握主线逻辑 三、Tomcat配置 1、基础配置 在配置文件中对Tomcat做一些基础性的设置查看下面的配置类可以知道这些属性存在默认值 server:port: 8082 # 端口号tomcat: # Tomcat组件uri-encoding: UTF-8 # URI编码max-threads: 100 # 最大工作线程min-spare-threads: 10 # 最小工作线程2、属性配置类 在服务配置中提供多种服务器的适配像Tomcat、Jetty、Netty、Undertow从策略上看配置分为公共属性以及各种服务器的适配属性 更多配置信息可以参考完整的源码和注释说明 ConfigurationProperties(prefix server, ignoreUnknownFields true) public class ServerProperties {private Integer port;public static class Tomcat {private Charset uriEncoding StandardCharsets.UTF_8;private int maxThreads 200;private int minSpareThreads 10;} }3、配置加载分析 基于配置的属性定制化管理Tomcat服务的信息 public class TomcatWebServerFactoryCustomizerimplements WebServerFactoryCustomizerConfigurableTomcatWebServerFactory {Overridepublic void customize(ConfigurableTomcatWebServerFactory factory) {ServerProperties properties this.serverProperties;ServerProperties.Tomcat tomcatProperties properties.getTomcat();PropertyMapper propertyMapper PropertyMapper.get();customizeStaticResources(factory);} }TomcatWeb服务工厂这里在创建WebServer时使用的是Tomcat需要适当的了解一下Tomcat架构 public class TomcatServletWebServerFactory extends AbstractServletWebServerFactoryimplements ConfigurableTomcatWebServerFactory, ResourceLoaderAware {Overridepublic WebServer getWebServer(ServletContextInitializer... initializers) {Tomcat tomcat new Tomcat();Connector connector new Connector(this.protocol);connector.setThrowOnFailure(true);tomcat.getService().addConnector(connector);customizeConnector(connector);tomcat.setConnector(connector);tomcat.getHost().setAutoDeploy(false);configureEngine(tomcat.getEngine());prepareContext(tomcat.getHost(), initializers);return getTomcatWebServer(tomcat);} }四、周期管理方法 1、控制类 WebServer的简单接口只声明端口获取服务启动和停止相关方法 public interface WebServer {// 获取监听的端口int getPort();// 服务启动void start() throws WebServerException;// 服务停止void stop() throws WebServerException; }SpringBoot中Tomcat服务核心控制类通过TomcatServletWebServerFactory工厂类创建对Tomcat生命周期的管理提供了一层包装 public class TomcatWebServer implements WebServer {private final Tomcat tomcat;private final MapService, Connector[] serviceConnectors new HashMap(); }Apache组件中轻量级Tomcat启动器提供了Tomcat基础配置比如默认的Port和HostName以及生命周期管理的方法TomcatWebServer类中调用的就是该API中的具体方法 public class Tomcat {protected Server server;protected int port 8080;protected String hostname localhost;// 初始化服务public void init() throws LifecycleException {getServer();server.init();}// 启动服务public void start() throws LifecycleException {getServer();server.start();}// 停止服务public void stop() throws LifecycleException {getServer();server.stop();} }2、核心方法 2.1 初始化初始化时调用Apache-Tomcat类中启动方法 public class TomcatWebServer implements WebServer {/*** 初始化方法*/private void initialize() throws WebServerException {// 控制台日志logger.info(Tomcat initialized with port(s): getPortsDescription(false));synchronized (this.monitor) {// 调用Apache-Tomcat类中启动方法this.tomcat.start();}} }2.2 启动在初始化的方法中调用的Tomcat启动方法这里对状态进行校验并输出日志 public class TomcatWebServer implements WebServer {/*** 启动方法*/public void start() throws WebServerException {synchronized (this.monitor) {if (this.started) {return;}checkThatConnectorsHaveStarted();// 启动状态的标识this.started true;// 控制台日志logger.info(Tomcat started on port(s): getPortsDescription(true) with context path getContextPath() );}} }2.3 停止在组件生命周期的常规管理逻辑中停止服务之后进行销毁动作的执行其中自然涉及到多个状态标识的转换 public class TomcatWebServer implements WebServer {/*** 停止方法*/public void stop() throws WebServerException {synchronized (this.monitor) {// 状态变化boolean wasStarted this.started;this.started false;// Tomcat服务停止stopTomcat();this.tomcat.destroy();}} }ENDENDEND
http://www.hkea.cn/news/14424189/

相关文章:

  • 长沙网站建设+个人深圳网深圳网站开发公司
  • 莆田个人仿牌外贸网站建设万网域名注册
  • 乐从狮山网站建设wordpress 首页定制
  • 教室在线设计网站手机营销型网站建设
  • 学校网站群建设思路中国做乱的小说网站
  • 网站开发前台 后台技术免费logo设计一键生成下载
  • 长春网站建设哪个公司好动漫wordpress主题下载
  • 哪个网站是用vue做的网页代码教程
  • 网站静态页面昆明君创网络科技有限公司
  • 建筑案例网站广东注册公司在哪个网站申请
  • 制作网站需要哪些工具虚拟主机怎么使用
  • 淘宝电商平台网站扬州市广陵区建设局网站
  • 太原做网站联系方式郑州网站制作郑州网站制作
  • 网页制作与网站建设完全学习手册下载怀柔区企业网站设计机构提供
  • 遵义仁怀网站建设下载天眼查企业查询官网
  • 莆田建设信息网站基于多站点的网站内容管理平台的管理与应用
  • 网站cms是什么意思如何看待响应式网页设计
  • 移动网站制作价格wordpress首页设置错误
  • 福州仓前网站建设个人做的网站
  • 周年庆网站要怎么做淘宝客网站怎么做优化
  • 胶州网站建设培训163企业邮箱服务器怎么设置
  • 网站转化率大学网站方案设计
  • 企业网站推广的方法有搜索引擎推广网站建设销售该学的
  • dede仿手机网站模板做旅游攻略的网站
  • 石家庄搭建网站专注软件优化分享的网站
  • 2019年10月电子商务网站设计遵义专业网站建设公司电话
  • 青岛市黄岛区建设局网站泉州大型网站建设
  • 平潭综合实验区交通与建设网站苏州互联网公司工资
  • 合肥专业网站制作网站建设及维护价钱
  • 南阳网站运营摄影设计思路