企业级开发框架
SSM、Spring Boot、Spring Cloud
Java开发之旅
穿过鲜花,走过荆棘
展开
-
Spring Boot集成支付宝(最新版SDK)—— 手机支付
前言前些日子写了一篇关于H5网页集成支付宝的文章:Spring Boot集成支付宝(最新版SDK)—— H5/网页支付当时写了好久,往那一坐就是俩小时,写完直接就发布了,发布之后才感觉少点啥——只写了网页支付,忘了写移动端APP支付!APP集成支付宝,还是很简单的(当然建立在上一篇文章的基础上),本文应该写在上一篇文章的,但是上一篇文章的篇幅已经很长了,读起来会很累。所以此文将作为上一篇文章的下集,请先看我的上一篇文章再回来读此文,再次贴出链接:Spring Boot集成支付宝(最新原创 2020-10-01 18:58:37 · 2144 阅读 · 1 评论 -
Spring Boot集成支付宝(最新版SDK)—— H5/网页支付
闲言碎语最近有朋友咨询第三方支付相关的开发,心血来潮想疾书一番。正好支付宝有提供沙箱环境,我们个人开发者也可以进行开发、测试,不需要你有企业资质,降低了学习门槛。支付宝的Java SDK换成了较新的版本,我个人觉得新版本的SDK和旧版本相比很简洁,值得更换。但是现在网上大量的教程,普遍都是老版本SDK,这是因为新版本才刚出来没多久。所以笔者也想趁这个时机,写下此文,希望后来者集成支付宝的时候能少走弯路。一些重要的网址或文档1、支付宝支付官网:https://www.alipay.c.原创 2020-09-08 22:46:07 · 13001 阅读 · 20 评论 -
Spring Cloud微服务入门级教程(零基础,最详细,可运行)
分布式、微服务架构盛行的今天,Spring Cloud越来越普及,你是否想学习这个框架,又发愁找不到完整的例子?本文将带领你从0开始搭建微服务环境,并且集成网关、熔断器,达到各服务节点的负载均衡,万能脚手架!原创 2019-12-08 16:59:49 · 14265 阅读 · 37 评论 -
Spring Cloud微服务之Feign——声明式服务间调用
目录写在前面服务间调用常见的方案方案一:HttpClient方案二:RestTemplate方案三:Feign框架版本问题及可能遇到的坑搭建服务注册中心搭建服务1——service-a搭建服务2——service-b在service-b中通过Feign调用service-a进阶:Feign服务间调用—传递各种参数再次进阶:引入Hystrix熔断器...原创 2020-02-27 20:40:25 · 1507 阅读 · 3 评论 -
ElasticSearch教程与实战:从搭建服务到Spring Boot整合
目录写在前面Elasticsearch是什么?可以解决什么问题?关于Elasticsearch版本的选择Elasticsearch的几个基本概念索引(index)类型(type)文档(document)安装之前的准备工作开始安装Elasticsearch配置IK中文分词器启动、停止Elasticsearch服务IK分词器测试Spring Boo...原创 2020-01-12 00:11:56 · 1175 阅读 · 0 评论 -
教你搭建Spring Boot项目,包会!
目录 前言开始搭建最简单的Spring Boot工程(下文会延伸)第一步:打开IDEA,新建项目第二步:选择Spring Initializr 第三步:设置项目基本信息第四步:为项目选择依赖 第五步:创建项目文件夹 第六步:等待IDEA完成项目的构建 第七步:创建一个控制器第八步:启动项目,访问测试延伸——搭建实用的Spring Boot+JSP环境...原创 2018-10-23 20:08:15 · 425 阅读 · 0 评论 -
Spring Boot整合MyBatis
目录 前言开始整合第一步:创建数据库表,插入测试数据 第二步:创建项目,并创建相关的包、类或者接口(附代码)1、Student(pojo包)2、StudentDao(dao包)3、StudentMapper(mapper包)4、StudentService(service包)5、StudentServiceImpl(serviceImpl包)6、Stud...原创 2018-10-25 16:27:08 · 270 阅读 · 3 评论 -
Spring Boot整合Redis
本文参考文章:https://www.cnblogs.com/zeng1994/p/03303c805731afc9aa9c60dbbd32a323.html先在Spring Boot项目中的配置文件中配置一下Redis连接信息:spring.redis.database=0spring.redis.host=192.168.1.6spring.redis.port=6379s...转载 2019-05-31 14:28:55 · 231 阅读 · 0 评论 -
Spring Boot通过AOP实现权限控制
目录前言拦截器弊端AOP+注解实现权限控制1、定义权限控制的注解2、定义AOP切面3、在控制层使用注解进行拦截4、运行结果总结前言相信很多人做过的系统中,都有权限分配的需求,我们根据业务规则去指定哪些人可以进行哪些操作,特别是在一些网站的后台管理系统中更为常见。实现权限拦截、管理的方式有多种,拦截器、过滤器、AOP、AOP+注解,甚至最low的在每...原创 2019-07-18 17:02:55 · 5670 阅读 · 7 评论 -
Spring Boot整合ActiveMQ及场景举例(点对点模式、订阅模式)
目录前序为什么要引入MQ注册案例——不使用MQ注册案例——引入MQ(点对点模式)注册案例——引入MQ(发布/订阅模式)安装Active MQ使用Spring Boot进行整合(点对点模式)引入依赖包在application.properties做出配置创建消费者创建消费者运行调试使用Spring Boot进行整合(发布/订阅模式)修改...原创 2019-07-19 13:36:44 · 998 阅读 · 1 评论 -
Spring Boot解决跨域问题(最简单的方式,10行代码)
最开始的时候,博主在用Spring Boot的时候就遇到了跨域问题,但是当时没有用心记下来,也没有笔记记录,只是知道大概在哪个地方写哪些代码。最近又用到Spring Boot搭建后端API,由于好久不用了,就去网上搜索“Spring Boot项目解决跨域”,结果搜出来的全是长篇大论,又是配置文件、又是拦截器、又是@Configuration注解,好大的篇幅,根本不是我最初解决此问题的方式,而且...原创 2019-07-17 17:34:38 · 311 阅读 · 0 评论 -
Spring MVC体系结构(一)
前言此文章可以带领初学者们搭建Spring MVC项目,文中对MVC模式、Spring MVC的诞生背景、原理、体系结构等做了讲解,并以一个例子帮助理解。此博文中的所有图片,均是博主用脑图工具手动画的(网上的太不清晰了,不好找),转载请标明出处!目录前言一、MVC设计模式杂谈第一种:JSP Model1第二种:JSP Model2MVC处理流程及优缺点二、Sprin...原创 2018-09-21 19:13:53 · 31725 阅读 · 0 评论 -
Spring MVC体系结构(二)
目录 前言一、参数传递一、View to Controller二、Controller to View二、视图解析器总结前言在上一篇博文中,我们学习了Spring MVC的原理、处理流程及其体系结构,完成了请求与处理器之间的映射。今天,我们继续深入学习Spring MVC的一些知识,主要是参数传递(View到Controller、Controller到View)...原创 2018-09-22 14:41:39 · 1051 阅读 · 0 评论 -
Spring核心概念
一、初识SpringSpring简述以及用途学习一个框架,我们必然要先知道这个框架可以做什么。做过大型项目的朋友都知道,这些比较大的企业级应用结构复杂,涉及的资源众多,事务密集等等,传统Java EE解决企业级应用问题时的“重量级”架构体系,使它的开发效率、维护成本、应用性能等方面都令人失望。比如各个层级对象之间的耦合度总是达不到一个理想的状态,正是因为对象之间保持着一定程度的依赖,可能当...原创 2018-09-05 22:32:45 · 5226 阅读 · 0 评论 -
IoC和AOP使用扩展
前言本文将分别对IoC和AOP的内容进行一定的扩展,使开发更加简便,体验Spring框架的灵活与强大。这些不同的实现方式都有不同的适应场合,大家可根据实际场景进行比较,做到灵活运用。一、IoC扩展扩展1——构造注入在之前,我们通过属性的setter方法对类的属性进行注入赋值,这种方式叫设值注入。Spring还提供了通过构造函数为属性赋值的方式,称为构造注入。使用<cons...原创 2018-09-10 16:02:16 · 654 阅读 · 0 评论 -
使用Spring为业务层添加声明式事务
前言业务层的职能不仅仅是调用DAO层这么简单,它在进行一个业务的时候,还有一件重要的事要兼顾——事务处理。事务处理是任何企业级应用开发中不能回避的一个重要问题,以往我们通过在业务方法中硬编码的方式进行事务控制,比如这样:Connection connection=null;try { connection=DatabaseUtil.getConnection(); co...原创 2018-09-17 18:14:39 · 4056 阅读 · 0 评论 -
Spring整合UEditor富文本编辑器,并上传图片(最全教程)
目录前戏创建项目下载UEditor的JSP版本在服务器端进行编码配置在前端页面使用并配置UEditor编辑器实现上传图片的功能(上传附件、文件等同理)前戏博主最近在做的项目中,有一个发布新闻的需求,所以用到了富文本编辑器,经过前端人员的对比分析,最终采用了百度开源的UEditor编辑器。但是这个事情并不是前端一个部门的事,这是需要前后端配合的,因为涉及到上...原创 2019-06-22 18:57:31 · 1378 阅读 · 1 评论 -
初识MyBatis——MyBatis基础
简介MyBatis是一个比较优秀的、开源的数据持久层框架,它可以在实体类与SQL语句之间建立映射关系,替开发人员完成了JavaBean组件与数据库记录实体之间的转化,是一种半自动化的ORM实现。它内部封装了通过JDBC访问数据库的操作,支持普通SQL查询、存储过程和高级映射,几乎消除了所有的JDBC代码和参数的手工设置,以及结果集的检索。MyBatis作为持久层框架,其主要思想是将程序中大量的...原创 2018-08-18 12:22:31 · 894 阅读 · 0 评论 -
MyBatis框架——SQL映射文件
前言在之前的一篇博文中,博主搭建了MyBatis开发环境,学习了MyBatis的核心类和接口的作用域及其生命周期,并叙述了核心配置文件的结构,利用SQL映射文件实现了简单的查询。今天具体分享一下关于SQL映射文件的学习,利用SQL映射文件实现较复杂的查询,以及增删改。在数据库新建表UserInfo,字段如下,新建实体类User,属性与数据库表的字段对应,省略实体类User的代码。一...原创 2018-08-22 16:50:02 · 8323 阅读 · 0 评论 -
MyBatis框架——动态SQL
前言动态SQL是MyBatis的一个强大特性,它在一定程度上简化了我们对查询条件的各种情况的处理,什么意思呢?比如查询用户列表,什么参数都不传的情况下查询所有,传入性别参数就按性别查询,传入用户角色就按角色查询,那么这种情况下如果是在传统JDBC访问数据库的场景中实现,我们要写几个判断分支,进行SQL语句的拼接,还有确保SQL语句各关键词之间空格隔开、不能多或少括号、逗号什么的,这是一个比较复...原创 2018-08-26 23:00:25 · 382 阅读 · 0 评论 -
Java对API接口进行限流
package com.shuixian.jianghao.utils;import com.google.common.util.concurrent.RateLimiter;public class LimitUtil { //每秒发出100个令牌,限制并发量为100 private static RateLimiter rateLimiter=RateLimite...原创 2019-04-18 17:58:01 · 2116 阅读 · 0 评论 -
踩坑日记——MyBatis获取自增主键失败
最近博主遇到一个需求,用户在发布一条文章的时候,可以上传图片,那么将用户上传的图片写入到图片服务器之后,需要将这些图片的路径写入到图片表中,而且图片表有一个字段是标明这张图片属于哪一篇文章,所以就需要获取到这个新插入的文章的ID,由于这个ID是自增的,所以就通过MyBatis获取,但是遇到了一个问题:插入文章数据成功之后,通过文章对象的getId()方法,始终获取的是0。为什么呢?原因在于...原创 2019-03-23 09:42:32 · 1424 阅读 · 0 评论 -
使用Jsoup框架基于Java语言进行爬虫
背景市面上的爬虫框架有很多,大都是基于Python的,不得不说Python在处理数据方面很出色,尤其是在把数据做成可视化的图表方面。但是作为Java程序员,对Java情有独钟,我觉得关于Java的爬虫框架也要或多或少的了解,而且平常在工作中有时候需要从网上爬一点数据拿过来用,这个时候来回切换语言也是很不适的,我直接在当前的开发环境扒点数据入库,多好……简单介绍Jsoup是一个Java爬...原创 2018-12-23 00:11:27 · 772 阅读 · 0 评论 -
SSM环境下的Java Web项目设置默认首页
关于设置默认访问首页的方式有很多,经过博主本人将多种实现方式进行对比之后,发现以下这种方式是最方便的,这里做一下分享,更是对自己做一下笔记。一、在web.xml中定义Spring MVC核心DispatcherServlet的时候,加上一个映射路径,这个路径就是你想设置成默认首页、并且你的后端控制器可以拦截的路径,比如在后端Controller设置路径“demo.html”返回到“dem...原创 2019-03-24 18:30:06 · 13079 阅读 · 2 评论 -
Spring整合Solr 7.4以上版本
背景之前项目中用到了Solr搜索引擎,作为Java程序员,难免要用SolrJ来操作我们的Solr服务器,实现索引的增删改查。当时公司用的SolrJ版本较老,今天重新看项目源码的时候,在pom.xml更新了jar包版本,发现有一些方法被标注过时,甚至已经被取代(在API中已经不存在了)。访问Solr官网发布的最新API才明白,SolrJ API发生了一些微妙的变化,虽然这些变化不大,主要...原创 2018-12-09 14:59:51 · 2357 阅读 · 0 评论 -
Spring Boot启动异常:java.lang.TypeNotPresentException
最近使用Spring Cloud和Spring Boot做项目时,出现了这个异常:java.lang.TypeNotPresentException: Type javax.xml.bind.JAXBContext not prese 解决方案:先将Spring Boot的内置服务器替换掉,在pom.xml中做出如下修改:<dependency> <g...原创 2018-11-06 17:07:05 · 10704 阅读 · 0 评论 -
Spring Boot报错:Whitelabel Error Page
今天在搭建Spring Boot项目的时候,在代码方面没有任何错误的情况下,访问页面报了一个这样的错误,一开始很费解,最后查阅文档,发现是因为我的Application启动类的位置放错了,一开始是这样的:但是当Application启动的时候,Spring Boot会加载启动类所在包下及其子包下的所有组件,我这个包结构肯定是加载不到控制器的,所以就会出现404错误。应该将程序的入口(即Ap...原创 2018-10-22 11:48:52 · 323 阅读 · 0 评论 -
Spring中数据源完整配置
<!--配置数据源--> <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource"> <!--基本信息配置--> <property name="driverClassName" value="com.mysql.jd原创 2018-11-30 14:39:00 · 241 阅读 · 0 评论 -
使用Spring MVC实现文件上传
目录 前言一、单文件上传1、导入所依赖的jar包(Spring MVC环境已搭建好的前提下)2、配置MultipartResolver3、编写一个前端页面4、编写控制器5、步骤总结二、多文件上传一、一个input选中多个文件的方式二、多个input表单的方式前言作为强大的Web框架,Spring MVC为文件上传提供了直接的支持,实现文件上传十分...原创 2018-10-06 11:14:01 · 345 阅读 · 0 评论 -
Spring配置补充
一、灵活配置DataSource实现Spring与MyBatis的整合过程中,我们将数据源的配置拿到了Spring配置文件中。实际应用中,Spring还有很多灵活配置方式可以选择。1、使用外部属性文件配置数据源既然MyBatis可以引入外部属性文件,那么Spring肯定也是可以的。在Spring中,使用PropertyPlaceholderConfigurer类可以加载属性文件,在...原创 2018-09-18 12:24:40 · 632 阅读 · 0 评论 -
Spring与MyBatis整合优化
前言在上一篇文章中,我们使用了老老实实的方式对两个框架进行了整合,我们在每一个服务层组件都声明了一个SqlSessionTemplate对象,在调用数据层的时候通过getMapper()方法映射得到某个接口,然后调用里面的方法。直接在业务组件调用getMapper()方法并不是最佳选择,每一次调用这个方法就会做一次反射。mybatis-spring整合包中提供了相关组件,可以不必每次都调用...原创 2018-09-13 12:24:30 · 282 阅读 · 0 评论 -
Spring与MyBatis的整合(初级实现)
前言在之前我们学习了Spring的控制反转以及AOP思想,那么我们如何将这些应用到我们的项目中呢?我们知道,通过MyBatis框架可以实现对数据库的操作,而通过Spring框架的IoC、AOP等机制,能够对项目中的组件进行解耦管理,建立一个低耦合的应用架构。将Spring框架与MyBatis框架整合在一起,在对组件实现解耦的同时,还能使MyBatis的使用变得更加方便、简单。此外,通过Spri...原创 2018-09-12 14:58:01 · 1188 阅读 · 0 评论 -
Spring与MyBatis整合错误:nested exception is java.lang.NoClassDefFoundError
最近在学习整合Spring与MyBatis时,出现了以下异常:Error creating bean with name 'sqlSessionFactoryBean' defined in class path resource [application-mybatis.xml]: Error setting property values; nested exception is org...原创 2018-09-11 10:26:14 · 6495 阅读 · 0 评论 -
使用Commons-FileUpload组件实现文件上传
一、前言随着Internet的普及,网络共享逐渐成为了广大网民传递信息、共享资源的一种常用方式,不管是社交软件中用户将计算机中或者手机中的文件上传至服务器以便他人浏览、欣赏,还是电商网站/软件中商家上传商品图片,都涉及到文件上传,今天就聊聊Web应用中的文件上传。实现文件上传,最底层还是对文件的读写操作,在以前实现起来要编写大量的代码,而且容易引发各式各样的异常。幸运的是现在有好多很实用的上传...原创 2018-07-26 22:41:21 · 14665 阅读 · 5 评论