文章目录 一.说明 1.1 XMemcached客户端说明 1.2 项目结构说明 1.3 依赖说明 二.spring 整合 memcached 2.1 单机配置 2.2 集群配置 2.3 存储基本类型测试用例 2.5 存储实体对象测试用例 附:memcached 基本命令 源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 一.说明 1.1 XMemcached客户端说明 XMemcached是基于java nio的mem…
文章目录 一.说明 1.1 XMemcached客户端说明 1.2 项目结构说明 1.3 依赖说明 二.spring 整合 memcached 2.1 单机配置 2.2 集群配置 2.3 存储基本类型测试用例 2.5 存储实体对象测试用例 附:memcached 基本命令 源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 一.说明 1.1 XMemcached客户端说明 XMemcached是基于java nio的mem…
源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 一.说明 1.1 项目结构说明 本用例关于rabbitmq的整合提供简单消息发送和对象消费发送两种情况下的sample. rabbitBaseAnnotation.java中声明了topic类型的交换机.持久化队列.及其绑定关系,用于测试说明topic交换机路由键的绑定规则. rabbitObjectAnnotation.java中声明了direct类型的交换机,持久化队…
源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 一.说明 1.1 项目结构说明 配置文件位于resources下,项目以单元测试的方式进行测试. 1.2 依赖说明 除了spring的基本依赖外,需要导入mongodb整合依赖包 <!--spring mongodb 整合依赖--> <dependency> <groupId>org.springframework.data</groupI…
源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 一.说明 1.1 项目结构说明 项目模拟一个简单的群聊功能,为区分不同的聊天客户端,登录时候将临时用户名存储在session当中: CustomHander为消息的自定义处理器: CustomHandershakerInterceptor为自定义的 websocket 的握手拦截器: 项目以web的方式构建. 1.2 依赖说明 除了基本的spring 依赖外,还需要导入w…
文章目录 一. 项目结构说明 二.项目依赖 三.公共模块(dubbo-common) 四. 服务提供者(dubbo-provider) 4.1 productService是服务的提供者( 商品数据用模拟数据展示) 4.2 在dubbo.xml暴露服务 五.服务消费者(dubbo-consumer) 1.在dubbo.xml调用远程的服务 2.消费服务 六.项目构建的说明 七.关于dubbo新版本管理控制台的安装说明 源码Gitub地址:https://github.com/heibaiying…
文章目录 一.搭建hello spring工程 1.1 项目搭建 1.2 相关配置讲解 二.配置自定义拦截器 三.全局异常处理 四.参数绑定 4.1 参数绑定 4.2 关于日期格式转换的三种方法 五.数据校验 六.文件上传与下载 6.1 文件上传 6.2 文件下载 七.Restful风格的请求 源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 一.搭建hello spring工程 1.1 项目搭建 1.新建maven w…
源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 一.说明 1.1 项目结构说明 本用例关于rabbitmq的整合提供简单消息发送和对象消费发送两种情况下的sample. rabbitBaseAnnotation.java中声明了topic类型的交换机.持久化队列.及其绑定关系,用于测试说明topic交换机路由键的绑定规则. rabbitObjectAnnotation.java中声明了direct类型的交换机,持久化队…
源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 一.说明 1.1 项目结构说明 配置文件位于com.heibaiying.config下,项目以单元测试的方式进行测试. 1.2 依赖说明 除了spring的基本依赖外,需要导入mongodb整合依赖包 <!--spring mongodb 整合依赖--> <dependency> <groupId>org.springframework.dat…
源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 一.说明 1.1 项目结构说明 项目模拟一个简单的群聊功能,为区分不同的聊天客户端,登录时候将临时用户名存储在session当中: webconfig 包是基础注解的方式配置web,在spring-base-annotation项目中已经讲解过每个类作用: CustomHander为消息的自定义处理器: CustomHandershakerInterceptor为自定义的…
文章目录 一. 项目结构说明 二.项目依赖 三.公共模块(dubbo-ano-common) 四. 服务提供者(dubbo-ano-provider) 4.1 提供方配置 4.2 使用注解@Service暴露服务 五.服务消费者(dubbo-ano-consumer) 1.消费方的配置 2.使用注解@Reference引用远程服务 六.项目构建的说明 七.关于dubbo新版本管理控制台的安装说明 源码Gitub地址:https://github.com/heibaiying/spring-sam…
文章目录 一.搭建hello spring工程 1.1 项目搭建 1.2 相关注解说明 二.配置自定义拦截器 三.全局异常处理 四.参数绑定 4.1 参数绑定 4.2 关于日期格式转换的三种方法 五.数据校验 六.文件上传与下载 6.1 文件上传 6.2 文件下载 七.Restful风格的请求 源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 一.搭建hello spring工程 1.1 项目搭建 1.新建maven w…
源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 项目目录结构 1.创建maven工程,除了Spring基本依赖外,还需要导入mybatis和druid的相关依赖 <!--jdbc 相关依赖包--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifac…
文章目录 一.说明 1.1 Redis 客户端说明 1.2 Redis可视化软件 1.3 项目结构说明 1.3 依赖说明 二.spring 整合 jedis 2.1 新建基本配置文件和其映射类 2.2 单机配置 2.3 集群配置 2.4 单机版本测试用例 2.5 集群版本测试用例 三.spring 整合 redisson 2.1 单机配置 2.2 集群配置 2.3 存储基本类型测试用例 2.4 存储实体对象测试用例 附:Redis的数据结构和操作命令 源码Gitub地址:https://gith…
文章目录 一.说明 1.1 Redis 客户端说明 1.2 Redis可视化软件 1.3 项目结构说明 1.3 依赖说明 二.spring 整合 jedis 2.1 新建基本配置文件 2.2 单机配置 2.3 集群配置 2.4 单机版本测试用例 2.5 集群版本测试用例 三.spring 整合 redisson 2.1 单机配置 2.2 集群配置 2.3 存储基本类型测试用例 2.4 存储实体对象测试用例 附:Redis的数据结构和操作命令 源码Gitub地址:https://github.co…
源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 项目目录结构 1.创建maven工程,除了Spring基本依赖外,还需要导入mybatis和druid的相关依赖 <!--jdbc 相关依赖包--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifac…
这是Mysql系列第11篇. 环境:mysql5.7.25,cmd命令中进行演示. 当我们查询的数据来源于多张表的时候,我们需要用到连接查询,连接查询使用率非常高,希望大家都务必掌握. 本文内容 笛卡尔积 内连接 外连接 左连接 右连接 表连接的原理 使用java实现连接查询,加深理解 准备数据 2张表: t_team:组表. t_employee:员工表,内部有个team_id引用组表的id. drop table if exists t_team; create table t_team(…
目录 一.什么是 MyBatis? 二.整合方式 三.实战 四.测试 本文介绍下SpringBoot整合Mybatis(XML配置方式)的过程. 一.什么是 MyBatis? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型.接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Jav…
一.介绍 SpringBoot有两种方法与数据库建立连接,一种是集成Mybatis,另一种用JdbcTemplate,本文主要讨论集成Mybatis方式. SpringBoot整合Mybatis也有两种方式,分别为XML配置方式和注解方式,主要优势点如下: XML配置方式:隔离sql和业务代码,清晰表达sql,尤其对于较长的sql. 注解方式:代码更加精简,方便. 本文主要讨论XML配置方式,后续文章讨论注解方式. 二.SpringBoot整合Mybatis连接Mysql数据库 1.添加MySQ…
Spring 的两大核心,一是IOC,另一个是AOP,本博客从原理.AOP代码以及AOP使用三个方向来讲AOP.先给出一张AOP相关的结构图,可以放大查看. 一.Spring AOP 接口设计 1.PointCut (连接点,定义匹配哪些方法) 首先打开 Spring 的源码,查看 PointCut 接口设计: public interface Pointcut { ClassFilter getClassFilter(); MethodMatcher getMethodMatcher(); P…
之前讲了Springboot整合Mybatis,介绍了如何自动生成pojo实体类.mapper类和对应的mapper.xml 文件,并实现最基本的增删改查功能.mybatis 插件自动生成的mapper 实现了大部分基本.通用的方法,如:insert.update.delete.select 等大概20个左右方法,都是比较基础的增删改查,这些通用Mapper提供的方法基本都能满足各种单表操作需求.但是,在实际工作中通用Mapper并不能满足所有的工作,或是某个业务需要手写 sql 语句.或是多表…
文章目录 一.说明 1.1 项目结构说明 1.2 依赖说明 二.spring aop 2.1 创建待切入接口及其实现类 2.2 创建自定义切面类 2.3 配置切面 2.4 测试切面 附: 关于切面表达式的说明 源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 一.说明 1.1 项目结构说明 切面配置位于resources下的aop.xml文件,其中CustomAdvice是自定义切面类,OrderService是待切入的…
Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持.使用 Spring Cloud Alibaba Nacos Config,您可以在 Nacos Server 集中管理你 Spring Cloud 应用的外部属性配置. 首先我们来看一下,微服务架构下关于配置文件的一些问题: 配置文件相对分散,在一个微服务架构中,配置文件会随着微服务的增多变得越来越多,而且分散在各个微服务中,不好统一管理和配置. 配置文件无法区分环境,微服务…
上一篇我们介绍了如何在Spring Boot中整合我们国人最常用的MyBatis来实现对关系型数据库的访问.但是上一篇中使用了注解方式来实现,而对于很多MyBatis老用户还是习惯于XML的开发方式,所以这篇,我们就来看看如何使用XML的方式来进行开发. 动手试试 本篇将不具体介绍整合MyBatis的基础内容,读者可以阅读上一篇:Spring Boot 2.x基础教程:使用MyBatis访问MySQL来了解该部分内容. 下面的实操部分将基于上一篇的例子之后进行,基础工程可通过文末仓库中的chap…
本文是基于xml配置的方式来整合SpringMVC.Spring和Mybatis(基于注解的方式会再写一篇文章),步骤如下: (1)首先自然是依赖包的配置文件 pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.a…
事务 事务全称叫数据库事务,是数据库并发控制时的基本单位,它是一个操作集合,这些操作要么不执行,要么都执行,不可分割.例如我们的转账这个业务,就需要进行数据库事务的处理. 转账中至少会涉及到两条 SQL 语句: update Acoount set balance = balance - money where id = 'A'; update Acoount set balance = balance + money where id = 'B' 上面这两条 SQL 就可以要看成是一个事务,必…
之前的用户信息我们都是使用的内存用户,测试例子可以,实际中使用肯定不行,需要结合数据库进行验证用户.这就是本节的重点: 项目目录如下:  在之前的项目中的依赖中添加两个依赖: <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version>…
1.介绍 上一篇博客写了使用AOP进行统一日志管理的注解版实现,今天写一下使用XML配置实现版本,与上篇不同的是上次我们记录的Controller层日志,这次我们记录的是Service层的日志.使用的工程还是原来的那个,具体的Spring mvc 工程搭建暂不介绍.上篇记录controller层日志的时候是将切面类组件叫给spring MVC 进行管理,因为 controller 也是交给spring MVC进行管理的,但是记录service 层日志的时候应该就应该再spring 容器中进行了,…
索引: 开源Spring解决方案--lm.solution 参看代码 GitHub: solution/pom.xml web/pom.xml web.xml WebInitializer.java WebConfig.java RootConfig.java 一.引入必要类库 spring-context spring-context-support spring-webmvc:引入该包后,maven 会自动解析依赖,引入 spring-web 等包. 1.solution/pom.xml <…
8.4.5 基于注解的“零配置”方式 AspectJ允许使用注解定义切面.切入点和增强处理,而Spring框架则可识别并根据这些注解来生成AOP代理.Spring只是使用了和AspectJ 5 一样的注解,但并没有使用AspectJ的编译器或至如期,底层依赖使用的是Spring AOP,依然是在运行时动态生成AOP代理,并不依赖于AspectJ 的编译器或者织入器. 为了启用Spring 对@AspectJ切面配置的支持,并保证Spring容器中的目标Bean被一个或多个切面自动增强,必须在Sp…