- 浏览: 1436787 次
- 性别:
- 来自: 广州
最新评论
-
raymond.chen:
谢谢您的分享
使用Ngrok解决通过外网访问内网web应用 -
wangyudong:
速度有点慢,不过在也找到了一个开源的holer,配置一个key ...
使用Ngrok解决通过外网访问内网web应用 -
a1006458222:
...
Axis2的部署和应用 -
偷师来了:
不好意思 这样的博客我觉得就灭有必要分享出来了 命令大家都会看 ...
Consul框架介绍 -
lliiqiang:
怎么直接删除文件夹啊?固定的几个文件可以删除,不固定的呢?需要 ...
Flex AIR —— 文件读写
文章列表
SpringMVC常用的注解
- 博客分类:
- springmvc
@Controller:
用于定义控制器类
@ResponseBody:
表示方法的返回结果直接写入HTTP response body中
@PathVariable:
获取路径参数
@RequestParam:
用在方法的参数前面
@RequestBody
@RestController:
是@Controller和@ResponseBody的合集
@RequestMapping:
提供路由信息,负责URL到Controller中的具体函数的映射
...
一、创建服务配置中心应用
注册中心Eureka Server
注册中心添加用户认证
二、创建Spring Boot Admin Server应用
Admin Server将自身注册到服务注册中心,这样Admin Server就可以通过注册中心获取所有应用,并自动监控这样应用。
1、创建pom.xml文件
<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=&quo ...
Spring Boot Admin是一个开源社区项目,用于监控和管理基于Spring Boot的应用,它是在Spring Boot Actuator的基础上提供简洁的可视化WEB UI。这些应用程序通过Spring Boot Admin Client(通过 HTTP)注册或者使用Spring Cloud(例如 Eureka)发现。
Spring Boot Admin是由服务端和客户端组成,Spring Boot Admin作为Server端,其他要被监控的应用作为Client端。
一、Spring Boot Admin Server端的搭建:
1、创建pom.xml文件
...
网关过滤器工厂
常用的filters配置
filters:
- AddRequestHeader=X-Request-Foo, Bar
- SetRequestHeader=X-Response-Foo, Bar
- RemoveRequestHeader=X-Request-Foo
...
全局过滤器GlobalFilter
全局过滤器是一系列特殊的过滤器,会根据条件应用到所有路由中。其不需要在配置文件中配置。可以用它来实现很多统一化处理的业务需求,比如权限认证,IP访问限制等等。
GlobalFilter ...
Predicate来源于Java 8,是Java8中引入的一个函数,Predicate接受一个输入参数,返回一个布尔值结果。该接口包含多种默认方法来将Predicate组合成其他复杂的逻辑(与,或,非)。可以用于接口请求参数校验、判断新老数据是否有变化需要进行更新操作。
Spring Cloud Gateway利用Predicate的特性实现了各种路由匹配规则,有通过Header、请求参数等不同的条件来进行作为条件匹配到对应的路由。
Spring Cloud Gateway内置的Predicate
After
...
Disruptor是用于在多个线程之间通信的高性能低延时的内存消息队列。其实现了“队列”的功能,而且是一个有界队列。它适合“生产者-消费者”模型的应用场合。
Disruptor是一个高性能的异步处理框架,也可以认为是一个观察者模式实现,或者事件-监听模式的实现。
它类似于ArrayBlockingQueue队列类。
高性能原理:
引入环形的数组结构:缓存基于数组,用位运算替代求模。缓存的长度总是2的n次方,这样可以用位运算 i & (length - 1) 替代 i % length。预分配缓存对象,通过更新缓存里对象的属性而不是删除对象来减少 ...
自定义EnableXXX注解类
- 博客分类:
- springboot
该自定义注解类用到ImportSelector接口类,它用于判断被@Configuration注解修饰的类是否应该被导入。处理ImportSelector接口时,bean定义已经被加载,但是bean还没有被实例化。
DeferredImportSelector接口类:继承于ImportSelector接口类,延迟选择性导入类,在所有被@Configuration注解修饰的类处理完成后才运行。DeferredImportSelector用在处理@Conditional相关的导入时特别有用。
EnableXXX >> @Import >> ImportSe ...
自定义Spring命名空间
- 博客分类:
- Spring
1、定义schema约束xsd文件
将xsd文件放到 META-INF 目录下
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:beans="http://www.springframework.org/schema/beans"
...
Spring表达式语言
- 博客分类:
- Spring
Spring表达式语言(Spring Expression Language,简称SpEL):是一个支持运行时查询和操作对象图的强大的表达式语言。
语法:
#{...}
字面量:
整数: #{8}
浮点数: #{8.8}
字符串: #{'玛莎拉蒂'}
布尔值: #{true}
静态方法调用:
#{T(java.lang.Math).PI * 75.8f}
引用bean、属性、方法:
#{car}
#{car.toString()} ...
Mybatis的拦截器
- 博客分类:
- mybatis
Mybatis采用责任链模式,通过动态代理组织多个拦截器,通过这些拦截器可以改变Mybatis的默认行为。Mybatis的拦截器实现机制,使用的是JDK的InvocationHandler。
Mybatis对以下接口进行拦截:
Executor
是 Mybatis的内部执行器,它负责调用StatementHandler操作数据库,并把结果集通过 ResultSetHandler进行自动映射,另外,他还处理了二级缓存的操作。
执行SQL语句,并且对事务、缓存等提供统一接口
StatementH ...
Springboot常用注解
- 博客分类:
- springboot
Spring相关注解类
Conditional相关注解
@SpringBootApplication
包含@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan注解
@SpringBootConfiguration
包含 @Configuration 注解
@EnableAutoConfiguration
开启自动配置功 ...
关键注解层次关系:
@SpringBootApplication
@SpringBootConfiguration
@Configuration
@Component
@EnableAutoConfiguration //启用自动配置功能
@AutoConfigurationPackage //自动获取自动配置的basePackage
@Import(AutoConfigurationPackages.Registrar.class) //Registrar的默认包路径为Main类所在的包路径
@Import(AutoConfiguration ...
自定义Conditional
- 博客分类:
- springboot
常用的内置Conditional注解:
@ConditionalOnClass:当classpath下有指定的类的条件下
@ConditionalOnMissingClass:当classpath下没有指定的类的条件下
@ConditionalOnBean:当容器中有指定的Bean的条件下
@ConditionalO ...
java的类加载机制
- 博客分类:
- Java
ClassLoader的双亲委派模型:
所有的类加载器都是有层级结构的,每个类加载器都有一个父类类加载器(通过组合实现,而不是继承),除了启动类加载器(Bootstrap ClassLoader)
当一个类加载器接收到一个类加 ...