Tomcat

面向对象设计原则和思想

本秂侑毒 提交于 2020-08-12 04:28:07
一 单一职责原则 1.1 单一职责原则概念 单一职责原则的英文是 Single Responsibility Principle,缩写为 SRP。这个原则的英文描述是这样的:A class or module should have a single responsibility。如果我们把它翻译成中文,那就是:一个类或者模块只负责完成一个职责(或者功能)。 一个类只负责完成一个职责或者功能。也就是说,不要设计大而全的类,要设计粒度小、功能单一的类。换个角度来讲就是,一个类包含了两个或者两个以上业务不相干的功能,那我们就说它职责不够单一,应该将它拆分成多个功能更加单一、粒度更细的类。 1.2. 类的职责是否单一如何判断 不同的应用场景、不同阶段的需求背景、不同的业务层面,对同一个类的职责是否单一,可能会有不同的判定结果。实际上,一些侧面的判断指标更具有指导意义和可执行性,比如,出现下面这些情况就有可能说明这类的设计不满足单一职责原则: 类中的代码行数、函数或者属性过多; 类依赖的其他类过多,或者依赖类的其他类过多; 私有方法过多; 比较难给类起一个合适的名字; 类中大量的方法都是集中操作类中的某几个属性。 1.3. 类的职责是否设计得越单一越好 单一职责原则通过避免设计大而全的类,避免将不相关的功能耦合在一起,来提高类的内聚性。同时,类职责单一,类依赖的和被依赖的其他类也会变少

这 30 个常用的 Maven 命令你必须熟悉!

匆匆过客 提交于 2020-08-12 03:09:48
maven 命令除了常用的几个,大部分经常记不住,整理一下,方便查询。 maven 命令的格式为 mvn [plugin-name]:[goal-name],可以接受的参数如下。 -D 指定参数,如 -Dmaven.test.skip=true 跳过单元测试; -P 指定 Profile 配置,可以用于区分环境; -e 显示maven运行出错的信息; -o 离线执行命令,即不去远程仓库更新包; -X 显示maven允许的debug信息; -U 强制去远程更新snapshot的插件或依赖,默认每天只更新一次。 常用maven命令 创建maven项目:mvn archetype:create 指定 group: -DgroupId=packageName 指定 artifact:-DartifactId=projectName 创建web项目:-DarchetypeArtifactId=maven-archetype-webapp 创建maven项目:mvn archetype:generate 验证项目是否正确:mvn validate maven 打包:mvn package 只打jar包:mvn jar:jar 生成源码jar包:mvn source:jar 产生应用需要的任何额外的源代码:mvn generate-sources 编译源代码: mvn compile

Intellij IDEA导入web项目详解(解决访问的404)

ぃ、小莉子 提交于 2020-08-12 02:12:10
开始时的首页 点击modules 点击modules界面的Paths 点击Libraries 选择lib文件 点击Facets 选择项目 这就是我404的主要原因,因为小白第一次使用idea 所以很疯狂的一直百度,到后面的google搜索,终于在经过1天半的时间找到问题了 web.xml这里要修改,默认的与web.xml位置是不同的,不知道你们的是不是,反正我的是 点击又下角的create Artifact 或者点击Artifact 然后重新点击回modules,点击Dependencies 选择好tomcat,完成 开始配置tomcat 最后点击OK 完成配置 启动tomcat 访问,访问成功 公众号 欢迎关注我的公众号“ 码上开发 ”,每天分享最新技术资讯、最优原创文章。关注获取最新资源 版权声明:本文为不会代码的小白原创文章,未经允许不得转载。 来源: oschina 链接: https://my.oschina.net/u/4382774/blog/4339768

开会时CPU 飙升100%同事们都手忙脚乱记一次应急处理过程

放肆的年华 提交于 2020-08-12 00:40:26
告警 正在开会,突然钉钉告警声响个不停,同时市场人员反馈客户在投诉系统登不进了,报504错误。查看钉钉上的告警信息,几台业务服务器节点全部报CPU超过告警阈值,达100%。 赶紧从会上下来,SSH登录服务器,使用 top 命令查看,几个Java进程CPU占用达到180%,190%,这几个Java进程对应同一个业务服务的几个Pod(或容器)。 定位 使用 docker stats 命令查看本节点容器资源使用情况,对占用CPU很高的容器使用 docker exec -it <容器ID>bash 进入。 在容器内部执行 top 命令查看,定位到占用CPU高的进程ID,使用 top -Hp <进程ID> 定位到占用CPU高的线程ID。 使用 jstack <进程ID> > jstack.txt 将进程的线程栈打印输出。 退出容器, 使用 docker cp <容器ID>:/usr/local/tomcat/jstack.txt ./ 命令将jstack文件复制到宿主机,便于查看。获取到jstack信息后,赶紧重启服务让服务恢复可用。 5.将2中占用CPU高的线程ID使用 pringf '%x\n' <线程ID> 命令将线程ID转换为十六进制形式。假设线程ID为133,则得到十六进制85。在jstack.txt文件中定位到 nid=0x85的位置,该位置即为占用CPU高线程的执行栈信息

【Spring】HandlerExceptionResolver 异常处理器工作原理分析

感情迁移 提交于 2020-08-12 00:16:15
HandlerExceptionResolver Spring 全局异常处理 常用异常处理器 DefaultErrorAttributes: 用于BasicErrorController用于错误信息视图展示 ExceptionHandlerExceptionResolver: 请求和响应参数处理异常 ResponseStatusExceptionResolver: 响应状态码异常处理: @ResponseStatus 指定特定响应码异常处理,例如设置自定义提示信息 DefaultHandlerExceptionResolver: 默认异常处理器,常见例如:HttpRequestMethodNotSupportedException、HttpMediaTypeNotSupportedException HandlerExceptionResolver工作原理 1. 自定义异常处理器 源码:org.springframework.web.servlet.DispatcherServlet.initHandlerExceptionResolvers private void initHandlerExceptionResolvers(ApplicationContext context) { this.handlerExceptionResolvers = null; if (this

windows10环境下tomcat的安装

本小妞迷上赌 提交于 2020-08-11 22:57:55
1.下载tomcat 打开官网: http://tomcat.apache.org/ 选择合适的版本下载 2.解压安装 将下载好的tomcat解压到自己安装目录下 3.配置环境变量 配置JDK环境变量此处略过,可参考 https://my.oschina.net/u/4058092/blog/4287587 在系统变量里新建变量名:CATALINA_BASE,变量值:D:\tomcat\apache-tomcat-9.0.0.M9(注:tomcat的安装路径) 在系统变量里新建变量名:CATALINA_HOME,变量值:D:\tomcat\apache-tomcat-9.0.0.M9(注:tomcat的安装路径) 在系统变量里打开PATH,添加变量值:%CATALINA_HOME%\lib;%CATALINA_HOME%\bin 打开cmd,进入tomcat下的bin目录,执行“service.bat install” 附:service卸载命令:service.bat remove 4.启动tomcat 进入tomcat安装目录下的bin目录,双击startup.bat 检测是否启动成功,打开浏览器访问localhost:8080,如出现tomcat页面,则启动成功。 来源: oschina 链接: https://my.oschina.net/u/4058092/blog

springboot1.5.9升级springboot2.0.5

大兔子大兔子 提交于 2020-08-11 22:17:16
占坑 springboot1.5.9升级springboot2.0.5 此升级只适应于参考(本公司暂时正常运行) 原文链接 官网翻译 spring-cloud 组件 springboot 版本 <version>2.0.5.RELEASE</version> springcloud 版本 <version>Finchley.RELEASE</version> eureka-server 替换 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> eureka-client 替换 2.0.X guava scope 为runtime 项目引用不到 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava<

Linux监控指定服务是否正常

谁都会走 提交于 2020-08-11 21:48:41
使用shell监控指定的页面是否正常访问,我们可以采取请求某个接口的方式,如果请求错误到达一定次数,则发送警告信息到指定手机 环境:CentOS7、Tomcat9 1. 编写shell脚本 1.1 创建个tomcatChenk.sh文件 [root@localhost ~]# vi /usr/sbin/tomcatChenk.sh 1.2 编写内容 #!/bin/sh ################################### 基本参数配置 ############################################ # 要监控的页面地址 reqUrl=http://baidu.com # 服务名称 serverName=Tomcat9-80 # 通知联系人电话 phoneNumber=13280009366 # tomcat启动路径 startTomcat=/opt/tomcat/tomcat9-80/bin/startup.sh # tomcat缓存路径 tomcatCatalina=/opt/tomcat/tomcat9-80/work/Catalina # 日志文件存放路径 checkLogPath=/opt/tomcat9-80_check_log.txt # 重试请求次数 checkNum=1 # 最大重试请求次数 maxCheckNum=5 #

idea springboot 访问jsp问题 404

主宰稳场 提交于 2020-08-11 21:17:04
前提场景:以前的大量web项目是用jsp写的,改到springcloud中templates中不支持jsp网页。 1.在resources同级目录下新建一个webapp 2.到Project Settings->Modules->Web下把webapp路径添加进去 3.在pom.xml添加jsp支持 1 <!-- jsp支持--> 2 <dependency> 3 <groupId>org.springframework.boot</groupId> 4 <artifactId>spring-boot-starter-tomcat</artifactId> 5 <scope>provided</scope> 6 </dependency> 7 8 <dependency> 9 <groupId>org.apache.tomcat.embed</groupId> 10 <artifactId>tomcat-embed-jasper</artifactId> 11 <scope>provided</scope> 12 </dependency> 4.在application.properties添加jsp访问路径 1 spring.mvc.view.prefix=/ 2 spring.mvc.view.suffix=.jsp 5.这时候看你项目的编译路径C:\Users