
java web
安歌_claire
致虚极,守静笃
展开
-
消息中间件(RabbitMQ)入门到进阶
消息中间件简介:消息队列中间件(Message Queue Middleware ,简称为MQ) 是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。目前开源的消息中间件有很多,比较主流的有RabbitMQ 、Kafka、ActiveMQ 、RocketMQ等。书签: R...原创 2020-02-14 12:02:48 · 808 阅读 · 0 评论 -
数据库JPA
先创建一个主键类package com.siid.webapi.device.domain;import lombok.Data;import java.io.Serializable;@Datapublic class GeoWayRegionPK implements Serializable { private int wayId; private Strin...原创 2020-02-14 11:35:15 · 573 阅读 · 0 评论 -
Hero项目分析(基于Angular架构)
HeroServe使用httpClient中的get(),put(),delete(),update()方法写出之后其他xxxx.ts文件将要调用的增删改查方法。hero.service.ts声明httpOptions,heroesUrl(定义根目录),http(创建的HttpClient实例),messageService(记录各类信息)以下是声明的增删改查方法getHeroes ()...原创 2020-02-14 11:29:58 · 576 阅读 · 0 评论 -
cil命令
创建项目前,安装angular:npm install -g @angular/cli创建项目:ng new angular-tour-of-heroes启动项目:ng serve --open或npm start卸载angular:npm uninstall -g angular-cli出现cannot find module ‘xxx’,说明缺xxx模块,之后会自动安装...原创 2020-02-14 11:27:47 · 282 阅读 · 0 评论 -
js函数定义
当只有一个参数时,圆括号是可选的:(单一参数) => {函数声明}单一参数 => {函数声明}hero => { this.heroes.push(hero); }没有参数的函数应该写成一对圆括号:() => {函数声明}() => this.goBack()...原创 2020-02-14 11:27:02 · 129 阅读 · 0 评论 -
前端开发资料分享
前端学习资料es: http://es6.ruanyifeng.com/js: http://www.runoob.com/js/js-tutorial.htmltypescript:https://www.tslang.cn/docs/release-notes/typescript-2.7.htmlangular架构: https://www.angular.cn/前端软件安装1....原创 2020-02-14 11:26:29 · 186 阅读 · 0 评论 -
Docker
简介Docker是一个开源的应用容器引擎;是一个轻量级容器技术。Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像;运行中的这个镜像称为容器,容器启动是非常快速的。核心概念docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);docker客户端(Client):连接docker主...原创 2020-02-14 11:21:04 · 118 阅读 · 0 评论 -
RabbitMQ
RabbitMQ简介:RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue Protocol)的开源实现。Message消息,消息是不具名的,它由消息头和消息体组成。消息体是不透明的,而消息头则由一系列的可选属性组成,这些属性包括routing-key(路由键)、priority(相对于其他消息的优先权)、delivery-mode(指出该消息可能...原创 2020-02-14 11:18:41 · 265 阅读 · 0 评论 -
消息 JMS、AMQP、RabbitMQ
概述1.大多应用中,可通过消息服务中间件来提升系统异步通信、扩展解耦能力2.消息服务中两个重要概念: 消息代理(message broker)和目的地(destination)当消息发送者发送消息以后,将由消息代理接管,消息代理保证消息传递到指定目的地。3.消息队列主要有两种形式的目的地1.队列(queue):点对点消息通信(point-to-point)2.主题(to...原创 2020-02-14 11:11:25 · 205 阅读 · 0 评论 -
STOMP
简介直接使用WebSocket(或SockJS)就很类似于使用TCP套接字来编写Web应用。因为没有高层级的线路协议(wire protocol),因此就需要我们定义应用之间所发送消息的语义,还需要确保连接的两端都能遵循这些语义。 就像HTTP在TCP套接字之上添加了请求-响应模型层一样,STOMP在WebSocket之上提供了一个基于帧的线路格式(frame-based wire f...原创 2020-02-14 11:10:21 · 584 阅读 · 0 评论 -
规定测试用例的运行顺序
可以使用@FixMethodOrder来指定测试用例运行的顺序,这个注解中有三个属性值:MethdSorters.JMV,按照JVM得到的方法顺序,也就是代码中定义的方法顺序。MethodSorters.DEFAULT:默认的顺序。MethodSorters.NAME_ASCENDING:按方法名字母顺序执行。一般是使用MethodSorters.NAME_ASCENDING可以实现控制测...原创 2020-02-14 11:06:44 · 553 阅读 · 0 评论 -
FilterBean&JWT组件
FilterFilter可以认为是Servlet的一种“加强版”,它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理链。Filter也可以对用户请求生成响应,这一点与Servlet相同,但实际上很少会使用Filter向用户请求生成响应。使用Filter完整的流程是:Filter对用户请求进行预处理,接着将请求交给Servlet进行预处理并生成...原创 2020-02-14 11:05:21 · 183 阅读 · 0 评论 -
excel数据导入数据库
上传本地excel文件传一个在本地的excel文件,将文件名+文件所在的绝对路径作为参数(String)传递过来。首先是获取excel文件对象,一个File对象,然后根据文件名称的后缀不同(主要有.xls和.xlsx两种),这两种文件分别对应不同工作簿对象。获取工作簿后,获取工作簿中的sheet表,在sheet表中用row对象获取每一行数据,用cell对象获取每一行中每一列的数据。将每一行数...原创 2020-02-14 11:02:02 · 258 阅读 · 0 评论 -
获取token通过JWT拦截
第一种是自己编写一个security接口,在这个接口中模拟发出http请求,将响应请求的token返回即可,在测试类中直接调用该接口返回的token,则可以通过jwt验证,完成测试类的编写。以下为security api接口的代码package com.siid.webapi.device;import org.springframework.http.HttpEntity;import...原创 2020-02-14 11:00:39 · 307 阅读 · 0 评论 -
@DataTimeFormat、@ResponseStatus、jackson
@DateTimeFormat以下为一接口的代码示例:@ApiOperation(value = "获取设备历史数据", response = DevicePropertyModel.class, responseContainer = "PagedList")@GetMapping(value = "/history/{deviceId}", produces = "application...原创 2020-02-14 10:59:29 · 296 阅读 · 0 评论 -
springboot读取properties文件
@ConfigurationProperties自定义一个配置类在配置类中的属性(host,port,username,password,virtual_host会自动被赋值配置文件中以spring.amqp为前缀的属性值)。注意自定义配置类中的属性名称必须配置文件中的后缀名称一样,如配置文件中有springboot.amqp,host=172.18.1.132,那么在类属性名称必须为hos...原创 2020-02-14 10:55:17 · 184 阅读 · 0 评论 -
定时任务
@Scheduled初始配置写一个测试类作为组件,注入容器,当容器启动时则会触发这个定时器。注意这个测试类必须要放在启动类的同一目录下或其子目录下。SpringBoot为我们内置了@Scheduled定时任务,下面我们就来配置下这个注解,找到入口程序xxxApplication添加注解@EnableScheduling。如图所示,IotHttpTest这个类必须和DeviceApplica...原创 2020-02-14 10:54:14 · 220 阅读 · 0 评论 -
# Spring Boot架构
前言:编程不是为了完成某个功能或者提供某种服务,而是为了使得程序要更加简洁,性能高效,高内聚,低耦合,符合规范性。在写某个接口时要注意是什么调用什么,是在什么样的上下文环境执行(只进行必要的检查和判断),整个业务逻辑是什么,解决问题的关键点是什么。Spring Boot支持–spring-jms提供了对JMS的支持–spring-rabbit提供了对AMQP的支持–需要Connecti...原创 2020-02-14 10:51:50 · 830 阅读 · 0 评论 -
Nginx-http-flv-module
简介实现无插件、低延迟播放http-flv直播流支持的播放器:VLC (RTMP & HTTP-FLV)/OBS (RTMP & HTTP-FLV)/JW Player(RTMP)/flv.js(HTTP-FLV).注意:flv.js只能运行在支持Media Source Extensions的浏览器上。安装下载nginx和nginx-http-flv-module,...原创 2020-02-14 10:16:41 · 1336 阅读 · 1 评论 -
Nginx
Nginx简介nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理进行负载均衡的实现。反向代理多个客户端给服务器发送的请求,nginx服务器接收到之后,按照一定的规则分发给了后端的业务处理服务器进行处理了,实现分布式部署。负载均衡将...原创 2020-02-14 10:15:46 · 122 阅读 · 0 评论 -
Maven
简介Apache Maven是一个软件项目管理和理解工具。基于项目对象模型(POM)的概念,Maven可以从中央信息管理项目的构建,报告和文档。主要功能遵循最佳实践的简单项目设置-数秒内即可启动新项目或模块在所有项目中使用一致-意味着新开发者无需花费更多时间来参与项目高级依赖性管理,包括自动更新,依赖性关闭(也称为传递依赖性),maven项目管理所依赖的jar包不需要手动向工程添加ja...原创 2020-02-14 10:11:35 · 256 阅读 · 0 评论 -
Failed to configure a DataSource: 'url' attribute is not specified and no embe...
Spring Boot项目中含有Mybatis,打Jar包运行之后,报如下错误.问题分析及解决方案问题原因: Mybatis没有找到合适的加载类,其实是大部分spring - datasource - url没有加载成功,分析原因如下所示.DataSourceAutoConfiguration会自动加载.没有配置spring - datasource - url 属性.spring...原创 2020-02-14 10:09:51 · 244 阅读 · 0 评论 -
com.fasterxml.jackson.databind.exc.InvalidDefinitionException
原因:原因是我在该实体类中添加了一个为了方便实例化该类用的构造函数,导致JVM不会添加默认的无参构造函数,而jackson的反序列化需要无参构造函数,因此报错。Response实体类同理。解决:在实体类中补上一个无参构造器即可。...原创 2020-02-14 10:08:20 · 219 阅读 · 0 评论 -
org.hibernate.lazyInitializationException(懒加载异常)
在有@ManyToOne注解标注的方法中这错误很常见,字面意义就是不能被初始化,因为session已经关闭了。fetch=FetchType.LAZY就等于打开了延迟加载。Hibernate中的get方法不论是否开启延迟加载都会一次加载所有基本数据类型属性的值,而load则不同,开启延迟加载后load(id),返回的对象会被Hibernate加一个壳(持久化上下文中没有缓存该对象的前提下),拦...原创 2020-02-14 10:07:12 · 2609 阅读 · 0 评论 -
Intellij Idea
gitlab平台上项目管理(IDEA)在项目所在目录下,右键菜单点击Git Bash Here弹出Git命令窗口:输入git pull 更新项目输入git clone -b feature-0.2 http://SIIDSV-GIT1/shinyo/smart-city-platform.git 从gitlab上克隆项目的某个版本输入git clone http://SIIDSV-GIT1...原创 2020-02-14 09:26:43 · 407 阅读 · 0 评论