springcloud Zuul动态路由的实现
前言
Zuul 是Netflix 提供的一个开源组件,致力于在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。也有很多公司使用它来作为网关的重要组成部分,碰巧今年公司的架构组决定自研一个网关产品,集动态路由,动态权限,限流配额等功能为一体,为其他部门的项目提供统一的外网调用管理,最终形...[2018/11/5]
Java开发笔记(十八)上下求索的while循环Java开发笔记(十八)上下求索的while循环
循环是流程控制的又一重要结构,“白天-黑夜-白天-黑夜”属于时间上的循环,古人“年复一年、日复一日”的“日出而作、日落而息”便是每天周而复始的生活。计算机程序处理循环结构时,给定一段每次都要执行的代码块,然后分别指定循环的开始条件和结束条件,就形成了常见的循环语句。最简单的循环结构只需一个whil...[2018/11/3]
netty源码分析之服务端启动
ServerBootstrap与Bootstrap分别是netty中服务端与客户端的引导类,主要负责服务端与客户端初始化、配置及启动引导等工作,接下来我们就通过netty源码中的示例对ServerBootstrap与Bootstrap的源码进行一个简单的分析。首先我们知道这两个类都继承自Abstr...[2018/11/3]
将项目部署到服务器之后从页面接收的中文乱码
问题描述:1、将项目部署到服务器之后从页面接收的中文乱码
2、数据库中原有的数据都能正常显示
产生原因:没有对Tomcat服务器和mysql进行配置更改
解决流程:
一、 修改Tomcat配...[2018/11/3]
svn部署
Linux系统下部署SVN
1、安装
yum -y install subversion
2、创建版本库的上级目录
mkdir /var vn vnrepos
3、创建版本库app
svnadmin create /var vn vnrepo app
注:可在svnrepos目录下...[2018/11/3]
Java 多线程(三)—— 线程的生命周期及方法Java 多线程(三)—— 线程的生命周期及方法
这篇博客介绍线程的生命周期。
线程是一个动态执行的过程,它也有从创建到死亡的过程。
线程的几种状态
在 Thread 类中,有一个枚举内部类:
上面的信息以图片表示如下:
第一张图:
第二张图:把等待、计时等待、阻塞看成阻...[2018/11/3]
rabbitmq安装(windows)
RabbitMQ is the most widely deployed open source me age broker.
With more than 35,000 production deployments of RabbitMQ world-wide at small startup...[2018/11/3]
Java并发(六):volatile的实现原理
synchronized是一个重量级的锁,volatile通常被比喻成轻量级的synchronized
volatile是一个变量修饰符,只能用来修饰变量。
volatile写:当写一个volatile变量时,JMM会把该线程对应的本地内存中的共享变量刷新到主内存。
volatile读:当读...[2018/11/3]
Java垃圾回收器的工作原理
上课,老师照本宣科,实在难以理解,干脆就看书里的Java书,正好看了Java的垃圾回收器是如何工作的,觉得有必要记录一下。
参考于 Java编程思想第四版(Thinking in Java)
1.垃圾回收器对于提高对象的创建速度,有明显的效果
问题来了,垃圾回收是释放对象,而关创建对象什么...[2018/11/3]
IO流(字节流,字符流,缓冲流)
一:IO流的分类(组织架构)
根据处理数据类型的不同分为:字节流和字符流
根据数据流向不同分为:输入流和输出流
这么庞大的体系里面,常用的就那么几个,我们把它们抽取出来,如下图:
二:字符...[2018/11/3]
[十七]基础类型BigDecimal简介
BigDecimal是不可变的、任意精度的、有符号的、十进制数.
组成部分
BigDecimal 由任意精度的整数非标度值 和 32 位的整数标度 (scale) 组成
BigDecimal 表示的数值是 : ...[2018/11/3]
Storm框架:如何实现crontab定时任务
Storm除了能对消息流进行处理,还能实现crontab定时任务。
只要在bolt中配置TOPOLOGY_TICK_TUPLE_FREQ_SECS项即可实现。
@Override
public Map<String, Object> getComponentConfiguratio...[2018/11/3]
Spring MVC 实现文件的上传和下载
SpringMVC 中,文件的上传,是通过 MultipartResolver 实现的。 所以,如果要实现文件的上传,只要在 spring-mvc.xml 中注册相应的 MultipartResolver 即可。
MultipartResolver 的实现类有两个:
CommonsMultip...[2018/11/3]
— 初识Java
---恢复内容开始---
1.Java概述
java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代...[2018/11/3]
笔记:开发环境与生产环境的自由切换
在编码和生产环境中,各种配置的来回切换比较麻烦,今天做个笔记记录一下怎么在两种环境中自由切换
工具:maven + ecplise+tomcat
1,在配置文件中开发与生产环境的配置各配置一份
2,在工程的pom.xml文件中进行如下配置
3,在打包,运行的时候就可以带上后...[2018/11/3]
转:Comparable vs Comparator in Java
Comparable vs Comparator in Java
Java provides two interfaces to sort objects using data members of the cla :
Comparable
Comparator
Using ...[2018/11/3]
Java 多线程(二)—— 线程的同步Java 多线程(二)—— 线程的同步
上文创建多线程买票的例子中注释会出现错票、重票的问题,本文来讲讲如何解决此问题。本文例子:利用多线程模拟 3 个窗口卖票
实现Runnable接口
public cla TestThread2 {
public static void main...[2018/11/3]
浅谈Semaphore类
Semaphore类有两个重要方法
1、semaphore.acquire();
请求一个信号量,这时候信号量个数-1,当减少到0的时候,下一次acquire不会再执行,只有当执行一个release()的时候,信号量不为0的时候才可以继续执行acquire
2、semaphore.relea...[2018/11/3]
Java并发(三):重排序
在执行程序时为了提高性能,提高并行度,编译器和处理器常常会对指令做重排序。重排序分三种类型:
编译器优化的重排序。编译器在不改变单线程程序语义的前提下,可以重新安排语句的执行顺序。
指令级并行的重排序。现代处理器采用了指令级并行技术(Instruction-Level Parallelism, ...[2018/11/3]
简单工厂
2018-11-02 20:27:28开始写
Operation.java类
1 package StaticFactoryMethedPattern;
2
3 public abstract cla Operation {
4 public abstra...[2018/11/3]
抽象工厂抽象工厂
2018-11-02 20:54:09 开始写
IFactory.java类(顶层)
1 package AbstractFactory;
2
3 public interface IFactory {
4 public IUser c...[2018/11/3]
为什么使用 Spring Boot?
Spring 是一个非常流行的基于Java语言的开发框架,此框架用来构建web和企业应用程序。与许多其他仅关注一个领域的框架不同,Spring框架提供了广泛的功能,通过其组合项目满足现代业务需求。
Spring框架提供了以多种方式配置bean的灵活性,例如XML,注解和JavaConfig。随着...[2018/11/3]
java8及8之前日期相关类
java 8日期相关类
Instant:时间戳
Duration:持续时间,时间差
LocalDate:只包含日期,比如:2016-10-20
LocalTime:只包含时间,比如:23:12:10
LocalDateTime:包含日期和时间,比如:2016-10-20 23:14:21
Peri...[2018/11/3]
“吃人”的那些Java名词:对象、引用、堆、栈
记得中学的课本上,有一篇名为《狂人日记》课文;那时候根本理解不了鲁迅写这篇文章要表达的中心思想,只觉得满篇的“吃人”令人心情压抑;老师在讲台上慷慨激昂的讲,大多数的同学同我一样,在课本面前“痴痴”的发呆。 作为一个有着8年Java编程经验的IT老兵,说起来很惭愧,我被Java当中的四五个名词一直困...[2018/11/2]
POST不同提交方式对应的Content-Type,及java服务器接收参数方式
POST不同提交方式对应的Content-Type,及java服务器接收参数方式
注:本博客参考了网上的文章结合自己工作总结后所写,主要用于记录自己工作所得,如有错误请批评指正.
简介:
Content-Type(MediaType),即是Internet Media Type,互联网媒体类型;...[2018/11/2]
6.4(java学习笔记)转换流6.4(java学习笔记)转换流
一、乱码问题
我们来看下列例子:
public cla ConStream {
当前平台默认采用GBK
public static void main(String[] args){
String str = "依风";
...[2018/11/2]
Java并发 synchronized实现原理
一、synchronized用法 Java中的同步块用synchronized标记。 同步块在Java中是同步在某个对象上(监视器对象)。 所有同步在一个对象上的同步块在同时只能被一个线程进入并执行操作。 所有其他等待进入该同步块的线程将被阻塞,直到执行该同步块中的线程退出。 (注:不要使用全局对象...[2018/11/2]
支付宝退款总结支付宝退款总结
1.支付宝退款接口需要的参数
支付宝网关,appID,private_key,public_key,sign_type,input_charset,format;
2.使用接口需要上传的参数
支付宝支付交易号/订单号,退款金额,参数只要这两个就能完成退款,不过支付宝的文档上面有的写的可选...[2018/11/2]
1--SpringCloud的服务注册与发现Eureka
Eureke
Eureka是Netflix开源的一款提供服务注册和发现的产品,它提供了完整的Service Registry(注册登记)和Service Discovery(发现)实现。也是springcloud体系中最重要最核心的组件之一。
服务中心:
服务中心又称注册中心...[2018/11/2]
javaDay03
package zrs;
public cla javaDay03 { public static void main(String[] args) { while循环 int x=1; while(x<5) { 大括号里面叫做循环体,循环需要一个结束循环的条件,来控制...[2018/11/2]
javaDay03_2
package zrs;
public cla javaDay03_2 { public static void main(String[] args) { for循环 int sum=0; for(int x=1;x<=10;x++) { sum=sum+x; ...[2018/11/2]
javaDay03_3
package zrs;
public cla javaDay03_3 { public static void main(String[] args) { 循环的嵌套 for(int x=0;x<3;x++) { 外循环控制行 for(int y=0;y<4;y...[2018/11/2]
JVM知识(四):GC配置参数
JVM配置参数分为三类参数:跟踪参数、堆分配参数、栈分配参数
这三类参数分别用于跟踪监控JVM状态,分配堆内存以及分配栈内存。
跟踪参数
跟踪参数用户跟踪监控JVM,往往被开发人员用于JVM调优以及故障排查。
1、当发生GC时,打印GC简要信...[2018/11/2]
再也不用担心面试官问你HashCode和equals了
结论 如果两个对象相等,则hashcode()必须相等。 如果两个对象相等,a.equals(b)==b.equals(a)==true 如果两个对象有相同的hashcode值,他们也不一定是相等的。但若两个对象相等,则hashCode值一定相等。 因此若equals()被覆盖过,则hashCode...[2018/11/2]
SpringMVC从认识到细化了解SpringMVC从认识到细化了解
目录
SpringMVC的介绍
介绍:
执行流程
与strut2的对比
基本运行环境搭建
基础示例
控制器的编写
控制器创建方式:
请求映射问题:
获取请求提交的参数
通过域对象(request,response,se ion)获取:
同名参数自动封装:
手动映射封装:
数组、集合类型参数绑定...[2018/11/2]
Solr学习笔记---部署Solr到Tomcat上,可视化界面的介绍和使用,Solr的基本内容介绍,SolrJ的使用Solr学习笔记---部署Solr到Tomcat上,可视化界面的介绍和使用,Solr的基本内容介绍,SolrJ的使用
学习Solr前需要有Lucene的基础
Lucene的一些简单用法:https: www.cnblogs.com/dddyyy/p/9842760.html
1.部署Solr到Tomcat(Windows)
Solr自带小型服务器jetty,但在我们开发环境中,习惯使用Tomcat,所以把...[2018/11/2]
推荐 3 篇关于 java8 Lambda表达式的文章
State of the Lambda 这篇主要讲 Labmbda 的背景和用法
译文:深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)
State of the Lambda: Libraries Edition 这篇主要讲 Stream 操作
译...[2018/11/2]
java_servlet
1.什么是Servlet
servlet就是java里面一种类,只不过这种java类有一些特殊的应用,称呼他为servlet
2.servlet的作用
可以让浏览器直接通过一个路径取访问。(一般Java类做不到这一点)
3.如何写一个servlet类
3.1.三种实现方式:
...[2018/11/2]
Storm框架:如何消费RabbitMq消息(代码案例)
1、定义拓扑topology
public cla Me ageTopology {
public static void main(String[] args) throws Exception {
组装topology
TopologyBuilde...[2018/11/2]
Storm框架:如何根据业务条件选择不同的bolt进行下发消息Storm框架:如何根据业务条件选择不同的bolt进行下发消息
Strom框架基本概念就不提了,这里主要讲的是Stream自定义ID的消息流。默认spout、bolt都需实现接口方法declareOutputFields,代码如下:
@Override
public void declareOutputFields(OutputFieldsDeclarer ...[2018/11/2]
Scala Try 与错误处理Scala Try 与错误处理
一.概述
当你在尝试一门新的语言时,可能不会过于关注程序出错的问题, 但当真的去创造可用的代码时,就不能再忽视代码中的可能产生的错误和异常了。 鉴于各种各样的原因,人们往往低估了语言对错误处理支持程度的重要性。
事实会表明,Scala 能够很优雅的处理此类问题, 这一部分,我会介绍 Scala ...[2018/11/2]
Scala模式匹配常用
今天在工作中遇到的几个小问题,总结一下:
1.因为业务需要调用PHP的接口,获取到的返回体需要做一段逻辑处理,然而某个字段接收到的参数是io.serializable类型,字段的类型不是预期的string类型,当时有点懵逼,因为是用Scala的match case做模式匹配,也没多想,...[2018/11/2]
每天一个设计模式之单例模式
博主按:《每天一个设计模式》旨在初步领会设计模式的精髓,目前采用javascript(靠这吃饭)和python(纯粹喜欢)两种语言实现。诚然,每种设计模式都有多种实现方式,但此小册只记录最直截了当的实现方式 :)
网速过慢的朋友请移步《每天一个设计模式之单例模式》原文地址
欢迎来我的小站看更...[2018/11/2]
java8中Stream的使用示例教程
前言
Java8中提供了Stream对集合操作作出了极大的简化,学习了Stream之后,我们以后不用使用for循环就能对集合作出很好的操作。
本文将给大家详细介绍关于java8 Stream使用的相关内容,下面话不多说了,来一起看看详细的介绍吧
1. 原理
Stream 不是集...[2018/11/1]
Java的“Goto”与标签及使用详解Java的“Goto”与标签及使用详解
goto在Java中是一个保留字,但在语言中并没有用到它;Java没有goto。但是,Java也能完成一些类似于跳转的操作,主要是依靠:标签。
为什么要使用标签
在迭代语句中,我们可以使用break和continue来中断当前循环。但如果出现循环嵌套的情况,使用break和continue...[2018/11/1]
浅谈在Spring中如何使用数据源(DBCP、C3P0、JNDI)浅谈在Spring中如何使用数据源(DBCP、C3P0、JNDI)
在 Spring 中,有以下三种方式来创建数据源:
通过 JNDI 获取应用服务器中的数据源;
在 Spring 容器中配置数据源;
通过代码来创建数据源,这种方式适用于无容器依赖的单元测试。
1 配置数据源
Spring 在第三方依赖包中包含了 2 种数据源...[2018/11/1]
关于Java8 parallelStream并发安全的深入讲解
背景
Java8的stream接口极大地减少了for循环写法的复杂性,stream提供了map/reduce/collect等一系列聚合接口,还支持并发操作:parallelStream。
在爬虫开发过程中,经常会遇到遍历一个很大的集合做重复的操作,这时候如果使用串行执行会相当耗时,因...[2018/11/1]