java
慕枫520
IT虐我千百遍,我待IT如初恋。。。。
展开
-
The server selected protocol version TLS10 is not accepted by client preferences [TLS12]“. 这个问题如何解决?
springboot连接sqlserver数据库出现异常:ERROR org.apache.tomcat.jdbc.pool.ConnectionPool - Unable to create initial connections of pool.com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure S原创 2022-07-13 23:46:49 · 3302 阅读 · 1 评论 -
springboot如何使用aop统一处理请求日志、异常日志、返回日志?
springboot有很多方法处理日志,例如拦截器,aop切面,service中代码记录等。这里我们以aop切面为例:这里要注意点是 AOP中@Pointcut切入点表达式的使用,不能使用execution(public * *(..)) ,这个代表切入全部请求,会在启动项目的时候报空指针异常,因为启动项目时候无法获取request。所以建议切入点表达式指定为controller包下的方法。IpUtil.getIpAddr(request)方法为获取请求者的IP地址的方法,代码如下:执行原创 2022-06-08 01:23:49 · 4132 阅读 · 1 评论 -
springboot 项目application.yml配置文件里的配置
springboot 项目application.yml配置文件里的配置,mybatis框架+sqlserver数据库+logback日志框架 为例:原创 2022-06-06 21:26:59 · 3903 阅读 · 0 评论 -
springboot+maven 项目打包及发布的相关命令?
工具:idea+maven环境:linux 、windows打包命令:mvn clean install -DskipTests命令说明:mvn :表示用maven打包clean:清除原有的打包install:打包-DskipTests:打包时跳过测试类的测试项目启动命令:nohup java -jar empboxwarehousing-0.0.1-SNAPSHOT.jar --server.port=9998 > empBoxLog.l.原创 2022-05-30 20:40:02 · 592 阅读 · 0 评论 -
springboot项目jar包如何切换配置文件?
在日常开发中同一个项目经常要切换不同的环境进行测试,如果每一次切换环境都需要重新打包上传则非常影响开发效率,那有什么好的的方法可以迅速切换?不同的环境就意味着我们需要不同的配置文件,springboot如何制定多个配置文件并能在项目上切换使用?我们需要一个application.yml配置文件和各个环境对应的配置文件,原则是一个环境对应一个配置文件,文件的命名方法是:application-{环境名}.yml ,例如:application-test.yml准备好配置文件后如何指定运行哪个配原创 2022-05-23 17:19:08 · 990 阅读 · 1 评论 -
如何利用切面全局处理异常?
切面控制器代码:package com.example.empboxwarehousing.config;import com.example.empboxwarehousing.common.exception.BusinessException;import com.example.empboxwarehousing.common.response.WebResult;import lombok.extern.slf4j.Slf4j;import org.springframework原创 2022-05-23 01:21:28 · 430 阅读 · 0 评论 -
如何利用切面获取返回值?利用ControllerAdvice和beforeBodyWrite获取返回值
利用@ControllerAdvice和beforeBodyWrite()获取返回值!原创 2022-05-13 17:03:54 · 2150 阅读 · 0 评论 -
反射机制的应用场景?
动态代理模式就使用了反射机制,hibernate / Spring 框架也大量使用了反射机制,我们在使用JDBC连接数据库时使用的Class.forname("com.mysql.jdbc.driver"); 就是通过反射加载数据库驱动程序的。Spring 框架通过XML配置模式也是使用反射机制。...原创 2022-05-13 16:51:57 · 417 阅读 · 0 评论 -
HashMap和HashTable的区别?但是如果想线程安全有想效率高?
ConcurrentHashMapMap<String,Object> concurrentHashMap=new ConcurrentHashMap<String,Object>();一个目前使用最多,最推荐的一个集合,实现也是比较复杂的。里面的线程安全是通过cas+synchronized+volatile来实现的,其中也可看出它的锁是分段锁,所以它的性能相对来说是比较好的。整体实现还是比较复杂的但是它的效率是最高的,写效率稍慢,但读效率超高,所以实际高并发编原创 2022-02-17 23:26:38 · 3055 阅读 · 0 评论 -
tk.mybatis如何配置Oracle的主键自增策略?
如图所示:注意: 字段类型为封装类型,使用@Id注解标记为主键,制定策略,并指定主键查询方法。原创 2021-11-21 21:18:29 · 1186 阅读 · 0 评论 -
springboot如何开发一个拦截器??
第一步:定义拦截器import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Component;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.Mo原创 2021-10-10 22:56:53 · 105 阅读 · 0 评论 -
在拦截器种使用了request.getInputStream()或者getReader(),导致在controller中无法获取请求参数
问题描述:在拦截器种使用了request.getInputStream()或者getReader(),然后在controller接口种使用了@requestbody ,导致controller中无法获取入参,报错:HttpMessageNotReadableException: Required request body is missing:原因分析:ServletRequest中getReader()和getInputStream()只能调用一次。而又由于@RequestBody注解获取输出原创 2021-10-10 22:50:33 · 2182 阅读 · 0 评论 -
异常:HttpMessageNotReadableException: Required request body is missing
第一种情况:在post接口中定义了@RequestBody入参,接口实际调用的时候没有入参。传入相关参数即可解决,或者在@RequestBody(required=false) 。 @PostMapping(value = "/postpeople") public BaseResult postPeople(@RequestBody@RequestBody(required=false) SearchParam searchParam) { log.info("param :{}", J.原创 2021-10-10 21:42:39 · 23861 阅读 · 2 评论 -
stream流如何排序?
public class Emp { private String name; private Integer age; private String address; }public static void main(String[] args) { List<Emp> emps = new ArrayList<Emp>(); emps.add(new Emp("张三",12,"湖北武汉")); emps.add(new Emp("李四.原创 2021-09-05 23:11:33 · 8413 阅读 · 0 评论 -
jdk1.8创建stream的方法有哪些??
环境:jdk1.8创建stream的方法常见的有:单线程(stream),多线程(parallelStream),Stream.of(),Stream.iterate()等等。详情见代码:public static void main(String[] args) { streamRange(); } /** * 用range/rangeclose 创建stream * */ private static void streamRange() { // 用range/r原创 2021-09-05 16:06:25 · 216 阅读 · 0 评论 -
jdk1.8新特性:stream流 报错:stream has already been operated upon or closed
这个异常表示stream流已经被使用或者关闭。jdk8种的stream流是不可复用的,使用一次后就会被关闭,二次使用必须重新创建stream流。例如:public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("huawei"); list.add("apple"); list.add("oppo"); list.add(原创 2021-09-05 10:35:33 · 3410 阅读 · 0 评论 -
jdk1.8 stream 流的部分方法使用:
/** * jdk1.8特性,流,过滤器 */ public static void filter() { List<String> list = Arrays.asList("11", "22", "32", "44", "55", "66"); list = list.stream().filter(str -> str.contains("6")).collect(Collectors.toList()); ...原创 2021-06-05 12:28:42 · 164 阅读 · 0 评论 -
Java 处理时间字符串的时候报这个错:Cannot format given Object as a Date
Java处理时间字符串应用df.parse()方法,而不是用format()方法。原创 2021-06-04 14:50:54 · 1990 阅读 · 0 评论 -
Caused by: org.apache.ibatis.binding.BindingException: Parameter ‘nll‘ not found. Available paramete
关键字写错了,应该是null 而不是 nll ,另外报这个异常的一般是mybatis中引用了多个入参,需要用@Param() 注解标注,且注解用的包不能选错:import org.apache.ibatis.annotations.Param;原创 2021-03-01 10:04:11 · 282 阅读 · 0 评论 -
哈罗单车的面试题?
有个数组集合 ,给定一个目标数字,从数组中查询出两个数字相加可以得到目标数字,例如:int[] list = { 1, 3, 5, 6} ,目标数字 targe = 8 ,返回的数组下标就是3和5的下标,即:1和2。解题思路:将数组中的每个数字和他之后的每个数字相加,如果相加后的结果等于目标数字则返回这两个数字的下标。 public static void findtarget() { System.out.println("\n请输入要目标数字:"); Scanner sc = n.原创 2020-07-07 11:48:35 · 1626 阅读 · 0 评论 -
java 冒泡排序?
// 冒泡循环 public static void maopaoSort(int[] sortList) { //外层循环n-1 for (int i = 0; i < sortList.length - 1; i++) { // 内层循环 n-1-i for (int j = 0; j < sortList.length - 1 - i; j++) { if (sortList[j] > sortList[j + 1]) { int t...原创 2020-06-22 14:19:47 · 119 阅读 · 0 评论 -
简单的叙述一下发票系统的流程
先上图吧:概述:发票系统是门店的必备系统,门店在交易之后必然会给客户打印小票,在小票上就有开票的二维码。扫描二维码后系统门店开票权限的校验已经URL所带数据的校验,校验通过之后才能进行开票页面,点击提交按钮,在后台的开票接口中校验开票数据。若校验通过则将开票数据提交到开票云服务上进行开票,开票成功则由云进行回写发票数据。红冲则是将已经开好的票进行销毁操作。可以将订单数据传给云服务器...原创 2020-04-23 21:16:02 · 1395 阅读 · 0 评论 -
静态变量和实例变量有什么区别?
静态变量用static 修饰,类创建时便分配了内存地址。实例变量不用加static修饰的。在类被实例化后才会分配内存地址。原创 2019-12-06 17:16:03 · 489 阅读 · 0 评论 -
java中的 heap 和 stack 的区别 ?java中 堆和栈的区别??
java 内存分为两种,即堆和栈,也就是heap 和stack 。栈内存是当一个程序进入方法时会为这个方法单独分一块私属存储空间,用于存储这个方法的内部变量。当这个方法结束时,分给这个方法的栈存储空间就会被释放,栈内部的变量也会被释放。堆是与栈不同的内存,一般用于存放不在当前方法栈中的那些数据。例如:使用new创建的对象都放在堆里面,所以,它不会随着方法的结束而消失。方法中的局部变量,如果...原创 2019-10-15 20:00:43 · 210 阅读 · 0 评论 -
mybatis中@param注解有什么用?
@param注解是一个参数注解。在mybaitis的dao层使用。在mybatis中我们常常要使用到多个对象参数,但是在xml中的parameterType往往只能指定一个参数类型。为了解决这个问题,我们可以在dao的接口中使用@param注解,多个参数可以使用多个@param注解。这样就可以将参数传入mybatis的sql语句中了。使用的时候不用在xml中继续使用parameterType=...原创 2019-09-02 20:19:58 · 2572 阅读 · 0 评论 -
如何查看jdk的安装路径??
1.在运行窗口输入cmd,进入命令窗口,输入 java -verbose 并回车。2.在输出信息的最后一行你会看到你的jdk安装路径。如图:原创 2018-09-08 15:34:52 · 69275 阅读 · 16 评论 -
swagger中的常用注解。。。
@ApiModelProperty(required=true,value="钱箱(设备)唯一标识")@NotNull@Pattern(regexp="[-_ a-zA-Z0-9]{1,32)}")publicStringgetDeviceCode({returndeviceCode;}required=true :代表参数必传value="钱箱(设备)唯一标识...原创 2019-10-08 19:52:21 · 692 阅读 · 0 评论 -
java中的 length() 和 size() 的区别?
length() 方法是String类的方法,size() 是list的方法。数组没有length()方法但是有length属性。size() 是list 接口下的方法,凡是集成list接口的集合类都会有size()方法。...原创 2019-09-28 12:09:15 · 528 阅读 · 0 评论 -
oracle 如创建一个自增的序列SEQUENCE ?
CREATE SEQUENCE seq_fin_renewalINCREMENT BY 1 -- 每次加几个START WITH 1 -- 从1开始计数NOMAXvalue -- 不设置最大值NOCYCLE -- 一直累加,不循环CACHE 10;--设置缓存cache个序列,如果系统挂掉了或者其它情况将会导致序列不连续,也可以设置为---------NOCACHE...原创 2019-06-21 14:14:08 · 683 阅读 · 0 评论 -
@RequestBody的用法?
@RequestBody处理HttpEntity传递过来的数据,一般用来处理非Content-Type: application/x-www-form-urlencoded编码格式的数据。GET请求中,因为没有HttpEntity,所以@RequestBody并不适用。 POST请求中,通过HttpEntity传递的参数,必须要在请求头中声明数据的类型Content-Type,Sprin...原创 2019-03-25 19:24:18 · 499 阅读 · 0 评论 -
@PathVariable有什么作用?用法是怎样的?
@PathVariable 映射 URL 绑定的占位符带占位符的URL是Spring3.0新增的功能,该功能在SpringMVC 向REST目标挺进发展过程中具有里程碑的意义 通过@PathVariable可以将URL中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过@PathVariable(“xxx“) 绑定到操作方法的入参中。 ...原创 2019-03-25 19:07:14 · 1695 阅读 · 0 评论 -
Java 如何用正则表达式判断是否为URL?
/** * 判断一个字符串是否为url * @param str String 字符串 * @return boolean 是否为url * @author peng1 chen * **/ public static boolean isURL(String str){ //转换为小写 str = ...原创 2019-01-18 14:31:09 · 9993 阅读 · 5 评论 -
如何判断一个字符串是否为数字??如何判断字符串是否为整数???
如何判断一个字符串是否为数字? /** * 判断是否为数字 * @param str String对象 * @return boolean :true 是;false : 不是。 * @author code_chen * */ public static boolean isNumeric(String str){ ...原创 2018-09-28 16:46:20 · 4245 阅读 · 1 评论 -
JAVA中public,protected,fridenly,private的访问权限???
访问权限具体如下:(其中:无修饰符就是friendly,默认的)原创 2018-07-25 12:32:08 · 312 阅读 · 0 评论 -
Mybatis 中if ......else 的用法???<choose>的用法???<when>的用法?????
语法如下:<choose> <when test="....."> ........................................ </when> <when test="....."&...原创 2018-07-24 10:17:26 · 379 阅读 · 0 评论 -
Mybatis中如何在insert中使用foreach???Mybatis中foreach的用法???
<insert/>标签中的 parameterType="java.util.List" 代表方法的入参类型,是个list集合。<foreach/> 是循环标签;在使用foreach的时候最关键的也是最容易出错的就是collection属性,该属性是必须指定的,但是在不同情况 下,该属性的值是不一样的,主要有一下3种情况:1. 如果传入的是单参数...原创 2018-07-17 17:38:37 · 13835 阅读 · 2 评论 -
Mybatis中如何在添加数据时候实现字段增??selectKey的用法??
<insert id="insertDictionaries" parameterType="com.ceair.sales.dictionaries.model.Dictionaries"> <selectKey keyProperty="id" order="BEFORE" resultType="java.lang.String">原创 2018-07-10 11:02:57 · 1034 阅读 · 0 评论 -
java编程中@SuppressWarnings("unused")这个注解是什么意思?
@SuppressWarnings("unused") 表示该属性在方法或类中没有使用。添加此注解可以去除属性上的黄色警告!!!原创 2018-05-08 14:48:48 · 29018 阅读 · 0 评论 -
JAVA 单例模式?
首先我们需要明白什么是单例模式?单例模式有什么特点?单例是Java编程中一种常见的设计模式,可以很好的节省jvm资源的开销。具有以下特点:1.单例对象有且只能有一个实例对象。2.单例类必须是自己给自己创建实例对象。3.单例对象必须给所有的调用对象提供这一对象。单例模式常见的写法有懒汉式和饿汉式://懒汉式单例写法.在首次调用的时候才实例化自己 public ...原创 2019-08-19 00:08:37 · 85 阅读 · 0 评论 -
Integer 对象如何比较是否相等?
Integer类是基本数据类型int的包装器类,是抽象类Number的子类,位于java.lang包中,Integer 的值可以为null 。Integer 对象如何比较是否相等?第一种:用intValue值做比较 Integer a = new Integer(1); Integer b = new Integer(1); ...原创 2019-08-20 23:58:58 · 11744 阅读 · 0 评论