-
Java异常跟踪栈定义与用法示例
所属栏目:[Java] 日期:2020-12-14 热度:153
本篇章节讲解Java异常跟踪栈定义与用法。供大家参考研究具体如下: 一、异常跟踪栈简介 异常对象的printStackTrace方法用于打印异常的跟踪栈信息,根据printStackTrace方法的输出结果,我们可以找到异常的源头,并跟踪到异常一路触发的过程。 二、[详细]
-
浅谈Spring的属性编辑器的使用
所属栏目:[Java] 日期:2020-12-14 热度:138
在 Spring 配置文件中,我们往往通过字面值设置 Bean 各种类型的属性值 ,这个功能是通过属性编辑器实现的。 任何实现了 java.beans.PropertyEditor 接口的类都是属性编辑器 。 它可以将外部需要设置的值转换为 JVM 内部的对应类型,所以属性编辑器其实就是[详细]
-
SpringMVC自定义属性编辑器详解及实例
所属栏目:[Java] 日期:2020-12-14 热度:159
SpringMVC自定义属性编辑器详解及实例 自定义springMVC的属性编辑器主要有两种方式,一种是使用@InitBinder标签在运行期注册一个属性编辑器,这种编辑器只在当前Controller里面有效;还有一种是实现自己的 WebBindingInitializer,然后定义一个AnnotationMet[详细]
-
Java多线程模拟售票程序和线程安全问题
所属栏目:[Java] 日期:2020-12-14 热度:143
Java中线程部分知识中,售票程序非常经典。程序中也有一些问题存在! 需求:模拟3个窗口同时在售100张票。 问题1:为什么100张票被卖出了300张票 原因:因为tickets是非静态的,非静态的成员变量数据是在每个对象中都会维护一份数据的,三个线程对象就会有三[详细]
-
java中volatile不能保证线程安全(实例讲解)
所属栏目:[Java] 日期:2020-12-14 热度:194
今天打了打代码研究了一下java的volatile关键字到底能不能保证线程安全,经过实践,volatile是不能保证线程安全的,它只是保证了数据的可见性,不会再缓存,每个线程都是从主存中读到的数据,而不是从缓存中读取的数据,附上代码如下,当synchronized去掉的[详细]
-
浅析12306售票算法(java版)
所属栏目:[Java] 日期:2020-12-14 热度:103
1.以G71列车为例,首先对车次站台进行占位编码(从1开始到最后一站递加) 对以上占位简单描述以下:G71总共18个站点那么我们的单个座位的座位标识可以用十八位长度的二进制字符串表示10000000000000000每一位代表一个站点,每天放票前初始化到下面的订票表中[详细]
-
Java代码实践12306售票算法(二)
所属栏目:[Java] 日期:2020-12-14 热度:158
周五闲来无事,基于上一篇关于浅析12306售票算法(java版)理论,进行了java编码实践供各位读者参考(以下为相关代码的简单描述) 1.订票工具类 1.1初始化一列车厢的票据信息 /*** 生成Ticket信息** @param train* @return*/public static ListTicket initTick[详细]
-
java多线程之火车售票系统模拟实例
所属栏目:[Java] 日期:2020-12-14 热度:74
1.前言 为了学习多线程共享与通信,我们模拟一个火车售票系统,假设有10张火车票,三个窗口(也就是三个线程)同时进行售票。 2.非同步代码 package com.tl.skyLine.thread; /** * Created by tl on 17/3/6. */ public class SellTicket { public static voi[详细]
-
Spring Boot Actuator监控端点小结
所属栏目:[Java] 日期:2020-12-14 热度:75
在Spring Boot的众多Starter POMs中有一个特殊的模块,它不同于其他模块那样大多用于开发业务功能或是连接一些其他外部资源。它完全是一个用于暴露自身信息的模块,所以很明显,它的主要作用是用于监控与管理,它就是: spring-boot-starter-actuator 。 spr[详细]
-
使用SpringBoot Actuator监控应用示例
所属栏目:[Java] 日期:2020-12-14 热度:109
Actuator是Spring Boot提供的对应用系统的自省和监控的集成功能,可以对应用系统进行配置查看、相关功能统计等。 使用Actuator 引入依赖即可 Maven : dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-actuator/artifact[详细]
-
SpringCloud实战之Zuul网关服务
所属栏目:[Java] 日期:2020-12-14 热度:191
为什么需要网关呢? 我们知道我们要进入一个服务本身,很明显我们没有特别好的办法,直接输入IP地址+端口号,我们知道这样的做法很糟糕的,这样的做法大有问题,首先暴露了我们实体机器的IP地址,别人一看你的IP地址就知道服务部署在哪里,让别人很方便的进[详细]
-
从零开始使用IDEA创建SpringBoot项目(图文)
所属栏目:[Java] 日期:2020-12-14 热度:68
*注 :此文章谨以记录学习过程,分享学习心得! 刚刚开始了解SpringBoot框架,觉得很好用,觉得很有必要深入学习一下该框架,现在就来创建一个SpringBoot项目: 1、在IDEA上新建一个Project,选择Spring Initializr, Project SDK 选择安装的JDK; Choose Ini[详细]
-
使用IDEA创建SpringBoot项目的方法步骤
所属栏目:[Java] 日期:2020-12-14 热度:144
1.打开IDEA,创建新项目,选择Spring Initializr 2.输入Artifact 3.勾选Web 4.点击finish完成 5.进入项目,可以将以下内容删除 pom.xml文件: xml version="1.0" encoding="UTF-8" project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.[详细]
-
详解Spring加载Properties配置文件的四种方式
所属栏目:[Java] 日期:2020-12-14 热度:63
一、通过 context:property-placeholder 标签实现配置文件加载 1、用法示例: 在spring.xml配置文件中添加标签 复制代码 代码如下: context:property-placeholder ignore-unresolvable="true" location="classpath:redis-key.properties"/ 2、在 spring.xml[详细]
-
详解利用Spring加载Properties配置文件
所属栏目:[Java] 日期:2020-12-14 热度:159
记得之前写Web项目的时候配置文件的读取都是用Properties这个类完成的,当时为了项目的代码的统一也就没做什么改动。但事后一直在琢磨SpringMVC会不会都配置的注解功能了?经过最近的研究返现SpringMVC确实带有这一项功能,Spring确实很强大。 因为代码很简[详细]
-
Spring Boot的properties配置文件读取
所属栏目:[Java] 日期:2020-12-14 热度:166
我在自己写点东西玩的时候需要读配置文件,又不想引包,于是打算扣点Spring Boot读取配置文件的代码出来,当然只是读配置文件没必要这么麻烦,不过反正闲着也是闲着,扣着玩了。 具体启动过程以前的博客写过Spring Boot启动过程(一),这次入口在SpringAppl[详细]
-
Spring Boot中配置文件application.properties使用
所属栏目:[Java] 日期:2020-12-14 热度:186
一、配置文档配置项的调用 启动后在浏览器直接输入 http://localhost:18080/user/test ,就直接打印出配置文件中的配置内容。 二、绑定对象bean调用 有时候属性太多了,一个个绑定到属性字段上太累,官方提倡绑定一个对象的bean,这里我们建一个ConfigBean.j[详细]
-
springMVC引入Validation的具体步骤详解
所属栏目:[Java] 日期:2020-12-14 热度:186
本文简单介绍如何引入validation的步骤,如何通过自定义validation减少代码量,提高生产力。特别提及:非基本类型属性的valid,GET方法的处理,validation错误信息的统一resolve。 本文中validation的实际实现委托给Hibernate validation处理 基本配置 pom引[详细]
-
Rabbitmq延迟队列实现定时任务的方法
所属栏目:[Java] 日期:2020-12-14 热度:172
场景 开发中经常需要用到定时任务,对于商城来说,定时任务尤其多,比如优惠券定时过期、订单定时关闭、微信支付2小时未支付关闭订单等等,都需要用到定时任务,但是定时任务本身有一个问题,一般来说我们都是通过定时轮询查询数据库来判断是否有任务需要执[详细]
-
Spring boot集成RabbitMQ的示例代码
所属栏目:[Java] 日期:2020-12-14 热度:81
RabbitMQ简介 RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统 MQ全称为Message Queue,消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的[详细]
-
Spring Boot整合RabbitMQ开发实战详解
所属栏目:[Java] 日期:2020-12-14 热度:175
这篇文章主要讲基本的整合。先把代码跑起来,再说什么高级特性。 RabbitMQ 中的一些术语 如果你打开 RabbitMQ web 控制台,你会发现其中有一个 Exhanges 不好理解。下面简单说明一下。 交换器(Exchange) 交换器就像路由器,我们先是把消息发到交换器,然后[详细]
-
SpringBoot与rabbitmq的结合的示例
所属栏目:[Java] 日期:2020-12-14 热度:108
消息中间件对于我们系统之间的解耦合,消峰等都有极大的帮助。spring boot 也集成了此部分的内容,集成最为容易的是rabbitmq。今天我们就以rabbitmq为例说明。 老规矩,先看下pom dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot[详细]
-
spring boot中使用RabbitMQ routing路由详解
所属栏目:[Java] 日期:2020-12-14 热度:163
在上一个教程中我们创建了一个扇形(fanout)交换器。我们能把消息已广播的形式传递给多个消费者。 要做什么?Routing 路由 在这个教程中,添加一个新的特性,我们可以只订阅消息的一部分。例如,将只连接我们感兴趣的颜色("orange","black","green"),并[详细]
-
spring boot使用RabbitMQ实现topic 主题
所属栏目:[Java] 日期:2020-12-14 热度:148
前一篇我们实现了消息系统的灵活配置。代替了使用扇形(fanout)交换器的配置。使用直连(direct)交换器,并且基于路由键后可以有选择性接收消息的能力。 虽然使用直连交换器可以改善我们的系统,但是它仍有局限性,它不能实现多重条件的路由。 在我们的消[详细]
-
Spring Boot中使用RabbitMQ的示例代码
所属栏目:[Java] 日期:2020-12-14 热度:130
很久没有写Spring Boot的内容了,正好最近在写Spring Cloud Bus的内容,因为内容会有一些相关性,所以先补一篇关于AMQP的整合。 Message Broker与AMQP简介 Message Broker是一种消息验证、传输、路由的架构模式,其设计目标主要应用于下面这些场景: 消息路[详细]