- 博客(16)
- 收藏
- 关注
原创 ThreadPoolExecutor
记录一下ThreadPoolExecutor类的常见知识点。下边是全参构造函数public ThreadPoolExecutor(int corePoolSize,//线程池的核心线程数量int maximumPoolSize,//线程池的最大线程数long keepAliveTime,//当线程数大于核心线程数时,多余的空闲线程存活的最长时TimeUnit unit,//时间单位BlockingQueue<Runnable> workQueue,//任务队列,用来储存等待执
2021-05-17 23:35:26
221
原创 关于@Autowired和@Resource
@Autowired默认是按照byType进行注入的,如果找到多个bean,再按照byName方式比对,如果还有多个,则报出异常。可配合@Qualifier注解指定bean。例子@Autowiredprivate BlogService blogService; // BlogService是一个接口注入时步骤如下1. spring先找类型为BlogService的bean2. 如果存在且唯一,则OK;3. 如果不唯一,在结果集里再寻找name为blogService的bean。
2021-05-17 23:07:01
119
原创 Redis的使用(只用到字符串)
通过spring自带的类 StringRedisTemplate进行字符串的操作。opsForValue()方法返回一个ValueOperations接口的实例(其实是DefaultValueOperations类对象),然后使用对应的API进行操作:获取key对应的value,get(Object key) 获取key对应的value并重新赋值,getAndSet(K key,V newValue) 一系列自增方法,increment() 批量获取,multiGet( Collection&
2021-05-17 22:48:16
146
原创 @Transactional属性之PROPAGATION
正确的事务传播行为可能的值如下:1.PROPAGATION_REQUIRED使用的最多的一个事务传播行为,我们平时经常使用的@Transactional注解默认使用就是这个事务传播行为。如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。也就是说:①如果外部方法没有开启事务的话,Propagation.REQUIRED修饰的内部方法会新开启自己的事务,且开启的事务相互独立,互不干扰。②如果外部方法开启事务并且被Propagation.REQUIRED修饰的话,所有Prop.
2021-05-17 22:42:12
1237
原创 注解@Transactional的失效场景
1.@Transactional修饰了非public的方法在获取注解的事务配置信息时,会判断方法是否是public的:protected TransactionAttribute computeTransactionAttribute(Method method,Class<?> targetClass) {// Don't allow no-public methods as required.if (allowPublicMethodsOnly() && !Mo
2021-05-17 22:34:05
63
原创 Lambda表达式的使用
1.Lambda表达式举例:Comparator< Integer> com =(o1,o2)-> {Integer.compare(o1,o2)};其中, -> 称为Lambda操作符或箭头操作符 ->左边:Lambda形参列表(其实就是接口中的抽象方法的形参列表) ->右边:Lambda 体(其实就是重写的抽象方法的方法体) 总结一下就是 lambda形参列表的数据类型可以省略;如果lambda形参列表只有一个参数,小括号.
2021-05-17 22:26:07
56
原创 接口字段处理
1.构建请求对象实体Java是面向对象的语言,所以这一步是理所当然的,没有为什么。根据请求报文字段,可以创建请求对象如下:import lombok.Data;import lombok.NoArgsConstructor;/** * @Title: CommonReq * @author: HOLiC * @date: 2020/7/24 */@Data@NoArgsConstructorpublic class CommonReq { private String
2021-05-12 22:51:30
469
原创 尝试设计一个对外接口
1.请求报文出于安全考虑,加密和签名是必不可少的,据此,基本的字段应该有:encType 加密方式,如aes signType 签名方式,如MD5 signData 签名结果 busiName 请求的业务接口名 busiData 业务数据(这个数据是经过encType指定的算法加密过后的密文,并非明文)通常还有防重放的要求,增加如下两个字段:timeStamp 时间戳 nonce 随机数如果是一对一的接口,以上字段就够用了;如果是一对多(多个客户端),还需要增加clientId来区
2021-05-12 22:47:48
163
原创 拦截器的使用
刚在视频中看过拦截器的使用,没想到过了几天就在项目中用到了,真的有点暗爽。 拦截器包含两步,先定义一个拦截器,再把拦截器注册一下使其生效。先看拦截器:import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * @T
2021-05-12 22:44:30
79
原创 重新启动服务
总会有某些原因需要重启服务器,这时候网站的服务也需要重启。那么需要怎么做呢(其实是我两个月没更,心里发虚来补作业的)?第零步,首要Xshell和FZ要能连接到你的服务器,不然后边的步骤没法进行。存在这样的可能,即一段时间后,云服务器的密钥就会过期的,XShell和FZ登录就会失败,这时需要重新配置密钥。在阿里云控制台的云服务器ECS界面有网络与安全,里边有密钥对的选项,把之前的密钥对先解绑再删除,然后重新生成,下载到本地,XShell和FZ登录选择密钥方式,导入新生成的密钥就OK了。成功登录Xshell
2021-05-12 22:40:38
320
原创 Java8新的日期处理方式
1.格式化日期要格式化日期,首先要拿到日期。Java8中新的日期工具类为 java.time.LocalDate。其中一个静态方法now()就能拿到当前日期,就像这样:LocalDate now = LocalDate.now();有两种方法来实现格式化,都需要用到DateTimeFormatter这个类。一是使用DateTimeFormatter自带的格式常量:String format = LocalDate.now().format(DateTimeFormatter.ISO_D
2021-05-12 22:36:56
1155
原创 前端小知识
这些技术点在工作中应该用不到吧(虽然菜鸡,但好歹也是后端),但是万一呢,对吧,万一呢,所以还是记录一下吧。1.thymeleaf的内联语法内联语法是为了在JavaScript中访问model中的数据而存在的。<script th:inline="javascript"> var adminId = [[${session.admin.getId()}]];</script>使用方法就是在script标签中增加thymeleaf的th:inline属性并指明内联到
2021-05-12 22:24:24
145
原创 使用注解的方式实现参数校验
参数校验在后端开发中可以说是天天见了,天天写if-else想必也写烦了吧,那就换个口味,使用注解来实现参数校验吧。 主要用到的类和注解都在javax.validation包下。先来个示例:import com.holic.blog.entity.CommonReq;import org.springframework.stereotype.Controller;import org.springframework.validation.BindingResult;import org.sprin
2021-05-12 22:11:24
831
原创 Mybatis知识点汇总(不全)
Mybatis作为日常开发中最常见的持久层框架,相信大家已经很熟悉了。这里只列出我自己用到的、认为重要的知识点(不定期新增)。欢迎大家指正和补充。1.Java数据类型和MySQL数据库数据类型的对应关系常用的几个如下(左为Java数据类型,右为MySQL数据类型): java.lang.Integer — INGEGER java.lang.Long — BIGINT java.lang.BigDecimal — DECIMAL java.lang.String
2021-05-12 20:23:36
203
原创 Linux服务器安装jdk、tomcat和mysql
Xshell和FZ能顺利连接到服务器后,接下来就要配置程序的运行环境了。1.JDK作为一个加瓦程序猿,jdk是一切的开始。没有jdk什么Java程序也运行不了,所以首先安装jdk并配置系统变量。1.1下载jdk安装包建议去官网下载。需要注意一下下载版本是64位还是32位,这里贴一个链接点这里下载jdk。1.2解压并安装找一个合适的路径,一般是/usr下,执行命令:tar -zxvf jdk-8u211-linux-x64.tar.gz等待解压完成即可。如需删除安装包,执行如下命令..
2021-05-10 22:35:31
153
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人