-
2018-08-27 22:50:36
一、Servlet的三种实现方式
Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。
1、Servlet的第一种创建方式:继承HttpServlet(最优)
重写doGet(HttpServletRequest request, HttpServletResponse response)方法
重写 doPost(HttpServletRequest request, HttpServletResponse response)方法
2、Servlet创建的第二种方式:实现接口Servlet
重写getServletConfig()方法
重写 getServletInfo() 方法
重写init(ServletConfig arg0)方法
重写service(ServletRequest request, ServletResponse response)方法
重写destroy()方法
3、Servlet的第三种创建方式:继承GenericServlet类
重写service(ServletRequest request, ServletResponse response)方法
二、servlet的两种配置方式
1、第一种注解式配置 Servlet3.0及以后 :
@WebServlet(value="/hello",loadOnStartup=1)
2、第二种web.xml配置 Servlet所有版本都支持:<servlet>
<!--名称 -->
<servlet-name>hello2</servlet-name>
<!--Servlet的全称类名 -->
<servlet-class>com.abc.web.servlet.HelloServlet</servlet-class>
<!--启动的优先级,数字越小越先起动 -->
<load-on-startup>1</load-on-startup>
</servlet>
<!--映射配置 -->
<servlet-mapping>
<!--名称 -->
<servlet-name>hello2</servlet-name>
<!--资源的匹配规则:精确匹配 -->
<url-pattern>/hello2</url-pattern>
</servlet-mapping>更多相关内容 -
Springboot 静态资源路径配置的两种方法
2018-02-01 11:21:33参考学习: ...诉求:Spring Boot 默认为我们提供了静态资源处理,而有时我们需要自定义资源映射,可定义项目内部目录,也可定义外部目录。此处举例外部目录映射配置。 方法一:通过配置文件配置参考学习:
http://www.zslin.com/web/article/detail/23
http://blog.csdn.net/catoop/article/details/50501706诉求:Spring Boot 默认为我们提供了静态资源处理,而有时我们需要自定义资源映射,可定义项目内部目录,也可定义外部目录。此处举例外部目录映射配置。
方法一:通过配置文件配置
在Springboot中可以直接在配置文件中覆盖默认的静态资源路径的配置信息:
作用在application.yml或application.properties
首先系统有默认配置,其中默认配置的 /** 映射到 /static (或/public、/resources、/META-INF/resources)默认大概意思如下所示(为了和下面进行对比): spring: mvc: static-path-pattern: /** resources: static-locations: classpath:/META-INF/resources/,classpath:/resources/, classpath:/static/, classpath:/public/
定义 static-path-pattern: /** ,会覆盖默认配置,需要在static-locations添加默认的内部目录和自定义目录,应为
添加自定义外部目录并覆盖默认 spring: mvc: static-path-pattern: /** http: multipart: location: F://preview resources: static-locations: classpath:/META-INF/resources/,classpath:/resources/, classpath:/static/, classpath:/public/, file:${spring.http.multipart.location}
如果定义 static-path-pattern: /we/**,则访问static-locations里目录时都应加上”/we/”
spring.mvc.static-path-pattern 只可以定义一个,目前不支持多个逗号分割的方式,方法二:通过@Configuration配置
@Configuration public class ApplicationConfig extends WebMvcConfigurerAdapter { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { /** * 如果我们将/xxxx/** 修改为 /** 与默认的相同时,则会覆盖系统的配置,可以多次使用 addResourceLocations 添加目录, * 优先级先添加的高于后添加的。 * * 如果是/xxxx/** 引用静态资源 加不加/xxxx/ 均可,因为系统默认配置(/**)也会作用 * 如果是/** 会覆盖默认配置,应用addResourceLocations添加所有会用到的静态资源地址,系统默认不会再起作用 */ registry.addResourceHandler("/**") .addResourceLocations("classpath:/META-INF/resources/") .addResourceLocations("classpath:/resources/") .addResourceLocations("classpath:/static/") .addResourceLocations("classpath:/public/"); registry.addResourceHandler("/we/**").addResourceLocations("file:F:/preview/"); super.addResourceHandlers(registry); } }
此方法直接写在代码内,同方法一一样,可以覆盖默认配置,添加自定义映射配置,也可以只添加自定义映射配置,不覆盖默认配置。方法二比之方法一更为灵活。
-
SpringBoot 配置Mybatis两种方式
2018-08-30 09:56:32在SpringBoot结合Mybatis使用时,有的人将mapper.xml 存放到resouce的目录下,有的想把Mapper.xml 和接口放到一起,但是这样/就会存在Mapper.xml加载不了,导致方法无法找到,现在咱们看看两种方式的配置。...目前SpringBoot被各企业广泛使用,在SpringBoot结合Mybatis使用时,有的人将mapper.xml 存放到resouce的目录下,有的想把Mapper.xml 和接口放到一起,但是这样/就会存在Mapper.xml加载不了,导致方法无法找到,现在咱们看看两种方式的配置。
首先说第一种:
也就是网上说的最多的一种,添加依赖,我就不细说了。
1.在application.properties 中添加对xml中对实体对象引用的配置
2.在application.properties 添加xml在resouces目录下的位置
如下图
mybatis.type-aliases-package=com.gao.security.bean mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
目录结构如下
3.在springboot 主入口添加注解,里面值为Mapper对应的Java接口类
@MapperScan("com.gao.security.dao")
然后第一种配置方式就结束了,你可以正常使用mabatis了。
接下来,咱们再说第二种,第二种先对更简单些
优点:无需在application.properties 添加第一种的那种配置,也不用在springboot主入口添加MapperScan注解
具体配置:
1.将Mapper和Java接口存放一个目录,如下
2.只需要在pom.xml 中的build标签中添加resouce资源的配置加载src/main/java 中的xml即可,如下图
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/resources</directory> </resource> </resources> </build>
好了,现在两种方式都讲了,具体可以根据自己想法使用哪一种就可以了
-
Yarn的资源配置参数
2022-03-05 16:13:41YARN的资源调度主要针对的是内存(Memory)和CPU,并将其组合抽象成Container来管理分配。 在YARN中,资源管理由ResourceManager和NodeManager共同完成,其中,ResourceManager中的调度器负责资源的分配,而...YARN的资源调度主要针对的是内存(Memory)和CPU,并将其组合抽象成Container来管理分配。
在YARN中,资源管理由ResourceManager和NodeManager共同完成,其中,ResourceManager中的调度器负责资源的分配,而NodeManager则负责资源的供给和隔离。ResourceManager将某个NodeManager上资源分配给任务(这就是所谓的“资源调度”)后,NodeManager需按照要求为任务提供相应的资源,甚至保证这些资源应具有独占性,为任务运行提供基础的保证,这就是所谓的资源隔离。
在正式介绍具体的资源调度和隔离之前,先品味一下内存和CPU这两种资源的特点,这是两种性质不同的资源。内存资源的多少会会决定任务的生死,如果内存不够,任务可能会运行失败;相比之下,CPU资源则不同,它只会决定任务运行的快慢,不会对生死产生影响。
Memory配置
计算单台机器的Container上限值
containers = min (2*CORES, 1.8*DISKS, (Total available RAM) / MIN_CONTAINER_SIZE)
其中:
- CORES: 机器CPU核数
- DISKS: 机器上挂载的磁盘个数
- Total available RAM: 机器总内存
- MIN_CONTAINER_SIZE: Container最小的容量大小
MIN_CONTAINER_SIZE主要与机器可用的RAM有关:
单台机器可用RAM Container最小值 <4GB 256MB 4GB-8GB 512MB 8GB-24GB 1024MB >24GB 2048MB YARN配置(内存相关)
- yarn.nodemanager.resource.memory-mb
表示该节点上YARN可使用的物理内存总量,默认是8192(MB)。
注意,如果你的节点内存资源不够8GB,则需要调减小这个值,而YARN不会智能的探测节点的物理内存总量。
- yarn.nodemanager.vmem-pmem-ratio
任务每使用1MB物理内存,最多可使用虚拟内存量,默认是2.1。
- yarn.nodemanager.pmem-check-enabled
是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true。
- yarn.nodemanager.vmem-check-enabled
是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true。
- yarn.scheduler.minimum-allocation-mb
单个container可申请的最少物理内存量,默认是1024(MB),如果一个任务申请的物理内存量少于该值,则该对应的值改为这个数。
- yarn.scheduler.maximum-allocation-mb
单个container可申请的最少物理内存量,默认是1024(MB),如果一个任务申请的物理内存量少于该值,则该对应的值改为这个数。
默认情况下,YARN采用了线程监控的方法判断任务是否超量使用内存,一旦发现超量,则直接将其杀死。由于Cgroups对内存的控制缺乏灵活性(即任务任何时刻不能超过内存上限,如果超过,则直接将其杀死或者报OOM),而Java进程在创建瞬间内存将翻倍,之后骤降到正常值,这种情况下,采用线程监控的方式更加灵活(当发现进程树内存瞬间翻倍超过设定值时,可认为是正常现象,不会将任务杀死),因此YARN未提供Cgroups内存隔离机制。
CPU配置
在YARN中使用的是虚拟CPU,虚拟CPU是YARN自己引入的概念,初衷是,考虑到不同节点的CPU性能可能不同,每个CPU具有的计算能力也是不一样的,比如某个物理CPU的计算能力可能是另外一个物理CPU的2倍,这时候,你可以通过为第一个物理CPU多配置几个虚拟CPU弥补这种差异。用户提交作业时,可以指定每个任务需要的虚拟CPU个数。在YARN中,CPU相关配置参数如下:
YARN配置(CPU相关)
- yarn.nodemanager.resource.cpu-vcores
表示该节点上YARN可使用的虚拟CPU个数,默认是8,注意,目前推荐将该值设值为与物理CPU核数数目相同。
如果你的节点CPU核数不够8个,则需要调减小这个值,而YARN不会智能的探测节点的物理CPU总数。
- yarn.scheduler.minimum-allocation-vcores
单个任务可申请的最小虚拟CPU个数,默认是1,如果一个任务申请的CPU个数少于该数,则该对应的值改为这个数。
- yarn.scheduler.maximum-allocation-vcores
单个任务可申请的最多虚拟CPU个数,默认是32。
默认情况下,YARN是不会对CPU资源进行调度的,你需要配置相应的资源调度器来支持。
资源划分方式
默认情况下,NodeManager不会对CPU资源进行任何隔离,你可以通过启用Cgroups让你支持CPU隔离。
由于CPU资源的独特性,目前这种CPU分配方式仍然是粗粒度的。举个例子,很多任务可能是IO密集型的,消耗的CPU资源非常少,如果此时你为它分配一个CPU,则是一种严重浪费,你完全可以让他与其他几个任务公用一个CPU,也就是说,我们需要支持更粒度的CPU表达方式。
借鉴亚马逊EC2中CPU资源的划分方式,即提出了CPU最小单位为EC2 Compute Unit(ECU),一个ECU代表相当于1.0-1.2 GHz 2007 Opteron or 2007 Xeon处理器的处理能力。YARN提出了CPU最小单位YARN Compute Unit(YCU),目前这个数是一个整数,默认是720,由参数yarn.nodemanager.resource.cpu-ycus-per-core设置,表示一个CPU core具备的计算能力(该feature在2.2.0版本中并不存在,可能增加到2.3.0版本中),这样,用户提交作业时,直接指定需要的YCU即可,比如指定值为360,表示用1/2个CPU core,实际表现为,只使用一个CPU core的1/2计算时间。注意,在操作系统层,CPU资源是按照时间片分配的,你可以说,一个进程使用1/3的CPU时间片,或者1/5的时间片。
参考文献:
-
(7)Dubbo的四种配置方式
2018-12-11 23:23:38Dubbo共有四种配置方式:xml配置、dubbo.properties属性配置、API配置、注解配置。本节将会对这四种方式分别做下介绍,同时也会对主要的配置方式给出范例。 一:xml配置 所有配置项分为三大类,参见下表中的"... -
spring 配置国际化资源文件的两种方式
2016-09-09 19:00:21spring配置国际化资源文件的时候,需要注意的地方,自己在配置过程中,遇到了配置路径总是not found的问题。经查找资料,总结如此文所述 -
SpringBoot 静态资源映射的两种方式
2019-08-31 22:33:52一、webjars方式映射静态资源文件 我们之前使用Maven构建一个Web项目时,在main目录下会存在一个webapp的目录,我们以前都是将所有的页面或静态资源导在这个目录下,但现在使用SpringBoot项目我们应该将静态资源文件... -
MyBatis配置数据源的两种方式
2017-10-31 23:55:55---------------------siwuxie095 ... 1、配置方式一:配置数据库连接信息到核心配置文件中 在 mybatis-config.xml 中添加如下内容: version="1.0 -
Redis持久化的两种方式和配置
2017-11-10 08:45:43Redis优秀的性能是由于其将所有的数据都存储在内存中,同样memcached也是这样做的,但是为...Redis支持两种方式的持久化,一种是RDB方式,一种是AOF方式。这两种方式可以单独使用其中一种,或者混合使用。 R -
访问静态资源的两种方式:部署在Nginx项目通过nginx访问以及通过springboot项目访问
2020-07-29 15:41:50考虑到两种方案,一种是使用springboot项目直接访问外部静态资源文件(最好是不要将前端工程打包到后端项目中,前后端分离的项目估计也不会直接打包在一块吧)采用这种方式可以直接访问到页面,但是页面所加载的js文件找... -
C# 修改保存 配置文件的两种方式以及区别
2015-08-27 22:18:38第一种为 Properties.Settings.Default.参数名= 参数值; Properties.Settings.Default.Save(); 在第一次运行时会读取App.config里的初始值 但是一旦调用Save方法后,Settings里“用户”范围的属性就会... -
SpringBoot如何正确配置静态资源的访问
2020-01-18 14:56:00使用SpringBoot搭建web项目时静态资源的访问必然是一个...一、静态资源配置 SpringBoot默认从以下几个目录访问静态资源: /META-INF/resources/ /resources/ /static /public/ 以上4个默认目录中如果存在同一个静态... -
spring+hibernate 两种整合方式配置文件
2016-07-05 02:07:32之前的文章都是讲解springmvc+spring+mybatis 的整合,而很少有springmvc+spring+hibernate 因为工作的需要,最近在使用hibernate 所以下面我们来看看 spring整合hibernate的配置...spring整合hibernate 有两种方式 -
Spring bean配置的三种方式(XML、注解、Java类)
2019-03-01 17:34:56本文将详细介绍Spring Bean配置的三种不同方式的特点与使用条件。 一,Spring 的配置文件概述 其实,Spring的配置文件是Spring容器对Bean进行生产以及关系注入的图纸,他是Spring的基础。如果我们没有配置文件的话... -
配置数据源的三种方式
2018-12-03 15:12:291. 在TomCat中配置好数据源,然后使用java自带的类获取连接 使用步骤: 在D:\apache-tomcat-8.5.32\conf\server.xml 中配置好JNDI数据源 <!--配置MySQL数据库的JNDI数据源--> <Resource ... -
【Spark篇】---Spark中yarn模式两种提交任务方式
2018-02-09 16:48:06一、前述Spark可以和Yarn整合,将Application提交到Yarn上运行,和StandAlone提交模式一样,Yarn也有两种提交任务的方式。二、具体 1、yarn-client提交任务方式配置 在client节点配置中spark-env.sh添加Hadoop_... -
java:读取jar包中配置文件的几种方式
2020-02-22 11:13:59在编程的某些情况下,我们需要读取jar包中的文件,这种情况要区别于我们平时使用类加载器读取配置文件,这个时候配置在jar包中,就能读取到,但是配置文件也可以不在jar包中,只要放在Class-Path下就行了,所以这种... -
yarn资源调度参数配置
2018-07-12 22:11:27在Hadoop2.0中, YARN负责管理MapReduce中的资源(内存, CPU等)并且将其打包成Container. 这样可以精简MapReduce, 使之专注于其擅长的数据处理任务, 将无需考虑资源调度. 如下图所示 YARN会管理集群中所有机器的可用... -
springboot maven 打包的两种方式
2019-08-23 17:01:281、配置文件不外放 a、maven配置打包插件 <!--打包配置,执行mvn clean package--> <packaging>jar</packaging> <!--maven打war包依赖配置--> <!--<packaging>war<... -
springMVC对静态资源放行的两种方式
2018-08-01 10:55:311、配置对全部资源放行 <!-- 全部资源放行 --> <mvc:default-servlet-handler/> 2、对指定目录下的资源放行 <!-- 对指定目录下的静态资源放行 --> <mvc:... -
资源服务器验证Token的几种方式
2021-04-14 21:04:01资源服务器验证Token的两种方式 -
springboot访问静态资源两种情况
2020-03-07 10:46:051.springboot自身访问静态资源 ...1.在springboot项目中,访问静态资源是怎么配置的?哪里体现? springboot默认访问静态资源路径是 (1)classpath:/META-INF/resources/ (2)classpath:/resources/ (3)clas... -
页面跳转的两种方式(转发和重定向)区别及应用场景分析
2018-04-13 07:59:11作为一名程序员,特别是java web开发的程序员,在使用servlet/jsp的时候,我们必须要知道实现页面跳转的两种方式的区别和联系:即转发和重定向的区别。 1、RequestDispatcher.forward方法只能将请求转发给同一个... -
Hadoop YARN中内存和CPU两种资源的调度和隔离
2017-10-11 16:56:13Hadoop YARN同时支持内存和CPU两种资源的调度(默认只支持内存,如果想进一步调度CPU,需要自己进行一些配置),本文将介绍YARN是如何对这些资源进行调度和隔离的。 在YARN中,资源管理由ResourceManager和... -
Windows上连接Linux服务器(两种连接方式,资源不用担心)
2020-01-27 05:04:36这里提供两种连接方式 PuTTY连接 Xshell连接 不用担心资源下载,本文免费提供资源下载 一、PuTTY连接 1.1、下载PuTTY工具 官网: https://www.chiark.greenend.org.uk/~sgtatham/putty/l... -
使用 springcloud.alibaba 的Sentinel 时,进行流控规则配置时,资源名的填写方式不同造成不同的显示效果
2020-07-04 23:08:13使用 springcloud.alibaba 的Sentinel 时,在 Sentinel 控制台,进行流控规则 配置 时,资源名 有两种填写方式: 请求的 URL (对应的 @GetMapping 、RequestMapping 的 value 值) @SentinelResource 的 value 值 ...