自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

日有寸进

世上只有一种英雄主义,就是在认清生活真相之后依然热爱生活。

  • 博客(38)
  • 资源 (1)

原创 结合 Mybatis 的 logging 包源码理解适配器模式、代理模式
原力计划

适配器模式适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁,将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。Target:目标角色,期待得到的接口.Adaptee:适配者角色,被适配的接口.Adapter:适配器角色,将源接口转换成目标接口.适用场景:当调用双方都不太容易修改的时候,为了复用...

2020-04-30 21:49:05 117

原创 Mybatis 多对多关联查询的两种方式:嵌套结果与嵌套查询

先决条件多对多需要一种中间表建立连接关系多对多关系是由两个一对多关系组成的,一对多可以也可以用两种方式实现嵌套结果Mapper 接口List<TUser> selectUserRole();Mapper XML配置<select id="selectUserRole" resultMap="userRoleInfo"> select a.id, ...

2020-04-29 22:02:37 516

原创 Mybatis 的一级缓存与二级缓存

String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);//创建 SqlSessionFactory SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()....

2020-04-29 20:44:45 83

原创 Mybatis 一对多关联查询的两种方式:嵌套结果与嵌套查询

嵌套结果Mapper 接口List<TUser> selectUserJobs1();返回结果会将查出来的表根据<id>合并Mapper XML配置<resultMap id="BaseResultMap" type="TUser"> <id column="id" property="id" /> <result colu...

2020-04-29 18:18:24 361

原创 Mybatis 一对一关联查询的两种方式:嵌套结果与嵌套查询

嵌套结果Mapper 接口List<TUser> selectUserPosition1();Mapper xml文件<resultMap id="BaseResultMap" type="TUser"> <id column="id" property="id" /> <result column="user_name" property=...

2020-04-29 17:01:25 419

原创 Mybatis 使用 foreach 标签实现批量操作

拼装 in 条件入参为数组或者列表Mapper 接口List<TUser> selectForeach4In(String[] names);Mapper xml文件<select id="selectForeach4In" resultMap="BaseResultMap"> select <include refid="Base_Column_Li...

2020-04-26 10:39:16 82

原创 有关 ThreadLocal 的都在这里了

ThreadLocal辨析与Synchonized的比较ThreadLocal和Synchonized都用于解决多线程并发访问。Synchronized:利用锁的机制,使变量或代码块在某一时该仅仅能被一个线程访问。ThreadLocal:为每个线程都提供了变量的副本,使得每个线程在某一时间访问到的并非同一个对象,这样就隔离了多个线程对数据的数据共享。Spring的事务就借助了Thre...

2020-04-25 20:56:01 104

原创 有关“引用”、“对象”、“引用对象”的误解和看过源码说明后的理解

当看到Object o = new Object();有人说,“我们创建了一个名为 o 的对象。”对吗?大家常常这么说,可严格意义上并不正确。正确的解读是:创建了一个引用 o 和一个 Object 对象,并把 o 指向(refer to)了这个 Object 对象(referent,所指之物)。这个 o,我们称之为引用。打印 o,会看到对象的地址,如 java.lang.Objec...

2020-04-25 19:15:17 74

原创 Mybatis 里的 where、set、trim 标签

动态 Sql 的辅助元素where、set、trim 作为动态 Sql 的辅助元素,起作用是处理 sql 的封装问题<where>常与 <select> 搭配使用<select id="selectIfandWhereOper" resultMap="BaseResultMap"> select <include refid="Base_Col...

2020-04-25 10:25:41 67

原创 Feign 的使用

Feign 简介Feign 是对 Hystrix 和 Ribbon 的封装,简便了代码的编写,代价是对服务的性能有一定的影响,在并发量非常高的场景下不建议使用。(用 Hystrix 的场景并发量能不高么?所以基本上就是不建议使用)配置与使用服务发现方依赖配置<dependency> <groupId>org.springframework.cloud&l...

2020-04-24 13:22:06 79

原创 Hystrix 做服务的隔离、降级、熔断

配置依赖配置<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId></dependency>启动类配置//开启断路器...

2020-04-23 21:45:41 94

原创 Hystrix Dashboard 配置

数据监控需要额外创建一个工程依赖配置<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocati...

2020-04-22 20:19:35 71

原创 Ribbon 搭配 eureka 使用:调用远程接口

配置方法一:配置文件配置eureka 客户端(服务发现方) bootstrap.properties 配置这里,服务注册方的服务名是 micro-order#搭配eureka服务端使用,从eureka服务端获得服务地址ribbon.eureka.enabled=true#不搭配eureka服务端使用,指定调用的节点#micro-order.ribbon.listOfServers=...

2020-04-22 13:16:30 151

原创 Eureka 高可用

架构服务端配置新增配置文件application-8761.propertiesserver.port=8761eureka.instance.hostname=Eureka8761#是否注册到eurekaeureka.client.registerWithEureka=true#是否从eureka中拉取注册信息eureka.client.fetchRegistry=true...

2020-04-20 23:01:28 221

原创 Eureka 用户认证

相关文章Eureka 服务端配置Eureka 客户端配置使用场景希望给 Eureka 的服务端和客户端的使用加上条件解决思路利用 SpringSecurity服务端依赖配置<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spri...

2020-04-18 11:48:07 88

原创 IDEA 的 RunDashboard 配置

使用场景一个大模块下有很多小模块的 SpringBoot 项目,想启用小模块的 SpringBoot 项目,需要找到对应的文件夹下找启动类,很麻烦。配置方法在大模块下找到 .idea 文件夹,编辑workspace.xmlctrl + R 寻找 RunDashboard 配置,添加配置<option name="configurationTypes"> <set&...

2020-04-18 11:07:37 59

原创 Eureka 客户端配置

结构如图所示,eureka 模块就是 eureka 服务端,另外 2 个模块都属于 eureka 客户端,无论是服务提供方还是服务发现方。它们的配置也是相同,不同的是使用方式。依赖配置<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns...

2020-04-18 10:53:10 151

原创 Eureka 服务端配置

结构如图所示,eureka 模块就是 eureka 服务端,另外 2 个模块都属于 eureka 客户端。依赖配置<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSch...

2020-04-18 09:50:46 101

原创 SpringBoot 源码阅读(2)@SpringBootApplication

@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTO...

2020-04-13 22:39:57 65

原创 SpringBoot 源码阅读(1)启动类 run 方法

重点要完成Spring容器的启动把项目部署到tomcat源码类 SpringApplicationpublic static ConfigurableApplicationContext run(Class<?>[] primarySources, String[] args) { return new SpringApplication(primarySources)...

2020-04-13 16:08:04 120

原创 SpringBoot 整合 RabbitMQ(高级篇)

pom.xml 引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependency>application.properties 配置...

2020-04-09 11:55:52 162

原创 SpringBoot 整合 RabbitMQ

步骤一pom.xml 引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependency>步骤二启动类上,打上注解@Enable...

2020-04-08 09:52:09 61

原创 SpringBoot 整合 Actuator

步骤一pom.xml 依赖配置<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>步骤二applic...

2020-04-05 16:21:43 244

原创 SpringBoot 整合 swagger2

步骤一pom.xml 依赖配置<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version></dependency...

2020-04-05 12:27:23 33

原创 mybatis 逆向生成

步骤一<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>RELEASE</version> &l...

2020-04-05 12:05:17 43

原创 SpringBoot 整合 mybatis

步骤一pom.xml 依赖配置<!-- 把mybatis的启动器引入 --><dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> &l...

2020-04-05 11:42:50 65

原创 SpringBoot 整合 druid

步骤一pom.xml 引入依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.26</version></dependency>步骤二@Da...

2020-04-05 11:14:54 82

原创 SpringBoot 整合 druid(多数据源)

步骤一pom.xml 引入依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.26</version></dependency><depe...

2020-04-05 11:12:58 290

原创 SpringBoot 整合 redis

步骤一pom.xml 依赖配置<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>步骤二applic...

2020-04-04 17:49:25 54

原创 SpringBoot 整合 servlet、filter、listener

步骤一在 SpringBoot 启动类上,打上@ServletComponentScan(basePackages = {""})步骤二类继承 HttpServlet,打上@WebServlet(urlPatterns = "/")类继承 Filter,打上@WebFilter(urlPatterns = "/",filterName = "")类继承 ServletCont...

2020-04-04 10:25:35 44

原创 SpringBoot 热部署

pom.xml 配置<!--热部署--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional>&...

2020-04-03 20:56:39 41

原创 Dubbo 线程模型

两种线程IO线程:配置在netty连接点的用于处理网络数据的线程,主要处理编解码等直接与网络数据打交道的事件。业务线程:用于处理具体业务逻辑的线程,可以理解为自己在provider上写的代码所执行的线程环境。Dubbo 默认采用的是长连接的方式,即默认情况下一个consumer和一个provider之间只会建立一条链接,这种情况下:IO线程的工作就是编码和解码数据,监听具体的数据请求,...

2020-04-03 19:15:12 64

原创 Dubbo 源码阅读(九)ProtocolFilterWrapper

Filter 调用源码public class ProtocolFilterWrapper implements Protocol { private final Protocol protocol; public ProtocolFilterWrapper(Protocol protocol) { if (protocol == null) { ...

2020-04-03 11:41:18 304

原创 Dubbo 源码阅读(八)RegistryProtocol

RPC过程源码@Override@SuppressWarnings("unchecked")public <T> Invoker<T> refer(Class<T> type, URL url) throws RpcException { //"registry" "dubbo" url = url.s...

2020-04-02 19:57:55 150

原创 Dubbo 源码阅读(七)ReferenceBean<T>

服务引入的过程源码过长的源码省略了,看重点afterPropertiesSet() -&gt; getObject()@Overridepublic Object getObject throws Exception { return get();}跟 get:类 ReferenceConfigpublic synchronized T get() { if (...

2020-04-01 20:46:12 159

原创 Dubbo 源码阅读(六)ServiceBean<T>

服务暴露的过程源码过长的源码省略了,看重点afterPropertiesSet() -&gt; export()@Overridepublic void export() { super.export(); // Publish ServiceBeanExportedEvent publishExportEvent();}跟 export:类 Servi...

2020-04-01 20:46:03 50

原创 Dubbo 源码阅读(五)@EnableDubbo

@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Inherited@Documented@EnableDubboConfig //解析属性文件@DubboComponentScan //扫描@Service和@referencepublic @interface EnableDubbo { @...

2020-04-01 19:08:36 139

原创 Dubbo 源码阅读(四)injectExtension

一个实现类里需要依赖另一个 @SPI 接口的实例,怎么办?如下示例,你需要写一个 set 方法:public class OrderServiceImpl implements OrderService { private InfoService infoService;//是dubbo的扩展点,是spring的bean接口 public void setInfoServic...

2020-04-01 10:03:59 117

mysql-5.7.9-linux-glibc2.5-x86_64.tar.gz

Linux 使用的版本是centos 7,为方便起见,先把防火墙关闭,配置好网络,在安装部分,会分成两部分讲,首先讲单实例安装,也就是一台服务器上就装一个mysql,接下来就多实例安装,在一个服务器上安装2个甚至多个mysql.

2019-09-17

空空如也

空空如也
提示
确定要删除当前文章?
取消 删除