JAVA后端
段漂亮
这个作者很懒,什么都没留下…
展开
-
IDEA设置默认的Maven配置
修改完后点击OK,下次新建Maven项目时上图的Maven配置就会生效。1.新增ProjectsSettings。2.搜索Mavan后进行设置。原创 2022-07-21 15:29:58 · 715 阅读 · 0 评论 -
java快捷的sleep
package java.util.concurrent;下的:TimeUnit.SECONDS.sleep(3);原创 2021-06-08 09:43:59 · 186 阅读 · 0 评论 -
什么时候用@Autowired,什么时候用@Resource
##Autowired(来自于Spring)按类型查找,书写方便,不用在后面跟名字,缺点:当一个Service有多个ServiceImpl去实现时,那么会报错,因为它不知道去实现哪一个@Qualifier 虽然用这个个可以解决这个错误,但是引起了效率低下,先按类型查找,再按名字查找##Resource(JDK自带)按名字查找,后面要跟参数name,好处:当有多个Impl实现类时,可以通name快速找到##总结当只有一个Impl实类的时候,随便用哪个都差不多,>=2的时候,最好用@Res转载 2021-05-29 10:20:20 · 525 阅读 · 0 评论 -
关于QPS的计算和需要的服务数量
每秒查询率QPS每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS)机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器问:每天300w PV 的在单台机器上,这台机器需要多少QPS?答:( 3000000 * 0.8...原创 2021-03-15 15:24:30 · 710 阅读 · 0 评论 -
synchronized关键字和多线程访问同步方法的7种情况
目录一、synchronized性质 二、synchronized用法 三、多线程访问同步方法的7种情况 1. 两个线程同时访问一个对象的同步方法 2. 两个线程访问的是两个对象的同步方法 3. 两个线程访问的是synchronized的静态方法 4. 同时访问同步方法与非同步方法 5. 访问同一个对象的不同的普通同步方法 6. 同时访问静态synchronized和非静态的synchronized方法 7. 方法抛异常后,会释放锁 8. 上述7种情况总结 四、s转载 2021-03-08 10:40:15 · 218 阅读 · 0 评论 -
@RestController 和 @Controller 的区别
@RestController注解,相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面理解下面的注解哦。@ResponseBody 表示该方法的返回结果直接写入 HTTP response body 中,一般在异步获取数据时使用【也就是AJAX】,在使用 @RequestMapping后,返回值通转载 2021-03-08 09:47:13 · 401 阅读 · 0 评论 -
使用easyExcel动态导出excel并控制样式
easyExcel的使用手册https://www.yuque.com/easyexcel/doc/write#W4u1e本文章用到了水平居中,垂直居中,列高,行宽,头样式,内容样式等等,可参考package com.sanzhisoft.mybatis.oa.announcement.entity;import com.alibaba.excel.annotation.ExcelIgnore;import com.alibaba.excel.annotation.ExcelPrope...原创 2021-03-06 15:27:50 · 1719 阅读 · 0 评论 -
JAVA将多个PDF文件合并成一个PDF
实现所需JAR包:pdfbox-1.7.1JAR包下载地址:https://pdfbox.apache.org/pom依赖: <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>1.7.1</version>...转载 2021-03-04 16:33:45 · 2424 阅读 · 2 评论 -
java通过注解处理返回对象中有空值,是否展示的问题
需要在类的上面添加注解,如:// 当Value 为 "" 或者 null 不输出 @JsonInclude(JsonInclude.Include.NON_EMPTY)// 当Value 为 null 不输出 @JsonInclude(Include.NON_NULL)// 当Value 为默认值的时候不参与,如Int a; 当 a=0 的时候不参与 @JsonInclude(Include.NON_DEFAULT)// Default / 都参与序列化(无论字段为""...原创 2021-02-05 16:28:43 · 1720 阅读 · 1 评论 -
final关键字的作用
final关键字的作用相信对于final的用法,大多数人都可以随口说出三句话:1、被final修饰的类不可以被继承2、被final修饰的方法不可以被重写3、被final修饰的变量不可以被改变重点就是第三句。被final修饰的变量不可以被改变,什么不可以被改变呢,是变量的引用?还是变量里面的内容?还是两者都不可以被改变?写个例子看一下就知道了: public class FinalString { private String str; pu.转载 2021-01-18 14:26:55 · 1229 阅读 · 0 评论 -
static关键字作用总结
静态变量和静态方法static关键字最基本的用法是:1、被static修饰的变量属于类变量,可以通过类名.变量名直接引用,而不需要new出一个类来2、被static修饰的方法属于类方法,可以通过类名.方法名直接引用,而不需要new出一个类来被static修饰的变量、被static修饰的方法统一属于类的静态资源,是类实例之间共享的,换言之,一处变、处处变。JDK把不同的静态资源放在了不同的类中而不把所有静态资源放在一个类里面,很多人可能想当然认为当然要这么做,但是是否想过为什么要这么做呢?个人转载 2021-01-18 11:38:59 · 152 阅读 · 0 评论 -
java的pom中的<scope>
你通过maven引入的jar包,里面的类,都是已经编译好的字节码,跟runtime或者provided没关系。简单来说,compile、runtime和provided的区别,需要在执行mvn package命令,且打包格式是war之类(而不是默认的jar)的时候才能看出来。通过compile和provided引入的jar包,里面的类,你在项目中可以直接import进来用,编译没问题,但是runtime引入的jar包中的类,项目代码里不能直接用,用了无法通过编译,只能通过反射之类的方式来用。通过原创 2021-01-11 23:32:02 · 796 阅读 · 0 评论 -
Logger.error方法之打印错误异常的详细堆栈信息
一、问题场景使用Logger.error方法时只能打印出异常类型,无法打印出详细的堆栈信息,使得定位问题变得困难和不方便。二、先放出结论Logger类下有多个不同的error方法,根据传入参数的个数及类型的不同,自动选择不同的重载方法。当error(Object obj)只传入一个参数时会将异常对象作为Object使用,并最终当做String打印出来,当使用两个参数error(String message, Throwable t),且第二个参数为Throwable时,才会将完整的异常堆栈打转载 2020-12-23 14:56:03 · 1079 阅读 · 0 评论 -
记录几个javax.ws.rs.core.Response处理header的几个内容
Access-Control-Expose-Headers响应首部Access-Control-Expose-Headers列出了哪些首部可以作为响应的一部分暴露给外部。默认情况下,只有七种simple response headers(简单响应首部)可以暴露给外部:Cache-Control Content-Language Content-Length Content-Type Expires Last-Modified Pragma如在处理java返回文件的...原创 2020-12-21 22:38:18 · 1669 阅读 · 0 评论 -
java8的stream()方法的使用场景
将List<Object>对象转为List<Long> public static void main(String[] args) { List<OrganizeUser> list = new ArrayList<>(); OrganizeUser organizeUser = new OrganizeUser(); organizeUser.setUserId(1L); Organi转载 2020-12-18 11:29:56 · 998 阅读 · 0 评论 -
前后端传参的not marked as ignorable问题
jackson json转bean忽略没有的字段 not marked as ignorable@JsonIgnore注解用来忽略某些字段,可以用在Field或者Getter方法上,用在Setter方法时,和Filed效果一样。这个注解只能用在POJO存在的字段要忽略的情况,不能满足现在需要的情况。@JsonIgnoreProperties(ignoreUnknown = true),将这个注解写在类上之后,就会忽略类中不存在的字段,可以满足当前的需要。这个注解还可以指定要忽略的字...原创 2020-12-18 10:59:43 · 3007 阅读 · 0 评论 -
java获取当前项目的部署路径getRealPath方法
request.getRealPath("/")打印结果为当前项目部署的项目位置如:D:\oa\oa-server\public\(如果没有public文件夹,系统会自动生成一个名为public的文件夹)可以直接通过ip+端口+文件名称的方式进行访问如:http://XXX.XX.XXX:23888/files/1608257830069.jpg...原创 2020-12-18 10:30:45 · 1502 阅读 · 0 评论 -
mybatis-plus的entity中使用非表中字段
1.使用之前一直使用的@Transient不能生效,需要使用下面的方式 使用 transient 修饰 private transient String noColumn; 使用 static 修饰 private static String noColumn; 使用 TableField 注解 @TableField(exist=false)private String noColumn; ...原创 2020-11-25 09:42:18 · 2679 阅读 · 0 评论 -
java整理几种常见的传参方式
1.使用@QueryParam,一般分页查询和根据id获取详情的接口用的较多,直接在请求的url后面拼参数就可以,Content-type使用Application/json的方式传输 @GET @Path("count") @RolesAllowed({UserRoleConstants.ADMIN}) @ApiOperation(value = "查询客户营销统计列表(分页)", tags = {ApiConstants.ADMIN,ApiConstants.CUSTOME原创 2020-11-16 10:30:56 · 2868 阅读 · 0 评论 -
mybatis mapper接口中使用@select 注解编写动态sql
package com.sanzhisoft.mybatis.boc.customer.mapper;import com.sanzhisoft.mybatis.boc.customer.entity.CustomerMarketing;import com.baomidou.mybatisplus.core.mapper.BaseMapper;import org.apache.ibatis.annotations.Mapper;import org.apache.ibatis.annotat.原创 2020-10-22 11:21:02 · 6819 阅读 · 2 评论 -
LocalDateTime的转换和计算时间的差
LocalDateTime now = LocalDateTime.now();System.out.println("计算两个时间的差:");LocalDateTime end = LocalDateTime.now();Duration duration = Duration.between(now,end);long days = duration.toDays(); //相差的天数long hours = duration.toHours();//相差的小时数long minutes =原创 2020-10-19 16:15:00 · 1638 阅读 · 0 评论 -
java中EQ、NE、GT、GE、LT、LE分别代表含义
RQ 就是EQUAL等于NE 就是 NOT EQUAL不等于GT 就是 GREATER THAN大于GE 就是 GREATER THAN OR EQUAL 大于等于LT 就是 LESS THAN小于LE 就是 LESS THAN OR EQUAL 小于等于原创 2020-09-09 18:01:31 · 3095 阅读 · 0 评论 -
java中使用Long值对比相等的坑,,,
抛出问题:Long a = 4l;Long b = 4l;a == b //trueLong a = 128l;Long b = 128l;a == b //false如果Long的值在[-127,128]之间,用“==”判断是否相等是没问题的,如果不在这个区间,是不能用“==”的,原因如下源码解释:public static Long valueOf(long l) { final int offset = 128; if (l >= -128 &...原创 2020-07-18 14:45:36 · 799 阅读 · 0 评论 -
将List类型的JSON类型的字符串转成List「Map「String,Object」」
因为我map.get("children")是object所以要先用JSON.toJSONString()来转为JSON类型来处理,如果是JSON的就可以直接传JSONArray array = net.sf.json.JSONArray.fromObject(JSON.toJSONString(map.get("children")));List<Map<String, Object>> mapListJson = (List<Map<String, Ob原创 2020-07-14 00:14:13 · 354 阅读 · 0 评论 -
The server time zone value ‘�й���ʱ��‘ is unrecognized or represents more than one time zone.
报错原因是因为数据库时区问题Mysql Connector/J 6.x以上的版本,就报了时区的错误在数据库连接后面拼接下面的语句即可&serverTimezone=UTCurl: jdbc:mysql://localhost:3306/oneself?useUnicode=true&characterEncoding=UTF8&useSSL=false&serverTimezone=UTC...原创 2020-07-02 14:20:19 · 551 阅读 · 0 评论 -
记录一下BigDecimal的add()和subtract()的坑....
今天在做一个分润模块的时候,关于金额加减这部分老是出现问题...感觉方法就像是没有生效一样,下面举例说明看下面的结果,你猜result最后结果是什么... 竟然是100...修改为下面的代码即可...原创 2020-06-29 16:08:03 · 1878 阅读 · 2 评论 -
记录一下前端往服务端通过post请求发送list集合到服务端
前端服务端这个位置有个坑...下午一直在报415请求的格式不对的问题...然后看到@consumes的注解指定了入参的规则....注释掉就可以发送请求进来了原创 2020-06-17 15:46:33 · 1026 阅读 · 0 评论 -
@Transactional事务注解的失效场景
1.@Transactional 应用在非 public 修饰的方法上protected、private 修饰的方法上使用 @Transactional 注解,虽然事务无效,但不会有任何报错,这是我们很容犯错的一点。2、@Transactional 注解属性 propagation 设置错误这种失效是由于配置错误,若是错误的配置以下三种 propagation,事务将不会发生回滚。TransactionDefinition.PROPAGATION_SUPPORTS:如果当前存在...转载 2020-05-27 11:25:12 · 245 阅读 · 0 评论 -
JPA的自定义原生sql和hql的用法
最近在用公司的jpa框架来处理业务,,,有些业务直接写sql比较快捷手写sql:package com.sanzhisoft.assets.service;import cn.hutool.core.collection.CollUtil;import cn.hutool.core.date.DatePattern;import cn.hutool.core.date.DateUtil;import cn.hutool.core.io.FileUtil;import ...原创 2020-05-09 14:39:08 · 1181 阅读 · 0 评论 -
通过java反射获取class中的属性上注解的值
最近新做了一个资产管理系统,因为字段比较的多,中间会牵涉到excel导出的标题栏问题,固定资产表有120多个字段....所以在处理数据库列名和标题栏文字转换的时候,如果一个个去对应的写实在太麻烦了...就索性用了反射机制来处理,几行代码搞定先把这个java bean贴一部分的感受下....将近400行,我用的还是getter和setter注解,里面全是一个个的参数.......原创 2020-04-28 20:36:16 · 2308 阅读 · 0 评论 -
将java中的一个map对象转换为一个javaBean
运用BeanUtils.populate这个方法的前提是FixedAssets这个bean中有和map相同的key值才可以,可以看下这个方法的源码Map<String,Object> map = new HashMap<>();map.put("name","段漂亮");map.put("age","25");FixedAssets fixedAsset...原创 2020-04-24 10:08:48 · 1392 阅读 · 0 评论 -
getCellTypeEnum()Lorg/apache/poi/ss/usermodel/CellType
今天在用hutools的excel导入功能时,reader.readAll();报了上面的异常,网上查了查是版本的问题,需要修改pom的依赖到高版本ExcelReader reader = ExcelUtil.getReader(FileUtil.file("D:/t_d_fixed_assets2.xls")); List<Map<String,Object>> re...原创 2020-04-24 09:47:03 · 2237 阅读 · 2 评论 -
温习java中的数据类型,和内存分配规则,值传递,引用传递
最近在搞一个springBoot多线程的问题,其中有个map的值总是会出现数据脏读的问题,原因就是因为对java中值传递和引用传递理解不够深刻,今天专门又查了查温习一遍java中的数据类型java中把内存分为了四部分1.存代码: 编译后的class文件2.存静态变量: 例如用static关键字的变量,例如字符串常量。3.栈(stack):是用来装...原创 2020-04-21 10:20:43 · 146 阅读 · 0 评论 -
java用HttpPost发送post请求,传body
public void uploadFileOrg(NowDateDto nowDateDto){ CloseableHttpClient httpclient = HttpClients.createDefault(); long stateTime = System.currentTimeMillis(); log.info("开始调用article定时任务生成文章,...原创 2020-03-30 18:06:38 · 19006 阅读 · 0 评论 -
springboot集成elasticsearch进行高亮查询
环境:windows+jdk1.8springboot2.1.7elasticsearch6.2.2.jarelasticsearch5.6.16客户端pom.xml<spring-boot.version>2.1.7.RELEASE</spring-boot.version><dependency> <grou...原创 2020-03-27 09:29:56 · 3121 阅读 · 3 评论 -
Fegin+@Async注解进行异步调用
//设置子线程可见,解决fegin中间的异步调用问题RequestContextHolder.setRequestAttributes(RequestContextHolder.getRequestAttributes(), true);放在Fegin调用服务之前,加入上面的代码...原创 2020-03-25 21:37:49 · 4872 阅读 · 7 评论 -
解决fegin调用服务时请求头内容丢失的问题
@Beanpublic RequestInterceptor requestInterceptor() { return new RequestInterceptor() { @Override public void apply(RequestTemplate template) { ServletRequestAttribut...原创 2020-03-25 21:34:47 · 441 阅读 · 0 评论 -
eclipse导入maven项目并加入tomcat中运行
在eclipse中导入maven项目并且加入tomcat运行会需要一些配置,记录一下从添加tomcat到导入项目并且加入tomcat运行成功所需的步骤。1.把Servers窗口添加到工具栏2.添加tomcat8,点击next下一步注意如果不可以Server Locations部分为暗灰色不能修改,需要把tomcat下所有项目删除,再点击Clean,就可以编辑了这...转载 2019-07-12 17:09:44 · 1241 阅读 · 0 评论 -
连接oracle数据库时,报错:{dataSource-1} init error
缺少oracle的驱动jar包,需要下载ojdbc14-10.2.0.4.0.jar,后引入项目或加入maven原创 2019-07-18 16:30:07 · 4770 阅读 · 0 评论 -
'springSecurityFilterChain' defined in class path resource
网上查了查最终是因为pom文件中引入了重复的依赖导致,将蓝色框内的代码注释掉就ok了原创 2019-08-07 22:59:35 · 2261 阅读 · 0 评论