Spring Web
java 开源项目收集
平时收藏的 java 项目和工具
某小公司RESTful、共用接口、前后端分离、接口约定的实践
随着互联网高速发展,公司对项目开发周期不断缩短,我们面对各种需求,使用原有对接方式,各端已经很难快速应对各种需求,更难以提高效率。于是,我们不得不重新制定对接规范、开发逻辑以便快速上线项目。 尽可能的缩小沟通的成本,开最少的会,确定大部分的事。 花最少的时间写文档,保证90%的…
项目开发框架-SSM
核心IOC容器,用来装载bean(java中的类)-用Spring的IOC容器来管理Bean的生命周期,有了这样一种机制,我们就可以不用在代码中去重复的做new操作。 aop,面向切面编程,spring中最主要的是用于事务方面的使用。 作用于web层,相当于controller…
Spring 系列: Spring 框架简介
Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。 在这篇由三部分组成的Spring 系列的第 1 部分中,我将介绍 Spring 框架。我先…
分享:Spring加载资源文件冲突问题
Spring Boot的自动配置、Command-line Runner
接下来关于SpringBoot的一系列文章和例子,都来自《Spring Boot Cookbook》这本书,本文的主要内容是start.spring.io的使用、Spring Boot的自动配置以及CommandRunner的角色和应用场景。
Spring Cloud构建微服务架构—注册与发现
Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。 Spring Cloud包含了多个…
微服务化改造系列之四:授权中心
常见的服务授权有三种,简单授权,协议授权和中央授权。
- 简单授权:服务提供方并不进行真正的授权,而是依赖于外部环境进行自动授权,比如 IP 地址白名单,内网域名等。这就好比三兄弟互相留了一个后门。
- 协议授权:服务提供方和服务调用方事先约定一个密钥,服务调用方每次发起服务调用请求时,用约定的密钥对请求内容进行加密生成鉴权头(包含调用方唯一识别 ID),服务提供方收到请求后,根据鉴权头找到相应的密钥对请求进行鉴权,鉴权通过后再决定是否授权此次调用。这就好比三兄弟之间约定敲一声是大哥,敲两声是二哥,敲三声是三弟。
- 中央授权:引入独立的授权中心,服务调用方每次发起服务调用请求时,先从授权中心获取一个授权码,然后附在原始请求上一起发给服务提供方,提供方收到请求后,先通过授权中心将授权码还原成调用方身份信息和相应的权限列表,然后决定是否授权此次调用。这就好比三兄弟每家家门口安装了一个 110 联网的指纹识别器,通过远程指纹识别敲门人的身份。
深入理解Spring系列之十三:IntrospectorCleanupListener解析
在分析IntrospectorCleanupListener之前,先了解一下Introspector。Introspector是JDK中java.beans包下的类,它为目标JavaBean提供了一种了解原类方法、属性和事件的标准方法。通俗的说,就是可以通过Introspect…
Spring Cloud 实战小贴士:版本依赖关系
去年在博客上连载了《Spring Cloud 构建微服务架构》的系列博文,虽然这部分内容得到了不少关注者们的支持,但是不得不说这些内容只是适用于 Spring Cloud 入门阶段对各个组件的初步认识。所以,今年除了将会继续更新《Spring Cloud 构建微服务架构》系列的连载之外,准备再开一个新系列:《SpringCloud 实战小贴士》,该系列文章内容将会聚焦在下面三个点上:
我是如何快速帮助红星美凯龙搭建研发框架的?
随着红星的港股上市,再次开启互联网战略,成立红星悦家互联网集团,我们在吸收了过去经验教训的基础上,重新架构红星的技术体系。
认证鉴权与API权限控制在微服务架构中的设计与实现(一)
引言: 本文系《认证鉴权与API权限控制在微服务架构中的设计与实现》系列的第一篇,本系列预计四篇文章讲解微服务下的认证鉴权与API权限控制的实现。 1. 背景 最近在做权限相关服务的开发,在系统微服务化后,原有的单体应用是基于session的安全权限方式,不能满足现有的微服务架…
Spring 5:以函数式方式注册 Bean
Spring 5 支持在应用程序上下文中以函数式方式注册 bean。让我们来为此功能列举一些例子。
Spring 思维导图,让 spring 不再难懂(一)
Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架
Spring Boot 系列博客
39.2. Spring Boot Shiro权限管理【从零开始学Spring Boot】
Spring Bean 的生命周期
关于Spring生命周期的资料非常多,内容大同小异,本文就当做是学习笔记吧。所谓生命周期,就是从出生到死亡的过程,我想要知道的是在Spring容器中,一个bean是怎么从出生走向死亡的,这里面的过程非常丰富,也就意味着我们可以更加灵活的使用Spring容器来为我们工作。所以这也…
Spring4.x高级话题(一):Spring Aware
Spring的依赖注入的最大亮点就是你所有的Bean对Spring容器的存在是没有意识的。即你可以将你的容器替换成别的容器,例如Goggle Guice,这时Bean之间的耦合度很低。
但是在实际的项目中,我们不可避免的要用到Spring容器本身的功能资源,这时候Bean必须要…
微服务化改造系列之四:授权中心
这篇文章是微服务化改造系列的第四篇,主题是授权中心。
springweb开发中编码乱码问题解析
因为平时开发过程中总遇到乱码的问题,很烦恼,因此总结了一下,加深了自己的印象,有些粗糙,有不正确的地方欢迎指正。最有效的是自己撸码模拟一下所有可能出现乱码的情况。 一句话就能说明问题: 字符在保存时的编码格式如果和要显示(解码)时的编码格式不一样的话,就会出现乱码问题。因此我们…
一个基于Spring Boot的API、RESTful API项目种子(骨架)
最近使用Spring Boot 配合 MyBatis 、通用Mapper插件、PageHelper分页插件 连做了几个中小型API项目,做下来觉得这套框架、工具搭配起来开发这种项目确实非常舒服,团队的反响也不错。在项目搭建和开发的过程中也总结了一些小经验,与大家分享一下。
在开发一个API项目之前,搭建项目、引入依赖、配置框架这些基础活自然不用多说,通常为了加快项目的开发进度(早点回家)还需要封装一些常用的类和工具,比如统一的响应结果封装、统一的异常处理、接口签名认证、基础的增删改差方法封装、基础代码生成工具等等,有了这些项目才能开工。
然而,下次再做类似的项目上述那些步骤可能还要搞一遍,虽然通常是拿过来改改,但是还是比较浪费时间。所以,可以利用面向对象抽象、封装的思想,抽取这类项目的共同之处封装成了一个种子项目(估计大部分公司都会有很多类似的种子项目),这样的话下次再开发类似的项目直接在该种子项目上迭代就可以了,减少无意义的重复工作。
在相关项目上线之后,我花了点时间对该种子项目做了一些精简,现在已经分享到GitHub了,如果你正准备做类似项目,可以去克隆下来试试,项目地址&使用文档:https://github.com/lihengming/spring-boot-api-project-seed 。
JAVA 程序员一定知道的优秀第三方库(2016 版)
每个程序员都知道要避免重复发明轮子——尽可能使用那些优秀的第三方框架或库,但当真正进入开发时,我却经常发现他们有时并不知道那些轮子在哪里。这篇文章向 JAVA 程序员们推荐了作者使用过的优秀第三方库。
几种常见的微服务架构方案——ZeroC IceGrid、Spring Cloud、基于消息队列、Docker Swarm
微服务架构是当前很热门的一个概念,它不是凭空产生的,是技术发展的必然结果。虽然微服务架构没有公认的技术标准和规范草案,但业界已经有一些很有影响力的开源微服务架构平台,架构师可以根据公司的技术实力并结合项目的特点来选择某个合适的微服务架构平台,以此稳妥地实施项目的微服务化改造或开…
使用Spring Cloud和Docker构建微服务架构
本文通过使用Spring Boot、Spring Cloud和Docker构建的概念型应用示例,提供了了解常见的微服务架构模式的起点。
35 个 Java 代码性能优化总结
代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BU…
使用 Keycloak 轻松保护 Spring Boot 应用程序
尽管安全性是应用程序的一个关键点,但是在开发中实施起来确实比较麻烦。更加麻烦的是,这个关键点通常不怎么受重视,实现的效果普遍的 low,而且受到诸多方面的掣肘。
Spring 重定向指南
本文将重点介绍在 Spring 中实现重定向(Redirect),并将讨论每个策略背后的原因。
让我们先来考虑在 Spring 应用程序中为什么您可能需要做一个重定向的原因。
spring-boot-api-project-seed: 基于 Spring Boot & MyBatis 的种子项目
「Spring Boot API Project Seed 是一个基于Spring Boot & MyBatis的种子项目,用于快速构建中小型API、RESTful API项目,该种子项目已经有过多个真实项目的实践,稳定、简单、快速,使我们摆脱那些重复劳动,专注于业务代码编写,减少加班。」
【Spring 5】响应式Web框架前瞻
引子:被誉为“中国大数据第一人”的涂子沛先生在其成名作《数据之巅》里提到,摩尔定律、社交媒体、数据挖掘是大数据的三大成因。IBM的研究称,整个人类文明所获得的全部数据中,有90%是过去两年内产生的。在此背景下,包括NoSQL,Hadoop, Spark, Storm, Kyli…