slf4j

minMINA(5)------MINA框架中的Serial串口通讯

◇◆丶佛笑我妖孽 提交于 2020-01-08 16:22:29
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> MINA作为优秀的网络应用开发框架,也集成了关于串口通讯的开发,其集成使用的为RXTX串口开发框架,RXTX为各操作系统下的兼容javax.comm串口通讯包API的实现,若不甚了解或遇安装问题请参考我另一篇博文: http://blog.csdn.net/cheng157507947/article/details/43764623 由于我原先使用过RXTX做过串口开发测试,环境并无问题,windows7 64位下创建了两个虚拟串口用于串口调试,linux下也是使用xgcom串口调试工具,其环境问题不在赘述。 MINA官网中有对Serial Transport的大致说明和样例,可参考: http://mina.apache.org/mina-project/userguide/ch6-transports/serial-transport.html(一些需要注意的问题官网中也有解释) 在开发测试之前,除RXTX环境外,需知在MINA提供的2.0.9的基础包中并不包含Serial开发包,在上述连接中已有标明,并已提供了下载地址,开发环境中需加入mina-transport-serial jar。 此外MINA框架使用slf4j,在不做任何处理的情况下会报出 SLF4J: Failed to load class

minMINA(4)------用手机通讯APP与MINA服务器进行简单通讯代码集成springboot(非WEB)

一笑奈何 提交于 2020-01-08 16:04:46
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在上一帖的代码基础上集成spring boot,具体修改的地方: 1)myhandler.java文件中 @Component public class MyHandler extends IoHandlerAdapter 2) MinaServer.java文件中 @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) public class MinaServer implements ApplicationRunner { static int PORT=7080; //Mina三个主要的部分之一是IoService,其中服务器端实现IoService的是IoAcceptor,客户端实现IoService的是IoConnector //IoAcceptor和IoConnector都分别有实现TCP/IP,UDP/IP及虚拟机管道通讯的子接口 static IoAcceptor accept = null; // AbstractIoService 是IoService接口的适配层,是一个abstact class // AbstractIoAcceptor 也是一个适配器,是一个 abstactr class

MINA(3)------用手机通讯APP与MINA服务器进行简单通讯代码

风格不统一 提交于 2020-01-08 15:22:50
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 服务器端主程序及IoHandler业务程序: public class MinaServer { static int PORT=7080; //Mina三个主要的部分之一是IoService,其中服务器端实现IoService的是IoAcceptor,客户端实现IoService的是IoConnector //IoAcceptor和IoConnector都分别有实现TCP/IP,UDP/IP及虚拟机管道通讯的子接口 static IoAcceptor accept = null; // AbstractIoService 是IoService接口的适配层,是一个abstact class // AbstractIoAcceptor 也是一个适配器,是一个 abstactr class ,只不过是继承自AbstarctIoService // IoHandler是mina的三个主要部分之一,这主要定义了session相关的接口(create,open,status,idle),异常(exceptionCaught)及数据发送和接收接口(messageReceive,messageSend) // IoHandlerAdapter是一个适配器,也是一个abstract class ,实现了IoHandler的接口

Apache MINA --- [简易入门]

为君一笑 提交于 2020-01-08 13:33:12
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Apache MINA是一个网络应用程序框架,它用来帮助我们轻松的建立高性能的,高可扩展的网络应用程序.它为各种传输(比如TCP/IP,UDP/IP)提供了抽 象的,事件驱动的,异步的API.它也常常被被称作"NIO框架库","客户服务框架库","网络套接字库" 使用MINA的必要条件: MINA 2.0.7 Core JDK 1.5 + SLF4J 1.3.0 +(确保使用正确的SLF4J版本来匹配你的日志框架,如:slf4j-log4j12.jar 和 log4j-1.3.x.jar不能一起工作) *SLF4J:简单日志门面,它允许你搭配使用任意的日志框架并提供统一的对外接口,它使用了静态绑定,这意味着对应每一个日志框架都有一个对应的JAR.如下所示: Logging framework Required JARs Log4J 1.2.x slf4j-api.jar, slf4j-log4j12.jar** Log4J 1.3.x slf4j-api.jar , slf4j-log4j13.jar java.util.logging slf4j-api.jar, slf4j-jdk14.jar** Commons Logging slf4j-api.jar , slf4j-jcl.jar 注意: 1

apache mina 学习笔记之一:mina简介和环境搭建

夙愿已清 提交于 2020-01-08 13:07:06
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Mina简介: Apache MINA(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架。当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序开发、串口通讯程序(只在最新的预览版中提供),MINA 所支持的功能也在进一步的扩展中。 Apache Mina经常用作: 1)NIO框架库 2)客户端/服务器通信框架库 3)网络Socket通信库 Apache Mina还伴随有不少子项目: 1)Asyncweb 构建于Apache Mina异步框架之上的HTTP服务器 2)FtpServer 一个FTP服务器 3)SSHd 一个Java库,支持SSHH协议 4)Vysper 一个XMPP服务器 本文将通过一个简单的问候程序 HelloServer 来介绍 MINA 的基础架构的同时演示如何使用MINA 开发网络应用程序。 环境准备 首先到官方网站下载最新的 MINA 版本,地址是:http://mina.apache.org/downloads.html。下载之前先介绍一下 MINA 的两个版本:1.0.x 适合运行环境为 JDK1

SLF4J: Multiple bindings were found on the class path

谁说胖子不能爱 提交于 2020-01-07 19:40:47
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 众所周知,SLF4J是一个日志门面框架,它的作用是用于定义统一的日志接口,而具体的日志实现是由各个日志框架实现的,比如log4j,logback等。 问题 在使用SLF4J时,当class path同时包含了多个日志框架时,将会导致日志无法按照预期打印输出。通过查看控制台日志,能发现输出的warning info: Multiple bindings were found on the class path。 解决方法 当类路径中有多个日志框架可用时,应只保留一个日志框架,删除其他日志框架。比如,版本v0.8.1的 cassandra-all jar引入了log4j h和 slf4j-log4j12这两个编译时依赖项。当在maven pom.xml中引入v0.8.1的cassandra-all jar,实际上同时引入了log4j h和 slf4j-log4j12。在这种情况下,如果你不希望使用og4j h和 slf4j-log4j12,你可以按照下面的方式排除这两个artifact: <dependencies> <dependency> <groupId> org.apache.cassandra</groupId> <artifactId>cassandra-all</artifactId>

slf4j 是怎么绑定具体的日志框架的

两盒软妹~` 提交于 2020-01-07 18:57:49
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> SLF4J 英文全称是 Simple Logging Facade for Java, 是一个门面(外观)接口或者说各种日志框架的抽象,比如 java.util.logging, logback, log4j 等;使用这货,我们可以不用关心具体的实现,也就是说可以随时切换日志框架。 这边使用的是目前最新版本的 slf4j 1.8.0-beta2 简单使用下试试 示例代码 https://github.com/minorpoet/logging-slf4j 添加依赖 dependencies { compile group: 'org.slf4j', name: 'slf4j-api', version: '1.8.0-beta2' } 使用 package pri.holysu.logging.sl4j; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class HelloWorld { public static void main(String[] args) { Logger logger = LoggerFactory.getLogger(HelloWorld.class); logger.info("hello

Java日志-SLF4J使用与源码分析

本秂侑毒 提交于 2020-01-07 18:12:50
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> SLF4J全称The Simple Logging Facade for Java,Java简易日志门面,将接口抽象与实现隔离开,在不修改代码的情况下使用不同的日志实现。 SLF4J支持的日志实现有: log4j logback(推荐实现) java.util.logging simple(全部输出到System.err) Jakarta Commons Logging nop(忽略所有日志) 使用SLF4J 只要在项目中引入SLF4J的jar包就能开启SLF4J: 1 2 3 4 5 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.25</version> </dependency> 然后写一个最简单的输出日志的程序: 1 2 3 4 5 6 7 8 9 10 import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class HelloWorld { public static void main(String[] args) { Logger logger = LoggerFactory

Java日志体系居然这么复杂?——架构篇

百般思念 提交于 2020-01-07 07:18:22
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 本文是一个系列,欢迎关注 日志到底是何方神圣?为什么要使用日志框架? 想必大家都有过使用 System.out 来进行输出调试,开发开发环境下这样做当然很方便,但是线上这样做就有麻烦了: 系统一直运行,输出越来越多,磁盘空间逐渐被写满 不同的业务想要把日志输出在不同的位置 有些场合为了更高性能,尽量控制减少日志输出,需要动态调整日志输出量 自动输出日志相关信息,比如:日期、线程、方法名称等等 显然 System.out 解决不了我们的问题,但是我们遇到的问题一定会有前人遇到过,日志也不例外,其中就有一个大牛 Ceki ,整个Java的日志体系几乎都有Ceki参与或者受到了Ceki的深度影响。当然Java日志体系的复杂度也有一部分原因是拜这位大牛所赐。 Java日志的恩怨情仇 1996年早期,欧洲安全电子市场项目组决定编写它自己的程序跟踪API(Tracing API)。经过不断的完善,这个API终于成为一个十分受欢迎的Java日志软件包,即Log4j(由Ceki创建)。 后来Log4j成为Apache基金会项目中的一员,Ceki也加入Apache组织。后来Log4j近乎成了Java社区的日志标准。据说Apache基金会还曾经建议Sun引入Log4j到Java的标准库中,但Sun拒绝了。 2002年Java1

slf4j和Log4j、log4j2日志使用

强颜欢笑 提交于 2020-01-07 01:53:01
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在使用日志时,由于jdk,spring等版本不断升级,log的版本也需要更改,所以,使用slf4-api去调用不同的日志成为编程的规范。 具体使用方法是,在slf4j和具体的日志系统中间使用桥接,实现slf4j的spi接口,同时使用具体的日志系统。 给出几套方案: 1、slf4j+log4j2 log4j核心jar包:log4j.jar slf4j核心jar包:slf4j-api.jar slf4j与log4j的桥接包:slf4j-log4j12.jar,这个包的作用就是使用slf4j的api,但是底层实现是基于log4j <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>${log4j.version}</version> </dependency>