Java EE

当企业服务总线遇到云服务

十年热恋 提交于 2020-08-07 09:26:45
​ 转载本文需注明出处:微信公众号EAWorld,违者必究。 前言: 本文主要介绍企业服务总线的常见应用场景,与大家共同探讨在云环境、微服务中传统企业服务总线所面临的问题,结合普元企业服务总线产品向大家分享我们该如何解决这些问题。 目录: 1.企业服务总线简介 2.传统的ESB应用场景 3.云服务对ESB提出的新要求 4 . 普元ESB产品介绍 1.企业服务总线简介 企业服务总线(ESB)是企业应用集成在SOA理念下的一种实现方式,ESB是SOA架构中实现服务间智能化集成与管理的中介,在逻辑上与SOA所遵循的基本原则保持一致,依据SOA架构原则对服务集成和服务管理的要求,创建了一个SOA集成架构,能够深入管理服务,并能方便扩展到整个企业应用。 ESB是分布式的、基于消息的、遵循开放标准的集成解决方案。ESB的角色是在各种IT资源——如企业中各种异构应用系统、平台和服务之间进行可靠的通讯时提供可用的基础设施。如下图所示,企业服务平台为企业应用提供了一个统一的平台,采用SOA松耦合的思想来进行企业应用集成,通过灵活的服务接口和Adapter,方便SOA应用、异构应用、特殊协议应用的集成,这种松耦合、有效灵活的架构提供了很好的扩展性。 ESB除了从技术上为各个应用提供解耦、集成的能力外,在业务上提供对其承载的服务进行管理的能力,支持对接口服务的全生命周期管理,全面提升IT系统的集成能力

Java 类在 Tomcat 中是如何加载的?

落爺英雄遲暮 提交于 2020-08-07 08:55:03
作者 :xingoo https://www.cnblogs.com/xing901022/p/4574961.html 说到本篇的Tomcat类加载机制,不得不说翻译学习Tomcat的初衷。 之前实习的时候学习JavaMelody的源码,但是它是一个Maven的项目,与我们自己的Web项目整合后无法直接断点调试。 后来同事指导,说是直接把Java类复制到src下就可以了。很纳闷....为什么会优先加载src下的Java文件(编译出的class),而不是jar包中的class呢? 现在了解Tomcat的类加载机制,原来一切是这么的简单。 一、类加载 在JVM中并不是一次性把所有的文件都加载到,而是一步一步的,按照需要来加载。 比如JVM启动时,会通过不同的类加载器加载不同的类。当用户在自己的代码中,需要某些额外的类时,再通过加载机制加载到JVM中,并且存放一段时间,便于频繁使用。 因此使用哪种类加载器、在什么位置加载类都是JVM中重要的知识。 二、JVM类加载 JVM类加载采用: 父类委托机制 ,如下图所示: JVM中包括集中类加载器: BootStrapClassLoader 引导类加载器 ExtClassLoader 扩展类加载器 AppClassLoader 应用类加载器 CustomClassLoader 用户自定义类加载器 他们的区别上面也都有说明。需要注意的是

新特性:这招牛逼,Spring Boot 2.3.0 如何优雅停机?

半腔热情 提交于 2020-08-07 07:06:46
原文: https://mp.weixin.qq.com/s/uvNkdcmwkd6lcSRDhjPUJQ 1.什么是优雅停机 先来一段简单的代码, 如下: @RestController public class DemoController { @GetMapping("/demo") public String demo() throws InterruptedException { // 模拟业务耗时处理流程 Thread.sleep(20 * 1000L); return "hello"; } } 当我们流量请求到此接口执行业务逻辑的时候, 若服务端此时执行关机 (kill), spring boot 默认情况会直接关闭容器(tomcat 等), 导致此业务逻辑执行失败。在一些业务场景下:会出现数据不一致的情况, 事务逻辑不会回滚。 2.graceful shutdown 在最新的 spring boot 2.3 版本, 内置此功能, 不需要再自行扩展容器线程池来处理, 目前 spring boot 嵌入式支持的 web 服务器(Jetty、Reactor Netty、Tomcat 和 Undertow)以及反应式和基于 Servlet 的 web 应用程序都支持优雅停机功能。我们来看下如何使用: 当使用 server.shutdown=graceful 启用时, 在

运维利器:WEB日志分析场景介绍

人走茶凉 提交于 2020-08-07 04:29:26
为什么要对 Web日志进行分析 随着 Web 技术不断发展,Web 被应用得越来越广泛,现在很多企业对外就一个网站来提供服务,所以网站的业务行为,安全性显得非常重要。正如安全行业的一句话:“世界上只有两种人,一种是知道自己被黑了的,另外一种是被黑了还不知道的”。 对网站的业务行为分析,网站的安全性分析一个很重要的途径就是通过日志。通过WEB日志分析最直接明显的几个目的: 一为网站安全自检查,了解服务器上正在发生的安全事件; 二为应急事件中的分析取证; 三是可根据日志分析一些常用的业务行为。 如何进行日志分析? 在进行日志分析之前,我们先来了解一下 Web服务器中产生的日志是什么样子。我们来看一条 Apache 的访问日志为例: 114.221.137.87 - - [10/Sep/2019:14:52:28 +0800] "GET /login HTTP/1.1" 200 1068 https://secilog.secisland.com/ Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.105 Safari/537.36 Vivaldi/2.4.1488.40 通过以上信息,我们可以得知服务器会记录来自客户端的每一个请求

总结了Mybatis,原来知识点也没多少嘛

情到浓时终转凉″ 提交于 2020-08-07 04:28:11
前言 只有光头才能变强。 文本已收录至我的GitHub精选文章,欢迎Star : https://github.com/ZhongFuCheng3y/3y Mybatis应该是国内用得最多的「数据访问层」框架了,我看了我司的好几个系统,基本都是用Mybatis的。 实话实说,我对Mybatis没有很深入的了解,也仅仅是处于「会用」的阶段上。日常的要加张表,加个字段就是写写 DAO/Mapper 。 为什么没有深入去研究Mybatis的原因很可能是 面试其实问得不是特别多 ,起码我在校招的时候面了很多家公司,也没怎么问我Mybatis的。 Mybatis如果仅仅是要「会用」,入门是非常快的,感觉两三天就可以搞好了。 认识Mybatis 在前阵子已经总结过了JDBC了,无论是什么的ORM框架(Object Relation Mapping)其实都是在JDBC上封装了一层,底层用的都是JDBC的代码。 众所周知,直接写JDBC的代码的效率是最高的。那为什么要用ORM框架呢?? 回想起我第一次实习看到公司代码时的感受:「 卧槽,代码怎么这么多啊 。这为什么有这么多的包啊,一直点开都有」 如果纯用JDBC,只要项目是有点规模的,那我们的项目里代码量一定会很多。最重要的是,很多的代码都是 重复 的。如果我们的项目里边积累了这么多的重复代码,最致命的问题就是「 不好维护 」

JAVA数字货币交易所

我们两清 提交于 2020-08-07 03:00:19
全网唯一开源核心代码的交易所,架构/代码质量看得见 我想这可能是你搭建交易所,或者二次开发的最好选择 特色1: 基于内存撮合引擎,与传统基于数据库撮合更快 特色2: 前后端分离,基于Token的Api授权机制 特色3: 基于SpringCloud微服务架构,扩展更容易 特色4: MySQL、MongoDB、Redis多种数据存储方式,只为更快 特色5: Kafka发布订阅消息队列,让订单更快流转 特色6: 主流币种对接区块链接口齐全,开箱即用 特色7: 冷热钱包分离,两种提现方式,保证安全 特色8: 机器人系统,同步行情,维护深度,防止搬砖 特色9: 原生App,Java和ObjectC提供原生体验 特色10: 交易所设计者提供技术支持,部署+二开无忧 特色11: 支持添加自定义平台币及其他币种 声明一:我已在新公司上班,一些说明性的东西我会抽空在这里更新,以方便大家编译、搭建、开发 声明二:部分源码未开源(有偿提供),有需要的添加QQ:615745258 声明三:请注意,本源码唯一交易渠道为QQ:615745258,没有其他QQ或微信,谨防被骗!!! 声明四:请不要用本开源代码直接搭建交易所!本源码尚有一些隐藏BUG,仅供学习!否则后果自负! 声明五:本交易所完整源码仅向有技术团队或技术实力的人提供,小白或不同技术的请勿咨询! 简要介绍 本项目是基于Java

如何设置过滤器Filter

血红的双手。 提交于 2020-08-07 02:58:08
一 、 过滤器是什么? 它是基于Servlet技术实现的,简单的来说,过滤器就是起到过滤的作用,在Web项目开发中帮我么过滤一些指定的url做一些特殊的处理。 二、过滤器主要做什么? (1)过滤掉一些不需要的东西,例如一些错误的请求 (2)也可以修改请求和相应的内容 (3)也可以拿来过滤未登录用户 三、过滤器的代码实现 filter有三个方法,其中初始化(init)和摧毁(destroy)方法一般不会用到,主要是doFilter这个方法 怎么过滤呢? (1)第一种实现方式 (a)首先写一个MyFilter类 并且在这个类上面加上注解(Order执行过滤器的执行顺序,值越大越靠后执行) (b)在启动类上面加上( @ServletComponentScan ) (c)创建一个Filetercontroller接口 (d)测试 (2)第二种写一个Filterconfig (a)写一个filter和上面一些只不过去掉了webFilter和Order和在启动类中去掉ServletComponentScan (b)写一个config 来源: oschina 链接: https://my.oschina.net/u/4289818/blog/4364508

Java学习路线图(完整详细2020)

落花浮王杯 提交于 2020-08-07 02:51:54
一门永不过时的编程语言——Java 软件开发。 先给你分享一个我做的 2020年Java最新学习路线图在线流程图,在线思维导图 Java编程语言占比: 据官方数据统计,在全球编程语言工程师的数量上,Java编程语言以1000万的程序员数量位居首位。 而且很多软件的开发都离不开Java编程,因此其程序员的数量最多。而在以Java编程为核心的开发领域中,javaEE程序员的需求量10年来一直居于首位! Java工程师就业: 1.通过各大招聘网站统计,全国海量公司都在招聘Java开发工程师 2.北京Java开发工程师平均薪资,即16788元 3.全国Java开发薪资前三:北京 上海 广州 总共分为4个阶段: 阶段一:基础加提升 阶段二:JavaWeb 阶段三:SSM\SpringBoot等 阶段四: 阶段五:微服务等 ———————————————— 版权所属:归原作者所有 java交流学习资源大全文件下载地址: https://jq.qq.com/?_wv=1027&k=jx7ERZrp 学习手册,面试题,开发工具,PDF文档书籍教程,练习项目+源码 Java自学资料学习交流群: 926452303 声援博主:您的肯定就是我进步的动力。如果你感觉还不错,就请鼓励一下吧!记得随手点波 推荐 不要忘记哦!!! 别忘了点 推荐 留下您来过的痕迹 来源: oschina 链接: https:/

idea 社区版 servlet 获取表单数据

倖福魔咒の 提交于 2020-08-06 21:14:44
STEP1: 选择创建Maven项目,勾选Create from archetype中的org.apache.maven.archetype:maven archetype-webapp 选择maven settings.xml文件的位置 构建好的项目结构如下图所示: STEP2 在pom.xml文件中添加tomcatc插件 <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.1</version> <configuration> <port>8080</port> <path>/</path> <uriEncoding>UTF-8</uriEncoding> <server>tomcat7</server> </configuration> </plugin> 除此以外,添加上servlet的jar包 <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> <dependency>

WEB安全总结之读懂文件上传

随声附和 提交于 2020-08-06 20:32:21
WEB安全总结之读懂文件上传 文件上传漏洞是web安全中经常用到的一种漏洞形式。是对数据与代码分离原则的一种攻击。上传漏洞顾名思义,就是攻击者上传了一个可执行文件如木马,病毒,恶意脚本,WebShell等到服务器执行,并最终获得网站控制权限的高危漏洞。 大部分的网站和应用系统都有上传功能,而程序员在开发任意文件上传功能时,并未考虑文件格式后缀的合法性校验或者是否只在前端通过js进行后缀检验。这时攻击者可以上传一个与网站脚本语言相对应的恶意代码动态脚本,例如(jsp、asp、php、aspx文件后缀)到服务器上,从而访问这些恶意脚本中包含的恶意代码,进行动态解析最终达到执行恶意代码的效果,进一步影响服务器安全。 来源: oschina 链接: https://my.oschina.net/u/4264209/blog/4377077