Tomcat

年薪30万的Java架构师必会的springboot面试题

放肆的年华 提交于 2020-08-14 16:01:41
【 Java架构师面试网 】收集整理了几乎整个架构师学习途中会遇到的面试题,希望大家都能早日圆自己的架构师梦~ 公众号: Java架构师面试网 ,关注回复“ 资料 ”即可领取精美整理的面试资料一份哦~ 1、什么是springboot 用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties或yml文件) 创建独立的spring引用程序 main方法运行 嵌入的Tomcat 无需部署war文件 简化maven配置 2、什么是 JavaConfig? Spring JavaConfig 是 Spring 社区的产品,它提供了配置 Spring IoC 容器的纯 Java 方法。因此它有助于避免使用 XML 配置。 使用 JavaConfig 的优点在于: 面向对象的配置。由于配置被定义为 JavaConfig 中的类,因此用户可以充分利用 Java 中的面向对象功能。一个配置类可以继承另一个,重写它的 @Bean 方法等。 减少或消除 XML 配置。基于依赖注入原则的外化配置的好处已被证明。但是,许多开发人员不希望在 XML 和 Java 之间来回切换。 JavaConfig 为开发人员提供了一种纯 Java 方法来配置与 XML 配置概念相似的 Spring 容器。从技术角度来讲,只使用 JavaConfig 配置类来配置容器是可行的

史上最细基于Redis实现的分布式Session解决单点登录问题,入门导师带你一步一步实现

走远了吗. 提交于 2020-08-14 13:12:42
点赞多大胆,就有多大产! 开源促使进步,献给每一位技术使用者和爱好者! 干货满满,摆好姿势,点赞发车 前戏   最近正好在做一个电商项目,跟大家分享一下使用 Redis 实现 分布式session 完成 单点登录 ,下一篇与大家分享一下使用 Redis 实现 分布式锁 实现 定时关单 功能,好啦文章干货满满咱们就不多絮叨直接开搞了!   需要说明一点就是贴出的代码是自己修改过的,有些包名会使用 *** 替代,并且接口都使用 Get请求 ,这样方便测试不需要使用接口测试工具了,没有使用 RESTful风格 等等,代码应该还算规范,数据表和pojo就不提供了,大家可以随便定义一下表结构之类的,就是个 用户表 ,相信小伙伴们是完全可以的啦,主要还是说功能怎么实现! 技术架构 Spring Cloud:Greenwich.SR2 Spring Boot:2.1.14.RELEASE Redis:5.0.5 MySQL:5.7 Tomcat:8.5 nginx:1.18 技术架构中的SpringCloud大家用不用都行,只需要将项目部署两份使用nginx负载均衡就可以了,该案例中项目直接在IDEA中运行在不同的端口,使用nginx直接部署运行了 问题介绍   随着项目不断运行,用户越来越多,我们项目如果前期使用的是 单体架构 开发就需要演变成 分布式架构 ,或者前期 用户预测

阿里云服务器部署Java Web项目全过程

為{幸葍}努か 提交于 2020-08-14 13:05:13
最近需要将一个Java Web项目部署到服务器上,方便多人共享访问。这也是我第一次接触服务器之类的东西,也花了一点时间,最终总算部署成功,写下一篇文章记录以便日后回顾。 购买服务器 第一步当然是需要购买一台服务器了,我选择的是阿里云的ECS,对于新用户有一定的优惠活动。服务器徐购好后可以在管理控制台下看到自己服务器的配置情况。我买的是centos7 1核2G的,详情如下: 本地主机连接服务器 购买了服务器之后,下一步当时是要远程操作服务器,所以需要和远程服务器建立连接。这里有两种方式:一种是使用阿里云控制中心自带的管理终端进行远程连接,另一种是使用熟知的ssh协议。 使用管理终端连接 登陆ECS控制台,单击左侧导航栏里的实例,右边有一个远程连接选项 注意第一次登陆时会分配一个密码,将其记住,下次需要用这个密码登陆,登陆后的界面如下所示: 使用ssh连接 windows下需要下载putty工具,需要用puttygen生成密钥对,具体可参见: https://help.aliyun.com/document_detail/51798.html?spm=5176.doc25425.2.11.Fe06aK 搭建Java Web开发环境 接下来需要在远程centos服务器上搭建Java Web开发环境,这里可以选择镜像部署和手工部署,阿里云上提供了很多相关环境的镜像

Alpha 冲刺总结

回眸只為那壹抹淺笑 提交于 2020-08-14 12:12:05
这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/2020SPRINGS/ 这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/2020SPRINGS/homework/10699 团队名称 知社 这个作业的目标 总结本次 Alpha 冲刺,为 Beta 冲刺制定计划 作业正文 https://www.cnblogs.com/zhishe/p/12858391.html 其他参考文献 1. 项目预期计划 第一阶段:前后端各自根据 API 文档开发 day task 4.25 首页及接口 4.26 社团管理及接口 4.27 社团活动及接口 4.28 各种申请及接口 4.29 各种审核及接口 4.30 社团公告及接口 5.1 附件管理(文件、图片) 5.2 权限管理 5.3 code review 5.4 refactor 第二阶段:前后端接口联调 day task 5.5 测试用户、社团、申请接口 5.6 测试活动、评论接口 5.7 测试其余接口 2. 现实进展 [x] 个人中心 [x] 社团管理 [x] 活动管理 [x] 申请管理 [x] 论坛管理 [ ] 附件上传 [ ] 帖子点赞 [ ] 登陆积分 [ ] 团队活跃度统计 3. 组员分工及在 Alpha 阶段的工作量比例 组员 分工 工作量比例

在Spring Boot项目中使用https(jks)

自古美人都是妖i 提交于 2020-08-14 11:42:22
SpringBoot配置HTTPS 在工作中时长会遇到配置https,SpringBoot自带的是tomcat服务器一般使用的.jks文件配置SSL加密。 过程中会用到两个工具:OpenSSL,Keytool工具。 OpenSSL:下载地址: http://slproweb.com/products/Win32OpenSSL.html keytool工具,这是jdk自带的工具,在jdk的/bin目录下可以找到。 自己生成CSR https供应商不会直接提供.jks文件。所以,我们就需要将加密文件转换成所需要的jks文件。 解压已下载的证书压缩包,获得“xxx.pem”文件和xxx.key文件 “server.pem”文件包括两段证书代码“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE-----”,分别为服务器证书和中级CA证书。 使用OpenSSL工具,将pem格式证书转换为PFX格式证书,得到“server.pfx”文件。 找到openssl的bin目录,找到openssl.exe文件,单击右键以管理员身份运行,打开命令行,输入命令: pkcs12 -export -out D:\xxx.pfx -in D:\xxx.pem -inkey D:\xxx.key 按照要求输入两次密码,这时在d盘生成了xxx.pfx文件

Tomcat的作用思考及NIO的应用(要区分Java NIO和操作系统的NIO模型)

岁酱吖の 提交于 2020-08-14 11:38:04
Tomcat的作用   平时写完web程序都是直接点击启动,就可以在本机浏览器访问了。但是仔细想想,我们似乎都没有写过浏览器与servlet通信的代码,也没有写过创建request、reponse的代码。实际上,这些都是由Tomcat完成的,它的主要作用如下:   1. 完成服务的与客户端的数据收发,即通信功能。   2. 完成请求的映射功能。   3. 管理servlet的生命周期。 Tomcat的工作模型(图片来源于网络): connector用于处理连接相关的事情,并提供Socket与Request和Response相关的转化; Container用于封装和管理Servlet,以及具体处理Request请求; 一个Tomcat中只有一个Server,一个Server可以包含多个Service,一个Service只有一个Container,但是可以有多个Connectors,这是因为一个服务可以有多个连接,如同时提供Http和Https链接,也可以提供向相同协议不同端口的连接。为了方便,Engine可以直接看成我们编写的服务器程序,即servlet。 Tomcat的BIO工作模型   客户端与服务端建立的TCP连接, 线程在等待其对应的客户端连接发送数据时是不能做其它事的,一直在阻塞中 。也因此有N个客户端与服务端建立了连接,就必须要N条线程去处理。工作模型如下:

Springboot 整合 JSP

让人想犯罪 __ 提交于 2020-08-14 11:32:46
1. 常规操作 ,创建Springboot 项目后 2. 引入 jsp 依赖 <!--引入jsp解析依赖 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency> 3. 修改application.properties spring.mvc.view.prefix=/ spring.mvc.view.suffix=.jsp 4 . 目录规范: src/main/webapp/WEB-INF/jsp/index.jsp 注意: WEB-INF 目录 是 Tomcat的安全目录,不配置,里面的jsp无法,访问,默认只能读取index.jsp 来源: oschina 链接: https://my.oschina.net/tenlee/blog/4352624

4-JVM 参数

僤鯓⒐⒋嵵緔 提交于 2020-08-14 10:21:49
JVM 参数 标准参数:不会随着jdk版本的变化而变化。比如:java -version、java -help 非标准参数:随着JDK版本的变化而变化。 -X参数【用的较少】非标准参数,也就是在JDK各个版本中可能会变动 # 修改执行方式 # compiled 编译执行方式,第一次使用就编译成本地代码 java -Xcomp -version # interpreted 解释执行方式 java -Xini -version # mixed 默认的混合执行方式,混合模式,JVM自己来决定 java -Xmixed -version -XX参数【用的最多:JVM调优额Debug】非标准化参数,相对不稳定。 boolean类型 格式:-XX:[+-]<name> +或-表示启用或者禁用name属性 比如: -XX:+UseConcMarkSweepGC 表示启用CMS类型的垃圾回收器 -XX:+UseG1GC 表示启用G1类型的垃圾回收器 # 设置JVM使用垃圾收集器 +:使用,-:未使用 -XX:+/-UseG1GC 非boolean类型 格式:-XX<name>=<value>表示name属性的值是value 比如: -XX:MaxGCPauseMillis=500 # 设置初始堆内存 -XX:initialHeapSize=100M # 简写方式 ===>>> -Xms100M #

Nginx简介

a 夏天 提交于 2020-08-14 07:32:07
常见的Web服务器产品 目前市场上比较流行的Web服务器主要有Apache、Microsoft IIS、Sun、Nginx、Tomcat、Lighttpd等。 由上图可以看出Nginx的市场占有率越来越高。但是在介绍本篇文章的主角——Nginx之前,我们还是有必要来简单了解下其他几个产品。 Apache服务器(httpd) Apache服务器是Apache软件基金会下面的一款Web服务器,平时我们将这个服务器称为httpd。这款服务器和其他Web服务器比起来特性最全,并且运行速度快,性能相对稳定,而且扩展功能丰富。 Apache Web服务器是当今Web服务器市场中的领军产品,但在具体的使用过程中,它仍然在某些方面表现不足——比如性能方面。 IIS IIS,是Internet InformationServices的缩写。IIS不仅仅是一款Web服务器,同时还包含了Gopher Server(Web上一种信息查找系统)和FTP Server,并且可以用于HTTP Server、FTP Server、NNTP Server或者SMTP Server。我们通过IIS不仅仅可以发布网页,它还可以提供新闻服务、文件和应用程序服务、邮件服务等。 IIS的功能非常强大,但是缺点也显而易见——IIS和Window平台强绑定。 Tomcat服务器

Spring MVC 和 Spring 总结

倖福魔咒の 提交于 2020-08-14 04:16:54
1. 为什么使用Spring ? 1). 方便解耦,简化开发 通过Spring提供的IoC容器,可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。 2). AOP编程的支持 通过Spring提供的AOP功能,方便进行面向切面的编程,如性能监测、事务管理、日志记录等。 3). 声明式事务的支持 4). 方便集成各种优秀框架 5). 降低Java EE API的使用难度 如对JDBC,JavaMail,远程调用等提供了简便封装 2. 什么是IoC,为什使用IoC ? IoC全称Iversion of Controller,控制反转。 这概念是说你不用创建对象,而只需要描述它如何被创建。 你不在代码里直接组装你的组件和服务,但是要在配置文件里描述哪些组件需要哪些服务,之后一个容器(IOC容器)负责把他们组装起来。 它能指导我们如何设计出松耦合、更优良的程序。 3. 什么是AOP,为什么使用AOP ? AOP全称:Aspect-Oriented Programming,面向切面编程。 AOP,面向切面编程,就是把可重用的功能提取出来,然后将这些通用功能在合适的时候织入到应用程序中,比如 事务管理 、 权限控制 、 日志记录 、性能统计等。 AOP并没有帮助我们解决任何新的问题,它只是提供了一种更好的办法,能够用更少的工作量来解决现有的一些问题