JAVA后端学习
JachinDo
梦想仗剑走天涯
展开
-
Spring Boot自动配置流程简明总结
Spring Boot自动化配置原博客地址§ Spring Boot的显著优势使用starter简化依赖配置Spring的自动配置§ starter简化依赖的配置Spring提供了一系列starter来简化Maven配置。当我们在我们的pom文件中增加对某个starter的依赖时,该starter的依赖也会自动的传递性被依赖进来。§ 自动配置Spring Boot...原创 2020-03-30 15:50:31 · 403 阅读 · 1 评论 -
Java线程池中的异常处理
Java线程池中的异常处理原文博客§ 前置知识线程池中的任务有两种,一种有返回值,一种无返回值。通常对应着两种提交任务的方法:submit方法:虽然参数是Runnable,但由于返回值为Future,所以通常传入的参数为FutureTask类的对象。(FutureTask间接实现了Runnable接口和Future接口)public Future<?> submit...原创 2020-03-26 23:09:32 · 349 阅读 · 0 评论 -
Spring Boot自定义注解与验证
注解原理与自定义注解1、引入依赖:<!-- https://mvnrepository.com/artifact/javax.validation/validation-api --><dependency> <groupId>javax.validation</groupId> <artifactId>valida...原创 2020-03-09 14:00:38 · 344 阅读 · 0 评论 -
Spring Boot 整合 SpringData JPA与分页
Spring Boot 整合 SpringData JPA与分页在Spring Boot中使用JPA,需要引入如下依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId...原创 2020-02-24 15:16:41 · 434 阅读 · 0 评论 -
Spring Boot + Redis缓存实现
SpringBoot + Redis缓存实现1、缓存对象必须实现序列化如:package com.jachin.sell.VO;/** * @description: http请求返回的最外层对象 * @Author: JachinDo * @Date: 2019/07/17 22:32 */@Datapublic class ResultVO<T> implem...原创 2020-02-24 15:12:56 · 142 阅读 · 0 评论 -
为什么需要序列化与serialVersionUID
为什么需要序列化与serialVersionUID1、序列化§ 用途:把对象序列化成字节码,保存到指定介质上(如磁盘等)用于网络传输被序列化的实例所属类需要实现Serializable接口:2、serialVersionUIDserialVersionUID适用于Java的序列化机制。简单来说,Java的序列化机制是**通过判断类的serialVersionUID来验证版本一...原创 2020-02-24 15:00:50 · 213 阅读 · 0 评论 -
微信登录,网页授权流程
微信网页授权流程1、流程以下流程为微信官方提供的请求流程,现实中可使用第三方sdk:https://github.com/Wechat-Group/WxJava/wiki/MP_OAuth2网页授权首先微信客户端请求应用某地址应用服务器拼接授权地址,并重定向用户请求到该授权地址。授权地址包含:appid:公众号ID``redirect_url`: 服务器希望用户最终登...原创 2020-02-24 14:58:09 · 716 阅读 · 0 评论 -
Spring Boot 应用部署
Spring Boot 应用部署1、与虚拟机的交互ssh [email protected]进入虚拟机scp target/wechat-sell.jar [email protected]:/opt/javaapps将打包后的jar传到虚拟机指定目录2、运行问题端口占用: 使用==netstat -alnp | grep 8080== 或...原创 2020-02-22 12:01:41 · 142 阅读 · 0 评论 -
CopyOnWriteArrayList/Set 源码解析
CopyOnWriteArrayList/Set 源码解析原文地址:http://jachindo.top:8090/archives/copyonwritearraylistset%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90参考:https://mp.weixin.qq.com/s/Evw9Ikm83l_6M5x1i-K3Mw0、前言新老线程安全类,总结起来就...原创 2020-02-22 11:19:12 · 261 阅读 · 0 评论 -
ConcurrentHashMap源码解析
ConcurrentHashMap源码解析原文地址:http://jachindo.top:8090/archives/concurrenthashmap%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90jdk1.7:元素封装为HashEntry,同jdk1.7的HashMap分段锁+链表jdk1.8主要有两方面的优化:底层由链表 -->...原创 2020-02-22 11:15:15 · 196 阅读 · 0 评论 -
springcloud config配置中心与github webhook实现动态更新配置
1、搭建config-server新建config工程并将其注册到eureka上启动类注解@SpringBootApplication@EnableDiscoveryClient@EnableConfigServerymlspring: application: name: config cloud: config: server...原创 2019-10-22 18:23:10 · 1174 阅读 · 1 评论 -
Spring AOP 代理总结:静态代理和动态代理
Spring AOP 代理总结:静态代理和动态代理参考:https://blog.csdn.net/xiaojin21cen/article/details/794877691、静态代理 - AspectJ属于编译时增强:因为是在将 .java 文件编译成 .class 文件的过程中将Aspect相关代码织入java字节码中的。例如:代码来源:https://blog.csdn.net/x...原创 2019-09-25 14:41:54 · 363 阅读 · 0 评论 -
HTML基础(CSS)
CSS一、html代码中引入CSS代码<!-- 1css的需求.html --><head> <!-- 方法一: --> <style type="text/css"> a{ color: #F0F; text-decoration: none; } </style> <!-- 方法二 -->...原创 2019-03-22 13:05:45 · 222 阅读 · 0 评论 -
HTML之FrameSet框架
FrameSet框架标签frameset:一个frameset可以把一个页面切割成多份(只能按照行或列切割)。frame:不可切割,frame位于frameset中。代码示例:<!-- head.html --><!-- 头部(标题,logo)--><head> <meta http-equiv="Content-Type" content=...原创 2019-03-22 19:20:58 · 208 阅读 · 0 评论 -
form表单提交到Servlet中文乱码问题
form表单提交到Servlet中文乱码问题1、form表单提交到某个servlet后,由servlet显示其中文信息,结果是乱码,解决方法如下:protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ...原创 2019-04-17 14:51:26 · 1882 阅读 · 1 评论 -
idea部署maven项目到远程tomcat
idea部署maven项目到远程tomcat1、配置服务器端1.1 安装配置java环境# 安装javasudo add-apt-repository ppa:openjdk-r/ppasudo apt-get updatesudo apt-get install openjdk-8-jdk# 给出java路径sudo update-alternatives --config j...原创 2019-06-22 15:56:37 · 1867 阅读 · 0 评论 -
基于springdata JPA的dao层接口实现
基于springdata JPA的dao层接口实现以及分页1、【举例】只需要继承 JpaRepository<实体类,主键类型> package com.tmall.tmallspringboot.dao;import com.tmall.tmallspringboot.pojo.Category;import org.springframework.data.jpa.re...原创 2019-07-07 16:35:48 · 2750 阅读 · 0 评论 -
JPA瞬时属性应用及避免外键关联导致的无限循环
JPA瞬时属性应用及避免外键关联导致的无限循环一、瞬时属性@Transient在pojo类的某个属性上加上该注解,意为在与数据库交互时,与该属性无关。要将该属性封装入对象中必须自己通过其他方法提供属性值并手动封装(因为无法从数据库获取并封装的嘛)二、JPA外键关联导致无限循环使用jpa进行外键关联通常的做法如下:即产品和分类建立多对一的外键关联。但是,当Category类中有Prod...原创 2019-07-08 20:58:15 · 797 阅读 · 0 评论 -
springboot访问静态资源如webapp下的js、css等
springboot访问静态资源如webapp下的js、css等springboot对静态资源的默认扫描路径是:classpath:/staticclasspath:/publicclasspath:/resourcesclasspath:/META-INF/resources首先,springboot默认建立是没有webapp文件夹的,需要自己创建:主要是配置两个路径,weba...原创 2019-07-05 23:12:49 · 4828 阅读 · 1 评论 -
Springboot与Mysql时差时区问题
Springboot与Mysql时差时区问题情况一:手动插入时间戳如在java代码中将 new Date() 插入到mysql的对应timestamp类型的字段中。这种情况属于服务器与数据库时差问题。【解决】在springboot配置文件application.yml中配置数据源url处添加参数如下:重点就是 serverTimezone=GMT%2B8情况二:mysql自动添加时间...原创 2019-07-16 14:27:05 · 3100 阅读 · 0 评论 -
JAVA BeanUtils使用
BeanUtils通过内省(Introspector)实现,通过读取对象属性值来创建对象。且读取类型均可统一为String类型,因为属性为基本类型时,BeanUtils会自动帮忙转换类型,如下代码示例:public class Demo3 { public static void main(String[] args) throws InvocationTargetExce...原创 2019-03-25 13:39:06 · 245 阅读 · 0 评论