
Java
文章平均质量分 76
Jack2013tong
记录所见所用及碰到的问题,同时也希望这些能帮助到其他人.分享知识,共同提高
展开
-
.class和.getClass()的区别
使用指定类初始化日志对象,在日志输出的时候,可以打印出日志信息所在类如:getClass() 返回此 Object 的运行时类。//需要有com.lpx.test.class这个类 Logger logger = LoggerFactory.getLogger(com.lpx.test.class);logger.debug("日志信息");//获取当前类的信息Logger logger = LoggerFactory.getLogger(get.class());logger.转载 2022-05-11 23:12:19 · 377 阅读 · 0 评论 -
如何写出一个优秀的对外接口【3条原则,16个小点】
对外API接口设计 安全性 1、创建appid,appkey和appsecret 2、Token:令牌(过期失效) 3、Post请求 4、客户端IP白名单 (可选) 5、单个接口针对IP限流(令牌桶限流,漏桶限流,计数器限流) 6、记录接口请求日志 7、采用Https 8、数据合法性校验 9、密码查询(加缓存,key使用客户号) 10、接口调用失败告转载 2022-03-31 08:22:36 · 2019 阅读 · 0 评论 -
char码值对应列表大全
char码值对应列表大全Char("0") 为0的字符Char("1")Char("2")Char("3")Char("4")Char("5")Char("6")Char("7") 响铃Char("8") 回格Char("9") tab(水平制表符)Char("10") 换行Char("11") tab(垂直制表符)Char("12") 换页Char("13") 回车 chr(13)&chr(10) 回车和换行的组合Char("14")Char("15")Char转载 2022-01-20 16:23:05 · 14265 阅读 · 0 评论 -
什么是内存泄漏?该如何检测?又该如何解决?
前言这个问题是我之前翻看面经的时候见到的。那位小姐姐把内存泄漏当成了内存溢出问题去解答的,结果当场挂掉了。为此总结一下,之前和一位老哥也讨论过这个问题。可见不管是面试还是工作这都是一个极为重要的点。我也曾在面阿里的时候也遇到过原题,题目是写出俩内存泄漏案例,然后问如何排查?如何解决?本篇文章大体结构来自外国大佬baeldung;一、介绍1、什么是内存泄漏java的优势之一就是内置了垃圾回收器GC,它帮助我们实现了自动化内存管理。但是GC再好,也有老马失前蹄的时候,它不能保证提供一个解转载 2022-01-11 08:49:47 · 639 阅读 · 0 评论 -
spring专题系列之AOP的理解和分析
第一:什么是AOP?第二:为什么要引入AOP?或者是AOP解决了什么问题?第三:如何简单的实现AOP?第四:AOP对我们写代码时候的思考和帮助是什么?现在,开始对AOP进行阐述,1 什么是AOP?1.1 概念介绍Spring的使命是简化Java代码开发,aop作为Spring的一个子模块,也不例外。AOP 是 Aspect Oriented Programming(面向切面编程) 的简称,和OOP(面向对象编程)一样是一种编程思想,是对OOP的一种补充。如何理解什么是A.转载 2022-01-11 08:37:47 · 297 阅读 · 0 评论 -
spring专题系列之IOC的理解和分析
什么是IOC?如何使用案例来理解? IOC有哪几种实现方式? IOC的底层实现过程是什么?根据这几个角度,开始今天的故事,1 什么是IOC?对于IOC的理解,主要是停留在概念和几种注入的方式上,虽然知道其生命周期,但是对整个bean管理的宏观角度,理解的不够深刻。IOC:**控制反转(Inversion of Control)容器,**是一种设计思想。意味着将你设计好的对象交给容器控制。1.1 什么是依赖注入这个概念的理解,我准备使用一个案例来表示。如果a类中包含了b类,就说明a类转载 2022-01-10 11:57:01 · 219 阅读 · 0 评论 -
spring加载bean流程解析
spring作为目前我们开发的基础框架,每天的开发工作基本和他形影不离,作为管理bean的最经典、优秀的框架,它的复杂程度往往令人望而却步。不过作为朝夕相处的框架,我们必须得明白一个问题就是spring是如何加载bean的,我们常在开发中使用的注解比如@Component、@AutoWired、@Socpe等注解,Spring是如何解析的,明白这些原理将有助于我们更深刻的理解spring。需要说明一点的是spring的源码非常精密、复杂,限于篇幅的关系,本篇博客不会细致的分析源码,会采取抽丝剥茧的方式,避轻转载 2022-01-10 11:17:07 · 3547 阅读 · 0 评论 -
springboot @Autowired 注入为null 的原因与解决方式
现象1有时候我们在某个类用@Autowired 进行注入时,会发现注入参数为null,这时候会有疑惑。可能存在的原因:(1)该类没有托管给spring 管理,一般在类的上面添加@Component(2)你的这个类有被new出来的实例的,new 过的对象不会交给Spring容器管理 所以里面的 service或者dao注入不进来。一般是指引用某些框架,你是继承某个接口,但是这些框架默认new过这个方法,比如MVC拦截的HandlerInterceptor类。2、解决方式对于(1)其实就加入转载 2021-06-03 10:24:18 · 45282 阅读 · 11 评论 -
idea创建三种应用程序的方法:springboot,控制台程序,windows服务程序
springboot项目控制台程序windows服务程序环境:idea 2017 + Maven 3.3.9+jdk 1.8一、springboot项目创建过程依次如下图所示:至此一个简单的springboot 项目框架建好,可以往里面填充内容了二、控制台程序创建过程如下图所示:待续...原创 2021-04-06 22:32:54 · 1586 阅读 · 0 评论 -
IDEA+Maven 打jar包
软件环境: IDEA:2017.1.5 Maven:3.3.9打jar包:IDEA 自带的打包工具使用打无依赖jar包如果工程目录中有以下文件夹 删掉点击工程上方【File】菜单选择【Project Structure】点击【+】 选择【JAR】,【From modules with dependencies】点击【ok】点击【1】选择你要打包的Module,点击【2】选择你的主类(也就是你的程序的入口)然后点击【ok】点击【ok】【1】是要转载 2021-04-04 15:29:32 · 5110 阅读 · 0 评论 -
class.getResourceAsStream获取结果为NULL 问题【测试通过】
刚开始使用idea, 这个工具虽然很强大, 但也因为如此,让使用也变得稍微负责。 还没有习惯idea这个生态环境,因此也遇到不少坑。class.getResourceAsStream获取结果为NULL这个问题今天困扰了我很久,一直在文件路径上面纠结,浪费了很多时间。终于在斗争了将近2小时之后才翻到一个帖子,发现根本不少路径得问题。太气人了。记录如下,以免以后再掉坑里。首先说明一下,我要读取的配置文件druid.properties放在source/Resources文件夹下面Properties .转载 2021-03-16 22:35:40 · 10619 阅读 · 1 评论 -
Druid使用整理
Druid基本使用一、使用步骤 pom.xml 添加依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.19</version></dependency><dependency> <groupId>mysql...原创 2021-03-11 21:35:45 · 1836 阅读 · 0 评论 -
Lombok介绍、使用方法和总结
1 Lombok背景介绍官方介绍如下:Project Lombok makes java a spicier language by adding 'handlers' that know how to build and compile simple, boilerplate-free, not-quite-java code.大致意思是Lombok通过增加一些“处理程序”,可以让java变得简洁、快速。2 Lombok使用方法Lombok能以简单的注解形式来简化java代码,提高开转载 2021-03-10 21:22:27 · 1023 阅读 · 0 评论 -
springboot整合swagger的问题收集 【测试通过】
1 访问swagger首页 http://localhost:8080/swagger-ui.html出错错误信息如下:Unable to infer base url. This is common when using dynamic servlet registration or when the API is behind an API Gateway. The base url is the root of where all the swagger resources are serve原创 2021-03-10 14:56:26 · 308 阅读 · 0 评论 -
Spring Boot Swagger2-生成RESTful接口文档【测试通过】
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。开始1、pom.xml 添加依赖:<!-- swagger RESTful API 文档 --><dependency> <groupId>io.springfox</groupId> <转载 2021-03-08 22:27:35 · 213 阅读 · 0 评论 -
Spring Boot 属性配置&自定义属性配置【测试通过】
在使用spring boot过程中,可以发现项目中只需要极少的配置就能完成相应的功能,这归功于spring boot中的模块化配置,在pom.xml中依赖的每个Starter都有默认配置,而这些默认配置足以满足正常的功能开发。如果需要修改自定义修改默认配置,spring boot 提供了很简便的方法,只需要在application.properties 中添加修改相应的配置。(spring boot启动的时候会读取application.properties这份默认配置)一、修改默认配置...转载 2021-03-08 22:15:09 · 1191 阅读 · 0 评论 -
springBoot日志配置
概述 在计算机的世界里,日志的重要性不言而喻。系统日志,应用日志等都可以帮我们更快的定位的计算机问题出现在哪里。而springBoot默认使用LogBack日志,当然如果不更改,我们也无需添加额外的日志配置。打印日志新建logCofig.java类,测试打印日志输出package com.xmlxy.bean;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.contex转载 2021-03-07 10:04:50 · 253 阅读 · 0 评论 -
Java的反射
1.Java的反射不同于我们平时的new对象。反射只有在运行时才知道要操作的类是什么,从而在运行时获取类的有关信息,包括构造函数,属性,和函数,并调用对应的函数。Person类public class Person { private int age; private String name; public int getAge() { return age; } public String getName() { r...转载 2021-03-07 09:16:37 · 141 阅读 · 0 评论 -
springBoot的过滤器,监听器,拦截器
概述 在开发中,我们经常要考虑一些问题,对敏感词进行过滤,用户是否已经登录,是否需要对他的请求进行拦截,或者领导问现在在线人数有多少人?我们如何实现这些功能哪@WebFilterpackage com.net.firstspringbootproject;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import javax.servlet.*;import javax.servlet.annotation.W.转载 2021-03-06 21:20:13 · 404 阅读 · 0 评论 -
springboot 用监听器统计在线人数【测试通过】
本文在springboot 的项目,用HttpSessionListener 监听器(监听器的其中一种) 统计在线人数,实质是统计session 的数量。思路很简单,但是有个细节没处理好,让我调试了大半天,才把bug搞好。先写个HttpSessionListener 监听器。count 是session的数量(人数),session 创建的时候,会触发监听器的sessionCreated 方法,session销毁的时候,会触发监听器的sessionDestroyed 方法。 在监听器中计算完人...转载 2021-02-24 21:29:55 · 1566 阅读 · 1 评论 -
SpringBoot启动流程解析
写在前面: 由于该系统是底层系统,以微服务形式对外暴露dubbo服务,所以本流程中SpringBoot不基于jetty或者tomcat等容器启动方式发布服务,而是以执行程序方式启动来发布(参考下图keepRunning方法)。 本文以调试一个实际的SpringBoot启动程序为例,参考流程中主要类类图,来分析其启动逻辑和自动化配置原理。总览: 上图为SpringBoot启动结构图,我们发现启动流程主要分为三个部分,第一部分进行SpringAppl...转载 2021-02-23 21:51:56 · 509 阅读 · 0 评论 -
@Autowired用法详解
@Autowired用法详解@Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法。在使用@Autowired之前,我们对一个bean配置起属性时,是这用用的<property name="属性名" value=" 属性值"/> 通过这种方式来,配置比较繁琐,而且代码比较多。在Spring 2.5 引入了 @Autowired 注释下面用案例来具体说明UserReposi..转载 2021-02-09 18:10:51 · 1607 阅读 · 0 评论 -
Java泛型详解:泛型类,泛型方法的详细使用实例
一、引入1、泛型是什么首先告诉大家ArrayList就是泛型。那ArrayList能完成哪些想不到的功能呢?先看看下面这段代码:ArrayList<String> strList = new ArrayList<String>(); ArrayList<Integer> intList = new ArrayList<Integer>(); ArrayList<Double> doubleList = new ArrayList&..转载 2021-02-09 17:28:48 · 2764 阅读 · 3 评论 -
java 日期时间与字符串相关处理
一、获取当前系统时间和日期并格式化输出:import java.util.Date; import java.text.SimpleDateFormat; public class NowString { public static void main(String[] args) { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 Sys...转载 2021-02-09 11:45:50 · 392 阅读 · 1 评论 -
springboot读取自定义properties配置文件方法
1. 添加pom.xml依赖<!-- springboot configuration依赖 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId> spring-boot-configuration-processor</artifactId> <optional> true </opt转载 2021-02-07 16:17:40 · 1725 阅读 · 0 评论 -
Apache Commons 工具类介绍及简单使用
Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动。下面是我这几年做开发过程中自己用过的工具类做简单介绍。组件 功能介绍 BeanUtils 提供了对于JavaBean进行各种操作,克隆对象,属性等等. Betwixt XML与Java对象之间相互转换. Codec 处理常用的编码方法的工具类包例如DES、SHA1、MD5、Base64等. Collections java集合框架操作. Compress.转载 2021-02-07 15:01:33 · 8636 阅读 · 0 评论 -
IDEA设置System.out.println()和main方法快捷键
IDEA是Java开发中的神器,很多同学都用了IDEA来开发自己的Java应用。但苦于不知道怎么设置System.out.println()和main方法的快捷键,今天,咱们就一起来解决这个问题。首先,打开IDEA的File->settings,如下:然后找到Editor->Live Templates 点击Live Templates后如下图所示:在右边找到output,如下所示:在output下面就是我们要添加快捷键的地方了。这里,我们先添加System.转载 2021-02-07 09:52:19 · 2535 阅读 · 1 评论 -
fastjson处理json字符串成java对象之前的相互转换
1 这段代码主要是利用fastjson的封装方法处理json字符串成java对象之前的相互转换package com.neo.util;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import com.alibaba.fastjson.TypeReference;import com.alibaba.fastjson.serializer.JSONLibDataFormatSerializer原创 2021-02-05 16:27:46 · 344 阅读 · 1 评论 -
JSON字符串与对象相互转换
maven依赖包:<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --><dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version></dependency&...转载 2021-02-05 09:26:21 · 648 阅读 · 0 评论 -
Android Webview使用及相关问题收集
===webview 网页打不开问题 ===在我们开发过程中,有可能会遇到webview有些网页打不开的问题。这可能是设置的不对,下面就是解决办法。进行如下设置吧,大多数情况都能解决!displayWebview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);//设置js可以直接打开窗口,如window.open(),默认为falsedisplayWebview.getSettings().setJavaScrip.转载 2021-01-05 15:03:17 · 1104 阅读 · 0 评论 -
阿里巴巴为什么能抗住90秒100亿?看完这篇你就明白了!
1、概述本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。2、基本概念在介绍架构之前,为了避免部分读者对架构设计中的一些概念不了解,下面对几个最基础的概念进行介绍。1)什么是分布式?系统中的多个模块在不同服务器上部署,即可称为分布式系统,如Tomcat和数据库分别部署在不同的服务器上,或两个相同功能的Tomcat分别部署在不同服务器上。2)什么是高.转载 2020-11-15 08:59:25 · 575 阅读 · 1 评论 -
无限级分类表设计
无限级分类表设计一般的多级分类表的表结构字段如下:多级分类类型表T_ContentsTypeId,TypeId,ParentId,TypeName,CreateTime,Orders其它很多情况下2级,3级情况比较多见,真正的有N多级的情况比较少见,这种情况就用上表即可解决,Id自增;缺点是单从类型Id很难知道是哪个分类;但如果只有2,3级的情况下,Id我们可以不用自增Id,用数字编码的形式来做更有意义,而且可读性会更好;比如一级Id从10000起,每个一级分类递增1000原创 2020-06-11 19:05:15 · 1164 阅读 · 0 评论 -
Springboot获取参数总结
Springboot获取参数总结1.直接获取2.通过request.getParameter对象访问3.JavaBean或者Dto直接访问4.通过@PathVariable获取路径中的参数5.使用@ModelAttribute注解获取 –form表单的提交6.使用@RequestParam注解访问(可自定义默认值,和类型转换)package com.abyiyi.controll...转载 2019-09-30 11:50:49 · 1717 阅读 · 0 评论 -
java连接sql server 2005的问题 java.sql.SQLException: No suitable driver
数据库连接时提示 java.sql.SQLException: No suitable driver找了N久未解决,在群里经过几个牛人们指点终于搞点,现总结如下1 驱动包用的不对2 连接串的写法不同于2000 //JDBC for SQL server 2000写法: String DBDRIVER = "com.microsoft.jdbc.sqlserver.SQ原创 2011-11-18 15:49:31 · 4377 阅读 · 1 评论 -
Spring Boot的启动器Starter详解
Spring Boot的启动器Starter详解Spring Boot应用启动器基本的一共有44种,具体如下:1)spring-boot-starter 这是Spring Boot的核心启动器,包含了自动配置、日志和YAML。2)spring-boot-starter-actuator 帮助监控和管理应用。3)spring-boot-starter-amqp 通过spring-rabbit来支持A...转载 2018-06-13 16:47:49 · 399 阅读 · 0 评论 -
springboot-mybatis整合多数据源之sqlserver
环境: intellij idea 2017.1.4 + spring boot 2.0代码文档结构图:注:此代码中的db1,db2为mysql数据源相关,db3为sqlserver数据源2 数据库配置相关类先在application.properties 文件中添加数据库的配置#spring.datasource.driverClassName=com.mysql.jd...原创 2019-04-20 16:24:38 · 3015 阅读 · 0 评论 -
sprintboot 集成redis操作时 redisTemplate注入为空
问题描述springboot2.*集成redis时,redis工具类中的redisTemplate注入后总是为空。问题代码还原:1、工具类定义成静态工具类,@Resource注入redisTemplate/** * Redis工具类 */public final class RedisUtil { @Resource private RedisT...原创 2019-04-10 09:24:58 · 7662 阅读 · 4 评论 -
单元测试的重要性
单元测试的重要性 序:这是一篇写给所有开发者的建议,虽然不包含技术成分,但比技术本身成为重要.测试的必要性原创 2016-06-29 21:07:06 · 3867 阅读 · 1 评论 -
泛化、实现、依赖和关联的区别
泛化、实现、依赖和关联的区别传统应用程序设计中所说的依赖一般指“类之间的关系”,那先让我们复习一下类之间的关系:a、实现表示类对接口的实现。UML图中实现使用一条带有空心三角箭头的虚线指向接口,如下:b、泛化表示类与类之间的继承关系、接口与接口之间的继承关系。UML图中实现使用一条带有空心三角箭头的实线指向基类,如下:c、依赖表现为函转载 2016-05-16 10:32:04 · 12468 阅读 · 2 评论 -
软件架构师的主要工作职责及能力要求
软件架构师的主要工作职责及能力要求,认证转载 2016-05-13 08:22:32 · 19831 阅读 · 0 评论