Tomcat

精选的Spring Boot 面试题,帮你整理好了!

你。 提交于 2021-02-12 06:50:04
点击上方 成猿之路 ,选择 设为星标 优质文章,及时送达 今天跟大家分享下SpringBoot 常见面试题的知识。 1 什么是springboot ? 用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties或yml文件) 创建独立的spring引用程序 main方法运行 嵌入的Tomcat 无需部署war文件 简化maven配置 自动配置spring添加对应功能starter自动化配置 答:spring boot来简化spring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的,产品级别的应用 2 Springboot 有哪些优点? -快速创建独立运行的spring项目与主流框架集成 -使用嵌入式的servlet容器,应用无需打包成war包 -starters自动依赖与版本控制 -大量的自动配置,简化开发,也可修改默认值 -准生产环境的运行应用监控 -与云计算的天然集成 3 如何重新加载Spring Boot上的更改,而无需重新启动服务器? 这可以使用DEV工具来实现。通过这种依赖关系,您可以节省任何更改,嵌入式tomcat将重新启动。 Spring Boot有一个开发工具(DevTools)模块,它有助于提高开发人员的生产力。Java开发人员面临的一个主要挑战是将文件更改自动部署到服务器并自动重启服务器。

HikariCP

江枫思渺然 提交于 2021-02-12 03:13:51
数据库连接池技术 数据库连接池负责分配、管理和释放数据库的连接。 数据库连接复用。重复使用现有的数据库连接,可以避免连接频繁建立、关闭的开销。 统一的连接管理。释放空闲时间超过最大空闲时间的数据库连接,避免因为没有释放数据库连接而引起的数据库连接泄漏。 HikariCP 字节码精简:优化代码,直到编译后的字节码最少,这样,CPU缓存可以加载更多的程序代码; 优化代理和拦截器:减少代码,例如HikariCP的Statement proxy只有100行代码,只有BoneCP的十分之一; 自定义数组类型(FastStatementList)代替ArrayList:避免每次get()调用都要进行range check,避免调用remove()时的从头到尾的扫描; 自定义集合类型(ConcurrentBag):提高并发读写的效率; 其他针对BoneCP缺陷的优化,比如对于耗时超过一个CPU时间片的方法调用的研究(但没说具体怎么优化)。 数据库连接中断的情况测试: HikariCP:等待5秒钟后,如果连接还是没有恢复,则抛出一个SQLExceptions 异常;后续的getConnection()也是一样处理; C3P0:完全没有反应,没有提示,也不会在“CheckoutTimeout”配置的时长超时后有任何通知给调用者;然后等待2分钟后终于醒来了,返回一个error; Tomcat

用nodejs搭建代理服务器

邮差的信 提交于 2021-02-11 20:34:35
题图 From 极客时间 From Clm 前端开发者在工作中常常遇到跨域的问题,一般我们遇到跨域问题主要使用以下办法来解决: 1、jsonp 2、cors 3、配置代理服务器。 jsonp不是很灵活,只能发送get请求,不能发送psot请求,而cors虽然可以支持多种请求格式,但是如果请求携带cookie的话,还需要服务端和客户端分别配置一下,个人感觉也很麻烦。 相对于前两种,使用代理服务器解决跨域问题就简单了好多。 浏览器由于同源策略的原因,不同域名之间发送ajax请求,响应的数据不会被浏览器加载。而服务器向服务器发送请求则没有同源策略的限制。 下图便是代理服务器的原理了: 代理服务器只是起一个中转作用,配置代理服务器的方法有很多种,比如利用apache、nginx、tomcat等等,今天给大家介绍的是用nodejs配置代理服务器,用nodejs配置代理服务器,我们需要借助两个npm包,一个是web开发框架 express ,一个是express中间件 http-proxy-middleware 。 首先第一步我们先用express搭建两个服务器,一个静态资源服务器端口号为3000,一个接口服务器端口号为5000,静态资源服务器代码如下: var express = require ( 'express' ); var app = express(); app.use

主流数据库连接池性能比较 hikari druid c3p0 dbcp jdbc

♀尐吖头ヾ 提交于 2021-02-11 18:55:27
背景 对现有的 数据库 连接池做调研对比,综合性能,可靠性,稳定性,扩展性等因素选出推荐出最优的数据库连接池 。 NOTE: 本文所有测试均是 MySQL 库 测试结论 1:性能方面 hikariCP>druid>tomcat-jdbc>dbcp>c3p0 。hikariCP的高性能得益于最大限度的避免锁竞争。 2:druid功能最为全面,sql拦截等功能,统计数据较为全面,具有良好的扩展性。 3:综合性能,扩展性等方面,可考虑使用druid或者hikariCP连接池。 4:可开启prepareStatement缓存,对性能会有大概20%的提升。 功能对比 功能 dbcp druid c3p0 tomcat-jdbc HikariCP 是否支持PSCache 是 是 是 否 否 监控 jmx jmx/log/http jmx,log jmx jmx 扩展性 弱 好 弱 弱 弱 sql拦截及解析 无 支持 无 无 无 代码 简单 中等 复杂 简单 简单 更新时间 2015.8.6 2015.10.10 2015.12.09 2015.12.3 特点 依赖于common-pool 阿里开源,功能全面 历史久远,代码逻辑复杂,且不易维护 优化力度大,功能简单,起源于boneCP 连接池管理 LinkedBlockingDeque 数组 FairBlockingQueue

Cannot start a Tomcat v9.0 server in eclipse

假如想象 提交于 2021-02-11 15:40:29
问题 I have a problem starting my first Java Spring application, when simply trying to run my project, im given the following error: Apr 19, 2020 9:41:31 PM org.apache.catalina.startup.VersionLoggerListener log INFO: Server version name: Apache Tomcat/9.0.34 Apr 19, 2020 9:41:31 PM org.apache.catalina.startup.VersionLoggerListener log INFO: Server built: Apr 3 2020 12:02:52 UTC Apr 19, 2020 9:41:31 PM org.apache.catalina.startup.VersionLoggerListener log INFO: Server version number: 9.0.34.0 Apr

Java - Tomcat: Reload context.xml without restarting server

泪湿孤枕 提交于 2021-02-11 15:19:28
问题 I'm using spring mvc and tomcat as a server. I want to be able to change a jndi field that is Autowired(as String): <jee:jndi-lookup id="someMessage" jndi-name="someMessage"/> in one of the my services, that is referenced to conf/context.xml of Tomcat, that looks something like this: <Environment name="someMessage" value="Change this." type="java.lang.String" />. However, when I change the value on context.xml, this change is not reflected on my service managed by spring, unless I restart

Eclipse Server Services encounters an error

末鹿安然 提交于 2021-02-11 14:36:26
问题 Note: Yes I have followed all of the other similar issues, I've downloaded 10+ .jars and tossed them into the lib file. nothing worked. Note2: I am using eclipse 2020, jdk1.8, tomcat7.0.107, axis2-1.7.9 I have no idea what I'm doing but my university teacher says I need to follow this YouTube guide from 2014 for my 2021 IWS class. https://www.youtube.com/watch?v=lgY0pLadraE Unfortunately, everytime when I get to the 1:20 mark where I run my method on the server I get this ridiculous error.

JAXB / Java 11 / Tomcat - DataHandler No default constructor

百般思念 提交于 2021-02-11 14:23:14
问题 I have some trouble with JAXB, i found out that it exists many implementations of it, i used JBoss and the code worked well (Metro JAXB), now with tomcat and com.sun.xml.bind.. it doesn't, it cannot convert the Base64 encoded String into a DataHandler. Now i recompiled it again and i'm trying if the @XMLAttachmentRef would solve my trouble. [com.sun.xml.bind.v2.ClassFactory] No default constructor found on class javax.activation.DataHandler java.lang.NoSuchMethodException: javax.activation

Tomcat 9.x.x Client Authentication using X.509 Certificates

爷,独闯天下 提交于 2021-02-11 14:17:03
问题 I’m using Tomcat 9.0.19 and trying to enable X.509 cert.-based client authentication (AKA I&A) for a particular Web application. In summary, the Tomcat works for an application that has basic I&A enabled over one-way TLS. When accessing the Web application that has certificate-based I&A, Tomcat does not seem to request a client certificate as part of the Server Hello message, prior to sending Server Hello Done and it later fails the authentication check: 02-Jan-2020 13:00:40.371 FINE [https

Java工程师必备书单

会有一股神秘感。 提交于 2021-02-11 13:54:45
本文出自我的公众号:程序员江湖。 江湖路险,你我同行。 Java开发工程师一般负责后端开发,当然也有专门做Java Web的工程师,但是随着前后端的分离,越来越多的Java工程师需要往大后端方向发展。 今天我们就来介绍一下Java后端开发者的书单。 首先要感谢一下江南白衣大大的后端书架,让我在初学阶段读到了很多好书,直到现在都印象深刻。 我在两年的学习历程中看了很多的书,其中不乏XXX入门到精通,XXX王者归来,XXX指南什么的。 虽然这类书确实毛病很多,但是作为非科班的我来说,当时还是看的津津有味。直到后来我看到一些优秀的书籍,以及白衣哥的书架,我才逐渐认识到看一些精品书籍的好处。 所以我们今天就从这些精品书籍中挑选一些优秀书籍来推荐给大家,当然其中有一些书我自己也没有时间看完。 接下来我们按照后端技术栈各个部分的内容来推荐书籍。 网络 1 TCP/IP卷一 这本其实我刚开始没看太懂,可能是当时太水的原因,但是一般是大牛力荐的书。 2 计算机网络:自顶向下 这本从应用层讲到物理层,感觉这种方式学起来更轻松,我比较推荐小白看这本。 3 图解HTTP和图解TCP/IP 相较于前两本大厚书,这两本书更加亲民,小白可以买来看看,还是很适合入门的。 4 计算机网络 没错,就是这本教材,作为非科班选手自己看这本书,那叫一个欲仙欲死啊,看完就忘记了。 操作系统 1 深入理解计算机系统