自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Cocos的博客

千里之始于硅步

  • 博客(31)
  • 资源 (2)
  • 收藏
  • 关注

原创 SpringBoot启动Tomcat原理与嵌入式Tomcat实践

导读作为一个开发,使用Spring Boot 时,和传统的Tomcat 部署相比,我们只需要关注业务的开发,项目的启动和部署变的十分简单, 那么它背后是怎么实现的, 隐藏着什么? 本文先从一个嵌入式Tomcat的应用开发,再到Spring Boot的集成进行分解实践,由浅到深, 希望能你有所收获。 那么请系好安全带,打卡上车, 一起领略被忽略的风景。嵌入式Tomcat使用我们在看Spring Boot 之前先看下嵌入式Tomcat是怎么进行独立开发的。代码地址, 对应embed-tomcat模块:

2021-01-05 16:53:12 988 1

原创 Lambda之Supplier

特质生成者模型,无输入参数,返回指定类型测试测试参照@Datapublic static class Foo { String strVal = "Hello"; int intVal = 1; Double doubleVal = 2.0; Long longVal = 3L; Boolean trueVal = true; String strTmp; int intTmp = 1; Double doubleTmp; Long longTmp;}万能型Su

2020-06-18 10:30:46 1108

原创 Lambda之Function

特质函数,接收一个或多个参数,返回指定类型结果测试测试数据@Datapublic static class Foo { String strVal = "Hello"; int intVal = 1; Double doubleVal = 2.0; Long longVal = 3L; Boolean trueVal = true; String strTmp; int intTmp = 1; Double doubleTmp; Long longTmp;}万能

2020-06-18 10:12:52 2068

原创 阿里云 ECS Hadoop-异常“could only be replicated to 0 nodes, instead of 1” 无法上传文件

阿里云搭建伪分布式遇到这个问题,正常办法解决不了了的时候,可以一试,步骤如下:1、/etc/hosts 文件的多余主机名全部注释掉 ,新增加一个你的内网IP 和 hadoop的用户名; 注意:这里是内网地址,而不是阿里云的外网地址,先 ifconfig 查看本机内网ip[root@cx hadoop]# ifconfig eth0: flags=4163 mtu 1

2020-06-18 09:00:00 351

原创 Docker搭建Zookeeper和Kafka集群

安装Docker-compose创建一个带子网的专有网络创建一个叫zoo_kafka的网络,子网网段172.23.0.10/20root@localhost ]# docker network create --subnet=172.23.0.10/20 zoo_kafkaroot@localhost ]# docker network lsNETWORK ID NAM...

2020-06-17 18:34:41 402 2

原创 Lambda之Consumer

特质消费者模式,接收1个或多个参数,进行逻辑处理,无返回值。测试测试数据@Datapublic static class Foo { String strVal = "Hello"; int intVal = 1; Double doubleVal = 2.0; Long longVal = 3L; Boolean trueVal = true; String strTmp; int intTmp = 1; Double doubleTmp; Long longTmp;

2020-06-17 18:28:39 1833

原创 基于Cglib的高效copy工具类

这里使用的cglib是spring core包的。import lombok.experimental.Accessors;import lombok.extern.slf4j.Slf4j;import org.springframework.cglib.beans.BeanCopier;import org.springframework.cglib.core.Converter;import org.springframework.core.convert.ConversionFailedEx

2020-06-15 12:05:52 1469

原创 Spring源码中的工具类

spring-core整合了asm和cglib包,并定制了部分功能StandardAnnotationMetadata获取类描述信息,根据注解生成AnnotatedGenericBeanDefinition时很有用 StandardAnnotationMetadata.from(type);AnnotatedElementUtils、AnnotationUtils查找类注释Method m = Leaf.class.getMethod("annotatedOnLeaf");assertTha

2020-06-15 11:57:30 658

原创 Mybatis加载时序图

元数据读取、配置流程:XMLConfigBuilderXPathParserConfigurationMapperRegistryMapperAnnotXMLMapperBuilderMapperBuildResultMapResolverXMLStatemXMLIncludePropertyParserVariableToGenericTokenParserXMLScriptBuilderTextSqlNodeDynamicCheckMixedSqlNodeDynamicSqlSourceSelectK

2020-06-15 11:53:39 264

原创 Spring Security原理简略分析

导读Spring Security是一个提供身份验证、授权和针对常见攻击的保护的框架。它对命令式和反应式应用程序都提供了一流的支持,是保护基于spring的应用程序的事实标准。原理流程图整体流程:clientFilterDelegatingFilterProxFilterChainProxySecurityFilterChainSecurityContextPDispatcheServletFilter拦截请求进行链式调用挂载的filter委托调用Spring实现的Filter委托调用Securi

2020-06-15 11:46:50 758

原创 源码分析:SpringBoot项目启动过程

SpringBoot源码分析前置准备保存资源加载路径即传入的pringApplication.run传入的FactoryDemoApplication.class这个参数@SpringBootApplicationpublic class FactoryDemoApplication { public static void main(String[] args) { ...

2020-04-16 19:57:51 793

原创 Win10设置Virtual Box主机和虚拟机互通,同时访问外网

更改网络适配器点击自己要共享网络的网卡,我这里是WLAN,在属性面板选择共享,在家庭网络连接里选择自己的虚拟机网卡名,我这里的VitrubalBox就是虚拟机的。注意:第一次设置会提示要把IP变为192.168.137.1,同时设置成动态ip,按要求设置即可。设置虚拟机网络参数配置点击要设置的虚拟机设置网卡1为NET模式:设置网卡2位host-only模式配置虚拟机网卡启动虚拟...

2020-04-14 16:16:05 890

原创 Spring MVC使用Model接收带有【特殊字符】的请求值最佳实践

前言单纯为了解决问题,请直接下跳转【最佳实践->第三种方案】。Spring MVC使用时候wield便于数据传输,都会使用Model进行接收参数,见实例:请求:127.0.0.1:8080/test?myName=zs&myAge=10接收请求:@GetMapping("/demo")public R<String> query(Demo demo) ...

2020-04-02 18:56:58 1017

原创 IDEA一些开发小技巧

IDEA小技巧快捷搜索双击shiftvar声明变量创建循环for、forEach、fori自定义常用代码块自定义代码模板Debug过程中对数据操作智能选中创建环绕代码块快捷键ctrl+alt+t版本控制项目查看行修改记录创建书签,快速定位代码、包ctrl+F11标记,ctrl+标记跳转对应书签,在书签位置ctrl+F11取消书签,shift+F11查看书签...

2020-03-18 16:54:46 471 4

原创 SDKMAN:一款轻松管理多版本JDK的小工具

SDKMAN:是用于管理多个软件开发套件的并行版本的便捷工具。该工具对Java开发人员特别有用,因为它支持JVM的SDK,例如Java,Groovy,Scala,Kotlin和Ceylon。还支持Gradle,Maven,Spring Boot和许多其他工具。安装步骤下载脚本curl -s "https://get.sdkman.io" | bash启动sdkmansource "...

2020-03-18 15:35:26 2991 1

原创 构建MVN项目脚手架(模板)

1、建立一个普通的MAVEN项目,修改pom、修改包结构,放入初始化化的配置文件脚本等;2、在项目目录下执行生成模板命令, 编译生成模板文件;mvn archetype:create-from-project3、模板文件生成完毕后,在“项目目录\generated-sources\archetype”中查看,对模板目录、文件进行微调,如果有大的目录变更要注意调整“META-INF/m...

2019-09-10 16:31:47 200

翻译 拆解JAVA虚拟机

Java代码是怎么执行的JAVA虚拟机由以下部分组成:方法区:加载JAVA字节码(.class)文件堆:存储运行数据栈Java方法栈:每进入一个Java方法就生成一个栈帧,用于存放局部变量以及字节码操作数PC寄存器:存放各个线程的执行位置本地方法栈:面向本地方法(c++写的native方法)在HotSpot里,编译分为两种形式:解释执行:逐条将字节码编译成机器码执行...

2019-07-13 23:41:39 146

原创 Mybatis generator 源码修改--逆向生成常用查询

基于Mybatis generator 1.3.7源码修改,增加通过配置方式逆向生成常用查询方法,节省部分封装mapper方法的时间。

2019-06-21 17:18:14 1322

原创 Maven将本地jar上传私服和多jar合并

&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://

2019-01-07 17:54:19 686

原创 Spring源码杂集

BeanFactoryBean工厂实现应该尽可能的支持bean的生命周期接口,完整的初始化及其标准顺序为:BeanNameAware#setBeanName(设置bean名称) BeanClassLoaderAware#setBeanClassLoader(设置类加载器) BeanFactoryAware#setBeanFactory(设置Bean工厂) org.springfram...

2019-01-07 13:34:43 181

原创 JAVA资料库

整合MyBatis进行批量操作一个批量插入,一个批量更新,此扩展Mapper继承原Mapper,这样注入的时候就不用注入2个Mapper接口。Tips:进行批量操作,要设置参数allowMultiQueries=true,不然无法进行批量更新。spring.datasource.url=jdbc:mysql://${ip}:${port}/test?useUnicode=true&amp;amp;amp;amp;amp;am...

2018-12-29 09:56:23 1189

原创 (快速入门)MyBatis Generator源码分析修改和自定义插件

2018-05-09 19:21:28 9047 6

转载 JAVA高并发编程

synchronized 关键字同步方法同步代码块锁的底层实现锁的种类volatile 关键字wait¬ifyAtomicXxx 类型组CountDownLatch 门闩锁的重入ReentrantLock同步容器Map/SetListQueueThreadPool&amp;ExecutorExecutorExecutorServiceFuture...

2018-05-07 09:30:26 31856 1

原创 Maven使用

仓库配置配置Maven本地仓库存放位置配置镜像仓库地址POM配置仓库地址远程仓库认证访问仓库优先级Maven项目构建工程种类(POM、JAR、WAR)及标签定义工程关系依赖继承聚合Maven插件编译器插件pom中配置当前工程插件全局编译器插件配置Tomcat 管理插件本地应用远程热部署Maven私服环境搭建仓库类型简述私服应用...

2018-04-20 08:51:44 239

原创 大数据框架资源汇集

Scala安装版本:2.11.12 环境需要:Java 8 JDK 下载地址:https://downloads.lightbend.com/scala/2.11.12/scala-2.11.12.tgz 使用帮助:点击查看Spark安装版本:Spark2.3.0 环境需要:Java 8+, Python 2.7+/3.4+ and R 3.1+.Scala (2.11.x...

2018-03-07 14:55:30 600

原创 Dubbo管理控制台安装

将Dubbo控制台下载后,复制到Tomcat安装目录/webapps/目录下并解压,然后修改配置文件。 然后修改其WEB-INF/dubbo.properties配置文件#配置zookeeper地址dubbo.registry.address=zookeeper://127.0.0.1:2181#配置ROOT用户、游客密码dubbo.admin.root.password=rootd...

2018-03-02 16:36:56 516

原创 Hadoop学习之java连接HDFS文件系统

1、配置环境变量HADOOPHOME,不然会报错。 2、windows上的权限系统和linux上的权限系统,测试期间为了简单起见可以关闭权限检查 在namenode的hdfs-site.xml上,添加配置:property> name>dfs.permissions.enabledname> value>falsevalue>property>3、这

2018-02-05 10:16:46 644

翻译 认识Hadoop

NameNode(NN) 基于内存存储 只存在内存中 持久化 NameNode主要功能: 接受客户端的读写服务 收集DataNode汇报的Block列表信息 NameNode保存metadata信息包括 文件owership和permissions 文件大小,时间 (Block列表:Block偏移量),位置信息 Block每副本位置(由DataNode上报) NameNode

2017-10-19 15:06:50 225

原创 Hadoop伪分布式、完全分布式搭建和测试(详细版)

安装Hadoop 入门学习,快速搭建伪分布式环境。注:需要下载的安装包在文章底部,请自行获取。1. 修改主机名vim /etc/hostnamevim /etc/hostsrebootreboot 重启主机使修改配置文件生效,这里我设置的主机名是 : cx。注意:出于安全考虑,如果只想局域网访问 127.0.0.1 cx 就可以 如果不在远程服务器,不在一个局域网...

2017-10-19 14:47:05 7182

原创 Netty入门学习

如今我们使用通用的应用程序或者类库来实现系统之间地互相访问,比如我们经常使用一个HTTP客户端来从web服务器上获取信息,或者通过web service来执行一个远程的调用。然而,有时候一个通用的协议和他的实现并没有覆盖一些场景。比如我们无法使用一个通用的HTTP服务器来处理大文件、电子邮件、近实时消息比如财务信息和多人游戏数据。我们需要一个合适的协议来处理一些特定场景

2017-08-23 09:37:40 347

原创 JVM笔记

JVM模型虚拟机栈:一个线程一个栈,一个方法一个栈帧 堆:放对象的,占用内存最大的堆内存1、新生代(New| Young): ○ eden:新new出来的对象存在这里,特别大的放在老年代(old)里 ○ surivivi(有 2块一模一样的空间s0,s1):幸存者(被垃圾回收之后,还活着),即new 出来的对象, 在GC时还在被对象引用,这是就会把new的对象移

2017-08-23 09:24:12 253

docker-compose

使用docker-compose编排容器. 移动到/usr/local/bin/目录,并赋予执行权限chmod +x /usr/local/bin/docker-compose 操作指令: |docker-compose up|启动所有容器| |docker-compose up -d|后台启动并运行所有容器| |docker-compose up --no-recreate -d|不重新创建已经停止的容器| |docker-compose up -d test2|只启动test2这个容器| |docker-compose stop|停止容器| |docker-compose start|启动容器| |docker-compose down|停止并销毁容器|

2020-04-26

Dubbo控制台(dubbo-admin-2.0.0)

管理控制台为内部裁剪版本,开源部分主要包含:路由规则,动态配置,服务降级,访问控制,权重调整,负载均衡,等管理功能。

2018-03-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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