Java EE

springMvc+swagger整合例子

↘锁芯ラ 提交于 2021-02-02 05:00:18
  Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API与接口方法,参数等保存同步,大大减少了接口开发人员的工作量.这个例子是我本地运行正常的,完整demo在文章最后。   第一步:在pom.xml引入相关jar < dependency > < groupId > io.springfox </ groupId > < artifactId > springfox-swagger2 </ artifactId > < version > 2.4.0 </ version > </ dependency > < dependency > < groupId > io.springfox </ groupId > < artifactId > springfox-swagger-ui </ artifactId > < version > 2.4.0 </ version > </ dependency > < dependency > < groupId > com.fasterxml.jackson.core </ groupId > < artifactId > jackson-core </

Spring Cloud中的断路器Hystrix

…衆ロ難τιáo~ 提交于 2021-02-02 02:52:24
什么是微服务?举个简单的例子,我想做一个用户管理项目,里边就三个功能:用户注册、用户登录、用户详情浏览。按照传统的软件开发方式直接创建一个Web项目,分分钟就把这三个功能开发出来了,但是我现在想使用微服务+服务治理的方式来开发:首先我将这个项目拆分为四个微服务,四个微服务各建一个模块,分别是用户注册模块、用户登录模块、用户详情浏览模块和数据库操作模块,这四个模块通过内部服务治理互相调用。但是现在存在一个问题,这四个模块通过服务注册与订阅的方式互相依赖,如果一个模块出现故障会导致依赖它的模块也发生故障从而发生故障蔓延,进而导致整个服务的瘫痪。比如说这里的登录模块依赖于数据库模块,如果数据库模块发生故障,那么当登录模块去调用数据库模块的时候可能得不到响应,这个调用的线程被挂起,如果处于高并发的环境下,就会导致登录模块也崩溃。当一个系统划分的模块越多,这种故障发生的频率就会越高,对于这个问题,Spring Cloud中最重要的解决方案就是断路器,那么本文我们就来看看什么是断路器。 本文是Spring Cloud系列的第十篇文章,了解前九篇文章内容有助于更好的理解本文: 1. 使用Spring Cloud搭建服务注册中心 2. 使用Spring Cloud搭建高可用服务注册中心 3. Spring Cloud中服务的发现与消费 4. Eureka中的核心概念 5. 什么是客户端负载均衡 6

容器、微服务和互联网架构浅谈

泄露秘密 提交于 2021-02-01 11:18:34
随着云服务的兴起,企业应用正在从分层式架构逐步迁移到互联网架构。传统的企业应用架构通常是单一架构(Monolithic),即典型的MVC三层架构。以一个主流的J2EE企业应用而言,其按照模型(数据层)——控制器(服务层)——视图(访问层)进行构建,然后打包为一个war包,部署运行于J2EE应用服务器上,例如Tomcat、JBoss、WebLogic等。 然而,经过多年应用,Monolithic架构也逐渐老化,越来越不适应技术的发展。首先,随着加入的应用功能增多,产生了代码堆积现象,系统越来越庞大和复杂。尤其是引入敏捷开发后,产生了较多问题。例如应用持续集成方法时,自动加载、编译、加载、测试整个应用代码的时间过长,不能快速形成正反馈。其次,组件与组件之间的耦合性太强,所有应用都运行在服务器上的相同进程中。应用规模增大后,只有同时增加应用的副本,将多个副本部署到多个服务器上,无法实现弹性伸缩。最后,开发团队之间,工作交集复杂,协调耗散大。 从长期实践看,Monolithic架构天然的不具备健壮性,因为一旦某个组件出现问题,整个服务基本上就挂了。自身不具备分布式服务能力,通常需要依赖于负载均衡器、数据库HA等来实现服务的分布化和负载分担。相对而言,互联网架构优势在于分布式、去中心化,支持弹性伸缩。其核心是轻应用、微服务。微服务架构也是从Monolithic架构演进来的

【转载】学习资料汇总

自古美人都是妖i 提交于 2021-02-01 08:53:15
Dubbo-大波-服务化框架 dubbo_百度搜索 Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错) - 好库文摘 User Guide-zh - Dubbo - Alibaba Open Sesame User Guide-zh - Dubbo - Alibaba Open Sesame 简单之美 | Dubbo架构设计详解 DUBBO Hprose RPC框架 java rpc_百度搜索 谁能用通俗的语言解释一下什么是 RPC 框架? - 知乎 Java程序员的现代RPC指南 - 西代零零发 - 博客频道 - CSDN.NET Hprose_百度搜索 Hprose Hprose Home Hprose首页、文档和下载 - 高性能跨语言 RPC - 开源中国社区 项目 - 码云 - 开源中国 hprose/hprose-doc: Hprose 文档汇总 hprose_百度百科 thrift 和 Hprose有什么区别吗?_百度知道 hprose具体用途案例是什么,看到这个东西但是想不出来具体应用实例和优势? - 知乎 Hprose使用经历 - xiang_quan123的专栏 - 博客频道 - CSDN.NET Hprose 2.0.0 for HTML5 发布,高性能跨语言RPC - 开源中国社区 为什么采用hprosehttpclient

从Java的角度修复CSRF漏洞

折月煮酒 提交于 2021-02-01 04:46:03
      漏洞挖掘中,说实话挖过最多的漏洞就属CSRF漏洞了,提交CSRF漏洞很多次,绕过CSRF防御进行攻击也有很多次。CSRF漏洞是一个很容易引发的问题,今天我从Java的角度来说下这个安全漏洞的修复方案。   这里不谈挖掘方式,只谈修复方案。   很多时候你很熟悉一种安全漏洞,但是涉及到的修复方案你只能大概讲下,具体到代码层你就束手无策了,这不是个优秀的白帽子行为。     CSRF一般有两种修复方案       1.加随机性token或者是sign (足够随机,不可解密)         2.验证Referer!       今晚我的修复方案从2.验证Referer说起,很多时候修复referer是可以被绕过的,有三种绕过方案:           1.Referer为空           2.通过伪造域名绕过 example:1.目标地址.随机字符.com 2.目标地址.com.随机字符.com 3.自定义域名地址/目标地址.com           3.利用@绕过,听说过但没遇到过       这里从Java的角度浅谈CSRF漏洞的修复,其实解决Referer就能彻底的根治CSRF漏洞,但是很多时候由于开发的疏忽往往Referer过滤不严就能绕过,这里我写了一个验证Referer的方案,仅作为自己学习Java一些记录吧:     首先随便准备一个简单的视图页面:

spring 整合 servlet

♀尐吖头ヾ 提交于 2021-02-01 01:53:14
目的:记录spring整合 servlet过程demo。(企业实际开发中可能很少用到),融会贯通。 前言:在学习spring 过程(核心 ioc,aop,插一句 学了spring 才对这个有深刻概念, 在net时候都是直接使用,不得不说 java 还是深刻点)过程中,我们基本上都是在test中测试如图 环境:IDEA 但是,开发中是 spring容器 是共享的,其他地方直接调用,这里就涉及到spring和其他的整合,此文servlet 为测试点。 1:新建servlet 过程参考, https://www.cnblogs.com/y112102/p/11338610.html 2:导入jar包。(4个核心,一个依赖)后期开发推荐使用 Maven,后面在测试,示logging找不到 , 日志也要导入 2.1: spring-web 也要记得 在复习一遍: 1: 基础:4+1 , beans、core、context、expression , commons-logging 2: AOP:aop联盟、spring aop 、aspect规范、spring aspect 3: db:jdbc、tx(事务) 4: 测试:test 5: web开发:spring web 3:web.xml 配置文件如下 <? xml version="1.0" encoding="UTF-8" ?> <

springMVC基本配置

假装没事ソ 提交于 2021-01-31 21:29:00
一, 1,创建工程 2,配置maven 3,在pom.xml中添加依赖更改配置 在 <properties>标签中加 < spring.version > 5.0.5.RELEASE </ spring.version > 在 < dependencies > 标签中加入以下依赖 <dependency> < groupId > org.springframework </ groupId > < artifactId > spring-context </ artifactId > < version > ${spring.version} </ version > </dependency> <dependency> < groupId > org.springframework </ groupId > < artifactId > spring-web </ artifactId > < version > ${spring.version} </ version > </dependency> <dependency> < groupId > org.springframework </ groupId > < artifactId > spring-webmvc </ artifactId > < version > ${spring.version} </

spring boot开发与传统spring开发web项目便利性的比较

不想你离开。 提交于 2021-01-31 11:18:44
登录示例 典型的基于Spring的Web应用 类包规划 - schema -src ----main --------java ------------com.smart ----------------dao( 持久层,负责数据的访问和操作,DAO类被上层的业务类调用 ) ----------------------LoginLogDao.java( 负责记录用户的登录日志,Spring JDBC技术实现,1个方法 insertLoginLog() 接口方法, 登录日志插入的操作 ) ---------------------- UserDao.java ( 访问 User 的DAO,Spring JDBC技术实现,包括3个方法 getMatchCount() 根据用户名和密码获取匹配的用户数 , findUserByUserName() 根据用户名获取User对象 , updateLoginInfo() 更新用户积分 ) ----------------domain(领域对象,也称实体类,严格属于业务层,但可能同时被持久层和展现层共享,所以单独分一个包) ---------------------- LoginLog.java (日志信息, 对应 t_login_log 数据库表 ) ---------------------- User.java (用户信息, 对应 t

Spring MVC 学习总结(三)——请求处理方法Action详解

狂风中的少年 提交于 2021-01-31 00:30:18
Spring MVC 学习总结(三)——请求处理方法Action详解 目录 一、Action参数类型 1.1、自动参数映射 1.1.1、基本数据类型 1.1.2、自定义数据类型 1.1.3、复杂数据类型 1.1.4、List集合类型 1.1.5、Map集合类型 1.2、@RequestParam参数绑定 1.2.1、基本数据类型绑定与注解属性 1.2.2、List与数组绑定基本数据类型 1.2.3、List与数组直接绑定自定义数据类型与AJAX 1.3、重定向与Flash属性 1.4、@ModelAttribute模型特性 1.4.1、注解在参数上 1.4.2、注解在方法上 二、Action返回值类型 2.1、视图中url问题 2.2、返回值为String 2.2.1、String作为视图名称 2.2.2、String作为内容输出 2.3、返回值为void 2.3.1、方法名默认作为视图名 2.3.2、直接响应输出结果 2.4、返回值为ModelAndView 2.5、返回值为Map 2.6、返回值为任意类型 2.6.1、返回值为基本数据类型 2.6.2、当返值为自定义类型 2.7、返回值为Model类型 2.8、小结 三、Spring MVC乱码解决方法 3.1、页面编码 四、示例下载 Spring MVC中每个控制器中可以定义多个请求处理方法

2021最新 SpringMVC面试题精选(附刷题小程序)

一笑奈何 提交于 2021-01-30 19:13:04
推荐使用小程序阅读 为了能让您更加方便的阅读 本文所有的面试题目均已整理至小程序《 面试手册 》 可以通过微信扫描(或长按)下图的二维码享受更好的阅读体验! [toc] 1. Spring MVC基础 1.1 什么是Spring MVC? Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把模型-视图-控制器分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。 1.2 Spring MVC的优点有那些? 可以支持各种视图技术,而不仅仅局限于JSP; 与Spring框架集成(如IoC容器、AOP等); 清晰的角色分配: 前端控制器(dispatcherServlet) ; 请求到处理器映射(handlerMapping); 处理器适配器(HandlerAdapter); 视图解析器(ViewResolver)。 支持各种请求资源的映射策略。 1.3 Spring MVC的主要组件? DispatcherServlet: 中央控制器,把请求给转发到具体的控制类 Controller: 具体处理请求的控制器 HandlerMapping: 映射处理器,负责映射中央处理器转发给controller时的映射策略 ModelAndView: 服务层返回的数据和视图层的封装类