Tomcat

「新特性」Spring Boot 全局懒加载机制了解一下

点点圈 提交于 2020-10-15 01:25:14
关于延迟加载 在 Spring 中,默认情况下所有定的 bean 及其依赖项目都是在应用启动时创建容器上下文是被初始化的。测试代码如下: @Slf4j @Configuration public class DemoConfig { public DemoConfig() { log.warn(" > > > demoConfig 被初始化 > > >"); } } 启动应用日志: [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1193 ms [ main] c.p.c.global.lazy.config.DemoConfig : > > > demoConfig 被初始化 > > > [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor' [ main] o.s.b.w

Tomcat8+Redis集群解决会话共享

半腔热情 提交于 2020-10-15 01:19:27
瞎 扯 磕磕碰碰一天,百度了好几篇,终于搞定了Session共享的问题。以前只是听说将Session存入第三方来解决Session共享问题,可一直没有亲自动手实现过,还记得以前面试时被一道怎么用Redis解决Session共享问题给怼得老惨,现在再问到,虽然可能还是会被怼,但多多少少能说上几句了。此文纯粹是记录我这一天解决这问题的过程,要想面试打败面试官,多去找找其他博文。 问题起源:服务器端Tomcat集群,负载策略采用的Ip-Hash方式,不存在Session共享问题,后因Jmeter压测,在无权更改测试机为多IP模拟IP欺骗的情况下,将负载策略更改为轮询方式,然后,就有活干了。 参 考 致 谢 负载策略可参考: https://blog.csdn.net/qq_35119422/article/details/81505732 需要用到Redis Session Manager for Apache Tomcat项目, https://github.com/jcoleman/tomcat-redis-session-manager ,但是官方说的了,暂时不支持tomcat8,上Github上逛了一圈,无私奉献的大神挺多的,因为我项目用到的是tomcat8.5,找了好几个才找到个简单可用的(没有试是否支持其他版本)。 源码我用的这哥们的: https://github.com

CAS-搭建CAS Server服务端(静态认证)

淺唱寂寞╮ 提交于 2020-10-15 00:30:59
本文为转载 ,发表在: https://www.jianshu.com/p/2bd8f2b1db86 一、前言 什么是maven的overlay? overlay可以把多个项目war合并成为一个项目,并且如果项目存在同名文件,那么主项目中的文件将覆盖掉其他项目的同名文件。 apereo提供了一个基于层结构的框架,可以帮助开发者快速引入cas server的代码,然后实现自由配置或代码覆盖,打包方式也非常简单。 Github地址: https://github.com/apereo/cas-overlay-template 二、快速构建 1.环境要求:JDB1.8+ 2.下载或者克隆cas-overlay-template(version:5.2.3)项目到本地,用Intellji Idea/Eclipse打开项目,下载依赖时间较长,需耐心等待,建议注释pom文件中配置的repositories,使用国内的镜像.可以换成这个或者阿里云 <repositories> <repository> <releases> <enabled>true</enabled> </releases> <id>maven2-release</id> <url>http://uk.maven.org/maven2/</url> </repository> </repositories> 3

超值!分布式系统架构精讲篇:知识图谱+主流技术体系(专题集合资料附赠)

点点圈 提交于 2020-10-12 11:23:29
如果你期待对分布式系统有一个更全面的认识,想要了解各个技术在分布式系统中如何应用、分别解决哪些问题、有怎样优秀的实现,推荐阅读、收藏本篇。 前言 分布式系统涉及到的理论知识及技术点比较多,以致于很多童鞋都说,分布式系统的学习是入门容易、深入难,通过网络搜索到的知识点较为零散,难以系统化学习、融会贯通。本篇Mike将从以下几个方面分享,带着大家先窥探分布式的全貌,希望为大家厘清分布式学习之路的方向与具体路径。 以上专题资料及学习图谱,获取方式:添加下方小助手VX即可 本篇主题 分布式系统的概念 分布式系统的作用 分布式系统的特性 分布式系统主流技术 分布式系统专题合集及知识图谱 分布式系统的概念 分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。有一种说法:分布式系统是若干独立计算机的组合共同对用户提供服务,但对于用户来说,这些计算机就像是单个相关系统。 布式系统的作用 分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机器,处理更多的数据。 分布式系统的特性 布式系统特性主要有透明性、可扩展性、可用性、可靠性、高性能、一致性等。这几个特性是分布式系统的主要衡量指标,开始分布式系统的学习,从了解分布式系统的特性开始。 1、透明性 分布式的特征之一是向用户隐藏系统的内部组织结构,各种计算机之间的差别

JavaWeb的学习路线

笑着哭i 提交于 2020-10-12 03:02:45
JavaWeb的学习路线 一.BS结构 B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器,如Netscape Navigator或Internet Explorer,服务器安装SQL Server、Oracle、MYSQL等数据库。浏览器通过Web Server 同数据库进行数据交互。 二.JavaSE 基础语法(常用数据类型与包装类,访问与非访问修饰符,跳出循环,类与方法的声明) 基本语法规则(标识符,修饰符,关键字) 数据类型与变量 修饰符与运算符 流程控制 数组 类与方法 泛型 常量与枚举 文档注释  面向对象(面向对象的编程描述,封装继承多态的联系,抽象类与接口的作用,内部类的实例化) 面向对象概念(模型) 命名空间与访问级别 面向对象特性(封装,继承,多态,抽象) 面向接口编程(解耦和) 内部类(匿名,方法,成员,静态) Java面向对象语法规则总结 工具类(字符串与可变字符串,日期类型转换与格式化,自定义异常,输入流与输出流的实现,线程控制,并发与锁) 数据类型操作 字符串操作 数学运算 时间日期处理 异常处理 文件处理 流处理 多线程操作 集合框架

从阿里P5到P8=入门到内核?看看这份对标80W+年薪的Java进阶路线图

家住魔仙堡 提交于 2020-10-12 01:58:56
前话: 之前有很多粉丝私信我说: 老光,这Java程序员以后的路到底要怎么走哇? Java开发做到资深是不是到顶了?工资有没有封顶? 真的有“35岁是道坎”这么一说吗? Java之父-詹姆斯·高斯林 对于这些问题,老苏也不知道怎么给你们一个满意的答案。因为互联网的发展实在是太快了,很多的东西应势而来又转瞬即逝,任何事情谈不上绝对。 而Java自James缔造以来,还称得上是一个十分具备竞争力的语言,并且在使用它的IT技术人员群体也十分庞大。 这里,老苏就关于Java开发者这一问题准备了很久,同时刚好有位架构师朋友发给了我一份Java架构师的成长路线图,据说是经过了七代的更新,才落成最符合近段时间Java程序员成长的进阶思维导图。 那老苏接下来就以阿里的程序员的职级为例,好好给大家剖析一下,一个Java程序员要逐步成长为一位能与阿里P7相提并论,年薪可达80W+的架构师,应该怎么做? P5→P7 = 入门→内核 阿里P5,入门 这个不用说,大家都清楚,但凡能进入阿里的大学应届毕业生定级都在P5左右,当然这里也不是说绝对,视个人能力而定,能定到P6的也不稀奇。 在这个程度要技术能力吗?当然要,但是要求不会很高,更多的是以学历和实习经历为背书的。 这时候你应该要掌握什么呢? 及较强的学习能力,不然你的学历再好也撑不了多久。 阿里P6,实战 当你开始有了两年以上的工作经验,写得代码

解析大型系统自动更新

我们两清 提交于 2020-10-11 00:32:34
C/S架构的应用程序需要支持自动更新功能,当新版本程序发布后,正在运行的客户端能检测到新版本的程序,通知用户是否下载更新。工作以来参与过几个自动更新模块的设计与维护,撰文总结自动更新模块设计与实现。 自动更新组件主要内容 1 版本比较。旧版本如何检测到新版本,版本信息是程序集自描述的,还是用单独的文件保存。.NET程序集是自描述的,程序集包含以下几种版本信息,每个Assebmly包含三个Version AssemblyFileVersion : 存储在Win32资源中, CLR不关心这个版本号。 AssemblyInformationnalVersion :存储在Win32资源中, CLR不关心这个版本号。 AssemblyVersion: 存储在AssemblyDef manifest metadata table中,CLR会使用这个版本号。 标准版本号物理形式表示为用句点隔开的四段数字,如下面的代码示例所示。 <major version>.<minor version>.<build number>.<revision> 实际使用中,我们一般只用到前面三段。即 <major version>.<minor version>.<build number> 版本比较举例: 旧版本 2.4.1.2 新版本 2.4.1. 3 或 2.4. 2 .2 或2. 5 .1.2。 2

tomcat服务器中部署多个域名SSL证书

▼魔方 西西 提交于 2020-10-10 05:35:41
准备工作 首先下载tomcat证书文件 一个是pfx文件、一个是密码文件,通过执行命令得到 jks文件 获取jks文件命令(cmd执行即可) keytool -importkeystore -srckeystore *.pfx -destkeystore *.jks -srcstoretype PKCS12 -deststoretype JKS 开始配置Tomcat 在conf目录下找到server.xml文件并修改Connector节点如下 <Connector port="443" protocol="org.apache.coyote.http11.Http11Nio2Protocol" defaultSSLHostConfigName="domain1" maxThreads="150" SSLEnabled="true" > <SSLHostConfig hostName="domain1"> <Certificate certificateKeystoreFile="C:/apache-tomcat-8.5.31/cert/lzbbyc/lzbbyc.jks" certificateKeystorePassword="3yGIoi8H" type="RSA" /> </SSLHostConfig> <SSLHostConfig hostName="domain2">