java

Spring Boot如何支持嵌入式Servlet容器

2020-10-09
Spring Boot支持Tomcat.Jetty和Undertow三种Servlet容器嵌入到Web应用程序中,开发者使用starter即可方便嵌入,默认情况下,嵌入服务器的访问端口为8080. Servlets.Filters & Listeners 这些组件可以同组件扫描注册,即把他们定义为Spring Bean. 默认情况下,如果只有一个servlet,则把它映射到/:如果有多个servlet,则加上bean name作为前缀然后映射到/*. 如果默认策略不能满足你,你可以通过Servl

java、android可用的rtp封包解包h264案例

2020-10-09
做直播,音视频通讯.经常需要通过rtp协议封装音视频数据来发送.网上找到的基本都是c或c++版本的,没有JAVA版本的.就算千辛万苦找到一篇java版本的,要么不能用,要么就是一些片段,要么有封包没解包. 很是蛋疼,本人也是这样,刚开始不太熟悉rtp协议,不太明白怎么封包组包,痛苦了几天,终于搞出来了,分享给有需要的朋友,希望对你们有所帮助. 直接看代码吧.不多说了. 首先看看关键类: package com.imsdk.socket.udp.codec; import android.os.S

JAVA调用SAP WEBSERVICE服务实现流程图解

2020-10-09
调用SAP WebService服务需要转换操作 1.通过浏览器访问SAP WebService地址,进行验证并生成wsdl文件地址并不是可以直接转化的wsdl: 直接访问地址并进行验证后: 另存文件wsdl 2. 通过Idea生成java可执行代码存放wsdl 选中 wsdl文件,选择Tools ->WebService -> Generate Java Code From Wsdl- 最开始引用路径会是一个绝对路径,我们修改Service引用wsdl方式 3. 调用service 此时便可

Java8 使用 stream().sorted()对List集合进行排序的操作

2020-10-09
1.声明一个测试对象 import java.time.LocalDate; import java.util.List; import lombok.Data; @Data public class StudentInfo{ //名称 private String name; //性别 true男 false女 private Boolean gender; //年龄 private Integer age; //身高 private Double height; //出生日期 private

详解Idea SpringBoot搭建SpringCloud的准备工作(推荐)

2020-10-09
1.编码设置 2.开启注解(让注解生效) 3.本项目编译运行版本 4.把不需要的文件隐藏(注意可以不用做,做了可以让项目看起来更加整洁干净清晰明了) 以上就是搭建一个SpringCloud之前的步骤. 二.SpringCloud父工程的依赖 <groupId>org.example</groupId> <artifactId>spring-cloud</artifactId> <version>1.0-SNAPSHOT</version&g

Java日志框架用法及常见问题解决方案

2020-10-09
日志定义: 在计算机领域,日志文件(logfile)是一个记录了发生在运行中的操作系统或其他软件中的事件的文件,或者记录了在网络聊天软件的用户之间发送的消息. 日志记录(Logging):是指保存日志的行为.最简单的做法是将日志写入单个存放日志的文件. 日志级别优先级: ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF 日志框架的作用: ①:跟踪用户对系统访问,记录了系统行为的时间.地点.状态等相关信息

spring boot 下对JSON返回值去除null和空字段操作

2020-10-09
在开发过程中,我们需要统一返回前端json格式的数据,但有些接口的返回值存在 null或者""这种没有意义的字段. 不仅影响理解,还浪费带宽,这时我们可以统一做一下处理,不返回空字段,或者把NULL转成"",spring 内置的json处理框架是Jackson.我们可以对它配置一下达到目的 直接看代码,很简单. /** * 〈返回json空值去掉null和""〉 〈功能详细描述〉 * * @author gogym * @version 2017

Java连接数据库,及增删改查的示例

2020-10-08
自定义连接数据库的util类 package com.shuzf.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCUtil { // 定义驱动器类的路径 private static final String DRI

Java比较对象大小两种常用方法

2020-10-08
引入原因: Java中的对象,正常情况下,只能进行比较:== 或!= ,不能使用 < 或 > ,但是在开发时需要用到比较对象的大小 1.Comparable接口的使用(自然排序) 1.像String .包装类等实现了Comparable接口,重写了compareTo()方法,给出了比较两个对象大小的方法 2.像String .包装类等重写了compareTo()方法后,默认执行了从小到大的排序 3.重写compareTo()的规则: 如果当前对象this大于形参对象obj,则返回正整数,如果当

Java 将List中的实体类按照某个字段进行分组并存放至Map中操作

2020-10-08
1.JDK1.8之前: 假设有实体类User,里面有字段id,我们将相同id的User进行分组,并存放在Map中.(例子不是很恰当,但很能说明问题) public static void main(String[] args) { List<User> list = new ArrayList<>(); list.add(new User(1, 1)); list.add(new User(1, 2)); list.add(new User(2, 1)); list.add(new

Java将byte[]转图片存储到本地的案例

2020-10-08
Java中,将字节数组转成图片的有很多种方式,今天在这里记录其中一种,方便以后查询,也可以提供给没有接触的童鞋做一个参考. 首先是将图片转成字节数组 import sun.misc.BASE64Encoder; import java.io.*; // 传入图片路径,获取图片 FileInputStream fis = new FileInputStream("/Users/curry/error.png"); BufferedInputStream bis = new Buffere

java 中类似js encodeURIComponent 函数的实现案例

2020-10-08
我就废话不多说了,大家还是直接看代码吧~ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net.URLEncoder; /** * Utility class for JavaScript compatible UTF-8 encoding and decoding. * * @see http://stackoverflow.com/questions/607176/ja

如何根据带账号密码的WSDL地址生成JAVA代码

2020-10-08
wsdl: 网络服务描述语言bai是Web Service的描述语言,它包含一系列描述某du个web service的定义. 一.组成:zhi WSDL 文档可以分为两部分.顶部分由抽象定义组成,而底部分则由具体描述组成. 二.元素: WSDL 元素基于XML语法描述了与服务进行交互的基本元素: Type(消息类型):数据类型定义的容器,它使用某种类型系统(如 XSD). Message(消息):通信数据的抽象类型化定义,它由一个或者多个 part 组成. Part:消息参数 Operation

在MyBatis中使用 # 和 $ 书写占位符的区别说明

2020-10-08
#将传入的数据都当成一个字符串,会对传入的数据自动加上引号: $将传入的数据直接显示生成在SQL中 注意:使用 $ 占位符可能会导致SQL注入攻击,能用#的地方就不要使用 $ 写order by 子句的时候应该用 $ 而不是# 补充知识:mybatis 中生成的字段不带引号 #{}和${} 最近在用mybatis,之前用过ibatis,总体来说差不多,不过还是遇到了不少问题,再次记录下, 比如说用#{},和 ${}传参的区别, 使用#传入参数是,sql语句解析是会加上"",比如 sel

Mybatis打印替换占位符后的完整Sql教程

2020-10-08
利用mybtis插件打印完整的sql,将占位符?替换成实际值 import org.apache.ibatis.cache.CacheKey; import org.apache.ibatis.executor.Executor; import org.apache.ibatis.mapping.BoundSql; import org.apache.ibatis.mapping.MappedStatement; import org.apache.ibatis.mapping.Paramete

浅谈springboot内置tomcat和外部独立部署tomcat的区别

2020-10-08
前两天,我去面了个试,面试官问了我个问题,独立部署的tomcat跟springboot内置的tomcat有什么区别,为什么存在要禁掉springboot的tomcat然后将项目部署到独立的tomcat当中? 我就想,不都一个样?独立部署的tomcat可以配置优化?禁AJP,开多线程,开nio?而且springboot内置的tomcat多方便,部署上服务器写个java脚本运行即可.现在考虑下有什么条件能优于内置tomcat的. 1.tomcat的优化配置多线程?内置的也可以配置多线程 server

JAVA读取文件流,设置浏览器下载或直接预览操作

2020-10-08
最近项目需要在浏览器中通过URL预览图片.但发现浏览器始终默认下载,而不是预览.研究了一下,发现了问题: // 设置response的Header,注意这句,如果开启,默认浏览器会进行下载操作,如果注释掉,浏览器会默认预览. response.addHeader("Content-Disposition", "attachment;filename=" + FileUtil.getOriginalFilename(path)); 然后需要注意: response.s

java中long(Long)与int(Integer)之间的转换方式

2020-10-08
我就废话不多说了,大家还是直接看代码吧~ public static void main(String[] args) { // 1.将long型转化为int型,其中int.long是基础类型 long a = 10; int b = (int) a; System.out.println("1.将long型转化为int型:" + b); // 2.将int型转化为long型,其中int.long都是基础类型 int a1 = 10; long b1 = a1; System.out.

java 枚举enum的用法(与在switch中的用法)

2020-10-08
实际开发中,很多人可能很少用枚举类型.更多的可能使用常量的方式代替.但枚举比起常量来说,含义更清晰,更容易理解,结构上也更加紧密.看其他人的博文都很详细,长篇大论的,这里理论的东西不说了,一起看看在实际开发中比较常见的用法,简单明了. 看看枚举类 /** * 操作码类 * @author kokJuis * @version 1.0 * @date 2017-3-6 */ public enum Code { SUCCESS(10000, "操作成功"), FAIL(10001, &q

IntelliJ IDEA 2020.2.3永久破解激活教程(亲测有效)

2020-10-08
idea官方推送了2020.2.3版本的更新,那么大家最关心的问题来了,之前激活idea2020.2.2的方法还能用吗?如果不能,那么要如何永久免费激活idea2020.2.3版本? idea下载链接(对应版本号下载): https://www.jetbrains.com/idea/download/other.html 由于是小版本升级,所以没什么太多的改动,基本上都是一些bug的修复,具体修复了什么bug,大家可以点击bug链接过去详细了解. 功能没有改动,UI上面也没有什么变化,启动界面什