自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (1)
  • 收藏
  • 关注

原创 Modbus通讯协议(二)——Java向ModbusSlave模拟器读写数据

本文介绍通过Java程序向modbus slave模拟器工具读写数据。使用TCP的连接方式,modbus rtu通讯协议。安装Modbus Slave安装及使用请看上一篇文章:Modbus通讯协议(一)——测试工具ModbusPoll和ModbusSlave,本篇使用的是Modbus Slave 7.3.1 ,过低版本不支持TCP方式上使用modbus rtu设置参数并开启连接点击菜单Setup–>Resd/Write Definition 进行参数设置,Function 选01点击菜单C

2021-04-16 16:22:50 17

转载 Modbus通讯协议(一)——测试工具ModbusPoll和ModbusSlave

ModbusPoll是Modbus主机仿真器,用于测试和调试Modbus从设备。ModbusSlave: Modbus从设备仿真器,可以仿真32个从设备/地址域。本文使用ModbusPoll、ModbusSlave,并通过vspd虚拟串口工具测试Modbus传输数据。

2021-04-12 15:46:15 73

原创 JAVA泛型的用法及使用泛型的优势

javascript和python这类动态语言是没有泛型机制的。java和C#是静态编译型语言,传递参数的时候要求参数的类型必须是明确的。泛型主要解决的问题:1.参数不安全2.重复编码本次的示例通过实现一个栈(数据后进先出 push() pop()) (队列是先进先出)来讲述使用泛型的优势及相关用法基础写法新建一个StackInt类package com.lin.why;public class StackInt { private int maxSize; pri

2021-03-04 13:29:28 66 3

原创 easyUI edatagrid编辑表格数据

功能概述效果图如下,使用easyUI的datagrid,点击行编辑该行数据,并在完成编辑时将数据上传到后端接口。前端代码html<table id="dataGrid" title="" class="easyui-datagrid" singleSelect="true" pagination="true" rownumbers="true" fitColumns="true" pageSize=20

2021-01-08 16:17:22 37 1

原创 EasyUI 日历实现日程提醒

文档内容此处可跳过直接看第二部分内容或参看官方文档:开发文档(calendar日历)及组件演示日历控件显示一个月的日历,允许用户选择日期和移动到下一个或上一个月。默认情况下,一周的第一天是周日。它可以通过设置’firstDay’属性的值来更改设置。1.用法1)使用标签创建日历。<div id="cc" class="easyui-calendar" style="width:180px;height:180px;"></div>2)使用Javascript创建日历。$

2020-12-06 13:03:22 83

原创 使用SpringCloud框架实现慕课网主页后端开发
原力计划

涉及的技术SpringCloud是一套分布式服务治理的框架,本身就不会提供具体功能性的操作,更专注于服务之间的通讯、熔断、监控等等。因此就需要很多组件去支撑这样的一套功能。企业中最高频使用的组件有:Eureka,Zuul,Feign,HystrixEureka企业级开发中最高频使用的组件,SpringCloud框架中的基础组件,通常SpringCloud项目都会用到。提供了服务注册和服务发现的功能。由于SpringCloud是微服务框架,整个系统中会存在多个功能点较少的微服务,Eureka的注册和发

2020-06-18 11:37:14 3118 3

原创 nodejs版本管理工具——nvm 安装与使用

nvm介绍nvm 全名 Node Version Manager,是nodejs的版本管理工具。使用nvm可以很方便的安装和切换不同版本的nodejs。安装与使用下载点此从github上下载最新版本,本次演示的是windows版本,打开网址我们可以看到两种安装包:nvm-noinstall.zip:绿色免安装版,但使用时需进行配置。nvm-setup.zip:安装版,推荐使用安装本次演示的是nvm-setup的安装1、双击安装文件 nvm-setup.exe2.选择nvm安装路径3

2020-06-18 10:36:45 367

原创 Swagger2配置(解决404报错)

在spring boot项目中配置Swagger2,配置好了但是访问确实404,SwaggerConfig中的注入方法也执行了还是访问不到页面。究其原因是MVC没有找到swagger-ui包中的swagger-ui.html文件。Swagger2的配置步骤如下:一、引入依赖pom.wml<dependency> <groupId>io.springfox</groupId> <artifactId>spr

2020-05-31 13:46:58 2344 1

原创 ThreadLocal解决多线程问题

ThreadLocal简介多线程访问同一个共享变量的时候容易出现并发问题,特别是多个线程对一个变量进行写入的时候,为了保证线程安全,一般使用者在访问变量的时候需要进行额外的同步措施才能保证线程安全性。ThreadLocal是除了加锁这种同步方式之外的一种保证线程安全的方法,当我们在创建一个变量后,如果每个线程对其进行访问的都是线程自己的变量这样就不会存在线程不安全得问题。在JDK 1.2的版本...

2020-04-03 16:33:59 388

原创 Java 8新特性之 Optional

Optional简介Optional 类的引入主要是为了解决解决空指针异常的问题。Optional是一个包含有可选值的包装类,这意味着 Optional 类既可以含有对象也可以为空。Optional可以帮助我们简化代码,给我们的判空操作提供了一种标准的写法,强制我们考虑空值的情况。类方法方法描述static Optional empty()返回空的Optional实例...

2020-03-21 20:29:45 334

原创 SpringBoot访问静态资源

添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependen...

2020-03-19 22:44:51 285

原创 Java 8新特性之Lambda 表达式

Lambada表达式简介Lambada表达式可以说是推动Java 8发布最重要的新特性。Lambada允许吧函数作为一个参数传递进方法中,使用Lambada表达式可以使我们的代码更加简洁优雅。Lambada表达式特性可选的参数: 一个 Lambda 表达式可以有零个或多个参数可选类型声明: 参数的类型既可以明确声明,也可以根据上下文来推断。例如:(int t)与(t)效果相同参数在圆...

2020-03-19 20:37:32 127

原创 JPA的Repository详解

Spring Data JPASpring Data是Spring提供的操作数据的框架,Spring Data JPA是Spring Data的一个模块,通过Spring data 基于jpa标准操作数据的模块。Spring Data的核心能力,就是基于JPA操作数据,并且可以简化操作持久层的代码。它使用一个叫作Repository的接口类为基础,它被定义为访问底层数据模型的超级接口。而对于...

2020-03-17 17:49:32 924

原创 JPA映射关系配置(一对多、多对多)

实体关系是指实体与实体之间的关系,从方向上分为单向关联和双向关联,从实体数量上分为一对一、一对多、多对多等。对于任何两个实体,都要从这两个方面区分它们之间的关系。一对多表结构设计-- ------------------------------ Table structure for banner-- ----------------------------DROP TABLE IF ...

2020-03-07 11:36:23 67

原创 Idea逆向生成实体类

数据库中如果已经有了数据表,我们就没有必要再对照着数据表的字段把模型再一个一个写一遍。本文介绍通过Idea逆向生成模型。连接数据库Idea中有内置的类似Navicat的可视化数据库管理工具。点击View——>Tool Windows——>Database 可以调出Database的面板在控制面板处点击左上角的"✚"号——>Data Source——>选择数据库类型...

2020-03-02 23:39:46 117

原创 数据库设计步骤及数据库优化原则

数据库设计步骤数据库设计的思路大致分为三步:第一步,把表当作面向对象中的模型(实体)来思考。我们在做项目的时候会面临很多业务,首先要找到很多业务对象。比如项目中优惠券有优惠券(Coupon)这个对象,对应就会有Coupon这个表。所以在做数据库设计的时候首先要找到业务中的各个业务对象,把它当成一个个的模型实体来对待。第二步,就是来思考对象与对象之间的关系。具体到数据库他们是通过外键建立联系的...

2020-02-11 14:51:38 140

原创 Springboot 配置 application.yml 连接MySQL数据库

1.pom.xml中加入依赖<!-- JPA的依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa&lt...

2020-02-08 08:58:16 4789 2

原创 SpringBoot多环境(开发、生产和测试环境)配置文件

我们的项目在开发环境、生产环境,不同的环境下会有不同的配置。比如访问服务的端口,或者数据库的配置。如果每次切换环境都去直接修改这些配置的值,不仅麻烦而且很容易出错。我们如何才能根据环境动态的选择配置文件呢?如图是我项目中的3个配置文件。其中,记录在application.yml中的配置项在任何环境下都会生效,记录在application-dev.yml中的配置项只在dev(开发)环境下生效,记录...

2020-02-07 19:08:21 672

原创 SpringBoot自动配置

SpringBoot自动配置原理@SpringBootApplicationSpringBoot应用程序能够实现自动配置主要依靠引导类上的一个注解:@SpringBootApplicationpackage com.lin.missyou;import org.springframework.boot.SpringApplication;import org.springframewo...

2020-02-03 21:12:38 49

原创 SpringBoot之参数接收与校验

参数校验对于我们Web开发是非常重要的。第一,作为服务端的开发者,如果你的参数校验写的足够规范是可以大大提高前后端协同开发的开发效率的,从而为公司及自己大大节约时间成本以及经济成本。第二,参数校验对于保护Web里面的机密数据和机要信息也是非常重要的。...

2020-02-02 12:37:48 520

原创 IDEA debug 调试Evaluate Expression应用

有时我们不知道要对变量具体进行怎么样的操作,这个时候idea中的这个功能就起到很大作用了在IDEA debug调试模式下,进入断点。在想要操作的变量上右键,点击Evaluate Expression打开Evaluate Expression计算表达式窗口输入操作变量的表达式, 这里的e是我这段程序中的一个变量, 具体的依据自己项目而定, 点击Evaluate确定,就可以看到具体的值了...

2020-02-01 18:36:01 299

原创 lombok的基本使用

1-5lombok的基本使用方式lombok是一个可以帮助我们大幅度简化代码的Java代码工具。比如JavaBean中private的成员变量需要getter和setter方法,大量的getter和setter方法在一个类中会让我们的类显得非常长。使用lombok工具就可以省去这些代码。使用方法在pom文件中添加配置此处未指定版本,你也可以指定版本<dependency>...

2020-01-31 12:56:21 97

原创 SpringBoot根据目录结构自动配置Url前缀

在很多其他框架中,比如Python的Flask、node.js的KOA,Controller要想能够响应前端的请求都需要我们主动去注册到应用程序上。而Spring不需要我们自己去注册,由Spring通过扫描注解的方式去主动发现。自定义RequestMappingInfoSpring中的RequestMappingHandlerMapping专门来负责处理标注了@RequestMapping的控...

2020-01-29 21:29:51 2324 3

原创 SpringBoot全局异常处理

为了让客户端能有一个更好的体验,当客户端发送请求到服务端发生错误时服务端应该明确告诉客户端错误信息。SpringBoot内置的异常处理返回的界面太杂乱,不够友好。我们需要将异常信息做封装处理响应给前端。创建一个全局异常处理类``...

2020-01-28 21:13:21 151

原创 Java异常分类及处理

异常分类Throwable: 在Java中,Throwable是所有异常的根基类,直接从Object继承而来,只有Throwable类型的实例才可以被抛出(throw)或者捕获(catch)。它有两个子类:Error 和 Exception。Error: java 运行时系统的内部错误和资源耗尽错误,如虚拟机崩溃等。通过应用程序无法解决,应用程序不会抛出该类对象。Exception: 应用...

2020-01-20 14:57:52 105

原创 Spring之策略模式的解决方案

1.byname 切换bean的name2.@Qualifier指定bean3.有选择的只注入一个bean——注释掉某些bean上的@Component注解4.使用@Primary第1种方案需要在源代码里改Bean的名字,不推荐。前三种可选但是并不推荐,如果只是写业务代码,所有的代码都是你自己写的,当然可以每个方案随意使用。第4种方案,@Primary 的意思是优先,标注了@Primary...

2020-01-17 17:51:55 61

原创 Spring之模式注解

模式注解(Stereotype Annotations)Spring框架中有很多可用的注解,模式注解(Stereotype Annotations)是其中的一类。首先来看一段官方对Stereotype Annotations的定义。A stereotype annotation is an annotation that is used to declare the role that a ...

2020-01-17 16:27:19 87

原创 spring之@Conditional条件注解

自定义注解内置的成品条件注解@ConditionalOnProperty@ConditionalOnBean 当SpringIoC容器内存在指定Bean的条件@ConditionalOnClass @ConditionalOnExpression 基于SpEL表达式作为判断条件@ConditionalOnJava 基于JVM版本作为判断条件@ConditionalOnJndi 在JN...

2020-01-16 15:09:17 127

原创 SpringBoot默认包扫描机制及使用@ComponentScan指定扫描路径

SpringBoot默认包扫描机制标注了@Component和@Component的衍生注解如@Controller,@Service,@Repository就可以把当前的Bean加入到IOC容器中。那么SpringBoot是如何知道要去扫描@Component注解的。SpringBoot默认包扫描机制: 从启动类所在包开始,扫描当前包及其子级包下的所有文件。我们可以通过以下的测试来验证一下...

2020-01-15 16:36:18 7926 3

原创 @Autowired的注入方式

之前的文章依赖注入注入的是一个具体类的对象。但是这样就违背了依赖倒置的原则,如果我们要满足变化需要依赖一个抽象,而不是依赖一个具体。public class BannerController { @Autowired private Diana diana;}首先,我们要把Diana抽象成一个接口public interface ISkill { void r();}...

2020-01-07 17:57:41 2642

原创 Spring常用的三种依赖注入方式

Spring通过DI(依赖注入)实现IOC(控制反转),常用的注入方式主要有三种:成员变量注入,setter注入与构造注入。成员变量注入也叫字段注入public class BannerController { @Autowired private Diana diana;}setter注入public class BannerController { priva...

2020-01-07 16:12:54 240 1

原创 Spring的实例化和依赖注入时机与延迟实例化

Spring的实例化使用@Autowired可以注入一个bean进来 @Autowired private Diana diana;那么如果在容器中没有Diana的对象被实例化的时候应用程序会报错吗?我们可以通过把Diana上面的@Component注释掉来看一下结果如何//@Componentpublic class Diana { public void r(){ ...

2020-01-07 15:22:29 879 1

原创 Spring几个常用构建RESTFulAPI的注解

@GetMapping用于处理GET请求。@GetMapping("/test") 等同于 @RequestMapping(value = “/test”,method = RequestMethod.GET)@PostMapping用于处理POST请求。@PostMapping("/test") 等同于 @RequestMapping(value = “/test”,method = ...

2020-01-06 14:45:53 401

原创 Springboot热部署

使用spring提供的devtools添加依赖在pom文件中添加以下配置<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>run...

2020-01-06 10:55:38 51 1

原创 英语学习的五大误区

重审学习路径,发现语言本质

2019-12-30 23:08:31 285 4

原创 Java编程思想

本文章仅表述作者个人观点。内容来源于慕课网七月老师Java全栈课,记录一下自己学习的过程。

2019-12-24 11:13:35 85

原创 IntelliJ Idea如何设置 tab 为 4 个空格

一些编码规范会要求代码格式采用 4 个空格缩进,禁止使用 tab 字符。好处在于不同编辑器下4个空格的宽度看起来是一致的,而tab则长短不一,但是如果真的按4次空格来缩进太麻烦。接下来我们就一起来看看如何在idea中设置按tab就可以输入4个空格Settings ->Editor -> Code style -> JavaUse tab character不要选,indent...

2019-12-17 16:02:47 1092

原创 IntelliJ Idea设置text file encoding UTF-8;换行符为 Unix 格式

一些代码规范要求IDE 的 text file encoding 设置为 UTF-8; IDE 中文件的换行符使用 Unix 格式。接下来介绍在Idea中什么进行设置:text file encoding UTF-8Transparent native-to-ascii conversion 这个功能会将我们输入的所有字符转换成Unicode序列码保存,避免properties的乱码问题。...

2019-12-17 14:56:29 4432

原创 idea 2019.2顶部菜单栏隐藏的恢复办法

刚刚手欠点了一下 menu main 然后idea的顶部菜单就隐藏了,就像下面这样,也找不到怎么恢复,也没找到能够解决这个问题的博文。一开始直接去修改了config\options 下面的ui.lnf.xml 这个配置文件,后来找到了更好的解决办法。双击shift 出现弹出框,在搜索栏中输入menu,然后点击下图中红框这个位置的开关就可以很方便的显示或隐藏顶部菜单栏了。找到了解决办法就觉...

2019-12-14 10:45:03 2790

原创 JAVA踩坑之Arrays.asList().contains()

Arrays.asList().contains()没有得到期望值本来是想用Arrays.asList().contains()来判断某个值是否存在于数组中,可是后来一运行发现String[]判断结构正常,而对int[]值的判断输出结果永远是false。测试代码如下: public static void main(String[] args) { String[] strArr =...

2019-12-13 16:01:15 1931 1

net.wimpi.modbus

Java通过modbus通讯协议连接硬件设备,支持TCP方式通讯采用modbus rtu协议。下载压缩包解压后放到自己项目src目录下。调用方法参考文章:Modbus通讯协议(二)——Java向ModbusSlave模拟器读写数据

2021-04-16

空空如也

空空如也

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

TA关注的人 TA的粉丝

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