自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

怪咖@的博客

认真认真再认真!

  • 博客(300)
  • 收藏
  • 关注

原创 来听听工作三年的开发和你所经历的是否一样

这是一个工作三年开发的一些经历及肺腑之言,希望通过我两个小时的编写,能让你真正的学到知识。目录简言工作感慨为什么决定坚持写博客总结简言       本人是一个在职的后端开发工程师,干开发也三年左右了,目前在这个公司也呆了一年半了,公司也是500人规模的公司,相对来说还凑合,写博客三个月了,从来没有写过自己的经历,下面来一起谈谈职场和未来吧。我相信我的经历肯定能给你带来新的感悟。工作感慨   &nb

2020-11-12 23:38:27 5232 128

原创 Spring学习第6篇: 基于注解使用IOC

非自定义Bean不能像自定义Bean一样使用@Component进行管理,非自定义Bean要通过工厂的方式进行实例化,使用@Bean标注方法即可,@Bean的属性为beanName,如不指定为当前工厂方法名称// 将方法返回值Bean实例以@Bean注解指定的名称存储到Spring容器中 @Bean("dataSource") public DataSource dataSource() {}PS:工厂方法所在类必须要被Spring管理。

2022-11-17 11:48:51 742 4

原创 BeanFactory和ApplicationContext的区别

BeanFactory与ApplicationContext的关系BeanFactory是Spring的早期接口,称为Spring的Bean工厂,ApplicationContext是后期更高级接口,称之为Spring容器;监听功能、国际化功能等。的API更偏向底层,的API大多数是对这些底层API的封装;Bean创建的主要逻辑和功能都被封装在BeanFactory中。

2022-11-13 22:48:36 949 2

原创 Spring学习第5篇:自动注入(autowire)详解

xml中手动注入存在的不足之处,可以通过自动注入的方式来解决,本文介绍了3中自动注入:通过名称自动注入、通过类型自动注入、通过构造器自动注入按类型注入中有个比较重要的是注入匹配类型所有的bean,可以将某种类型所有的bean注入给一个List对象,可以将某种类型的所有bean按照bean名称->bean对象的映射方式注入给一个Map对象,这种用法比较重要,用途比较大,要掌握spring中还有其他自动注入的方式,用起来会更爽,后面的文章中我们会详细介绍。

2022-11-13 13:38:39 618

原创 Spring学习第4篇:Spring 的依赖注入

依赖注入:Dependency Injection。它是 spring 框架核心 ioc 的具体实现。我们的程序在编写时,通过控制反转,把`对象的创建`交给了 `spring`,但是代码中不可能出现没有依赖的情况。例如:我们的`controller`层仍会调用`service`层的方法。那这种`controller`和`service`层的依赖关系,在使用 `spring` 之后,就让 `spring` 来维护了。简单的说,就是坐等框架把`service`层对象传入`controller`层。

2022-11-12 21:13:17 1478

原创 Cannot resolve com.sun:tools:1.8

使用druid报异常Cannot resolve com.sun:tools:1.8

2022-11-11 14:43:21 79

原创 Spring学习第3篇:Spring容器的基本使用

IOC容器也叫Spring容器,具有依赖注入功能的容器,负责对象的实例化、对象的初始化,对象和对象之间`依赖关系配置、对象的销毁、对外提供对象的查找等操作,对象的整个生命周期都是由容器来控制`。我们需要使用的对象都由ioc容器进行管理,不需要我们再去手动通过new的方式去创建对象,由ioc容器直接帮我们组装好,当我们需要使用的时候直接从ioc容器中直接获取就可以了。

2022-11-03 17:42:06 832

原创 Spring学习第2篇:IoC控制反转 与 DI依赖注入

`IOC`控制反转,是一种设计理念,并不是实际存在的东西,将对象创建和组装的主动控制权利交给了`spring`容器去做,控制的动作被反转了,降低了系统的耦合度,利于系统维护和扩展,主要就是指需要使用的对象的组装控制权被反转了,之前是自己要做的,现在交给`spring`容器做了。

2022-11-02 10:06:30 939

原创 Spring学习第1篇:学习spring必备的概念知识

`Spring`由一个叫`Rod Johnson`的程序员在 2002 年最早提出并随后创建,Spring就是项目从配置到安全,从web应用到大数据——无论应用程序的基础设施需求是什么,都有一个Spring Project来帮助您构建它。从小事开始,只使用您需要的东西——`spring在设计上是模块化的`。`Spring框架的控制反转(loC)和依赖注入(DI)`特性为一系列广泛的特性和功能`提供了基础`。

2022-11-01 18:25:48 1528

原创 @AutoConfiguration注解详解

@AutoConfiguration属于springboot当中autoconfigure包下的注解。springboot给我们提供了好多AutoConfiguration,例如关于缓存cache的有CacheAutoConfiguration,关于定时任务quartz的有QuartzAutoConfiguration,这些AutoConfiguration你会发现基本上都会拿@AutoConfiguration来修饰。本篇来彻底了解@AutoConfiguration到底有什么作用,以及到底如何应用他。

2022-10-31 23:54:25 913

原创 @Value的用法

@Value属于spring的注解,在spring-beans包下,可以在 字段 或 方法参数 或 构造函数参数 上使用,通常用于属性注入。支持SpEL (Spring Expression Language)表达式来注入值,同时也支持属性占位符注入值。

2022-10-30 16:35:53 1372

原创 SpEL表达式详解

`Spring Expression Language`(简称SpEL)是一种功能强大的表达式语言,是`spring`提供的,该语言类似于JSP当中的EL表达式。但提供了很多额外的功能,最出色的就是`函数调用`和`简单字符串的模板函数`。他需要使用`spring`提供的解析器来解析,但是他不依赖于`spring`,可以独立使用。在`spring`程序当中,我们不用管解析器,由`spring`来帮我们自动构建。我们只需要写想要表达的字符串,交给`spring`来进行解析即可。

2022-10-29 23:51:43 1842

原创 @order 注解用法

@order注解是spring-core包下的一个注解,@Order的作用是定义Spring IOC容器中Bean的执行顺序的优先级(这里的顺序也可以理解为存放到容器中的先后顺序)。开发过程当中有时候经常会出现配置依赖关系,例如注入A对象使用了@ConditionalOnBean(B.class),意思是要求容器当中必须存在B.class的实例的时候,才会进行注入A。这时候我们就必须保证B对象在注入A对象前进行注入。

2022-10-26 09:40:37 2145

原创 @Conditional注解详解

@Conditional来源于spring-context包下的一个注解。Conditional中文是条件的意思,@Conditional注解它的作用是按照一定的条件进行判断,满足条件给容器注册bean。@Conditional下还有很多扩展注解,例如@ConditionalOnClass、@ConditionalOnBean等等

2022-10-24 22:22:36 2519

原创 @AutoConfigurationPackage注解详解

@AutoConfigurationPackage是在springboot启动类注解@SpringBootApplication下的@EnableAutoConfiguration下。@AutoConfigurationPackage作用是指定springboot扫描包,默认就是扫描启动类同包下的类。可以通过@AutoConfigurationPackage来附加其他路径,然后springboot同样会进行扫描。

2022-10-23 19:01:22 2310 1

原创 @Import注解详解

@Import这个注解非常重要,而且在springboot项目当中随处可见,就拿springboot启动类来说,我们经常会遇到一些@Enable相关的注解,例如开启异步@EnableAsync、开启缓存支持@EnableCaching、开启定时任务@EnableScheduling等等...

2022-10-22 15:19:06 2170

原创 @Bean注解详解

@Bean属于spring当中的注解,@Bean用于将对象存入spring的ioc容器中,同`@controller、@Service、@Component、@Configuration`等几个注解是一样的,都是负责`将对象存入容器当中`。只不过方式不同,他们是用在类上面的,然后将当前类`通过无参构造函数创建对象`然后放入容器,而`@Bean`是用在方法上,将当前方法的`返回值对象`放到容器当中!可以理解为前者是由spring自动创建对象,而@Bean创建对象是交给我们自己来控制。

2022-10-20 23:45:50 2470

原创 Mysql实战优化sql(1.2s优化为0.03s)

使用LEFT JOIN查询,然后两张表是一对多的关系!可能数据会有重复所以用到了DISTINCT去重,由于是项目初期,以至于两张表是都没有添加索引的,执行一下目前是`1.2s`左右!按正常来说这么小的数据量,超过`1s`都属于不正常现象了。一旦数据慢慢越来越多,后果不堪设想!最终优化为0.03s!

2022-10-18 11:53:55 2459

原创 springMVC之@InitBinder的用法

@InitBinder从字面意思可以看出这个的作用是给Binder做初始化的`@InitBinder主要用在@Controller中标注于方法上(@RestController也算),表示初始化当前控制器的数据绑定器(或者属性绑定器),只对当前的Controller有效。@InitBinder标注的方法必须有一个参数WebDataBinder。所谓的属性编辑器可以理解就是帮助我们完成`参数绑定`,然后是在请求到达controller要执行方法前执行!

2022-10-17 21:34:41 2188

原创 SpringBoot接收参数的几种常用方式

Springboot接收请求参数到底有哪些方式,如何使用呢?本篇文章更多的通过示例来讲解,彻彻底底对参数这一块知识进行掌。1、传单个参数的时候可以使用@RequestParam,不带也可以,带上就意味着前端必须传这个值。2、实体接受参数的话,不可以带,带上就会报错。不带的话是可以接受多个参数的。并且没有key限制。

2022-10-16 18:02:47 5602

原创 Could not find acceptable representation

Resolved [org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation报这个错有很多种原因,我这只是其中的一种,可能您报的跟我的不一样,当然本篇文章如果能帮到您,那再好不过了。

2022-10-16 15:50:52 1581

原创 Mysql删除重复数据只保留一条

以这张表为例,表里有两条数据,然后名字是相同的,但是id是不同的,现在要求是只留一条数据

2022-10-15 18:02:50 4817

原创 Java使用POI导出Excel

在项目开发中往往需要使用到Excel的导入和导出,导入就是从Excel中导入到DB中,而导出就是从DB中查询数据然后使用POI写到Excel上。POI不仅仅可以操作Excel,他的定位是Microsoft Of操作读和写,Microsoft Office其中包含了很多常用的办公文件,例如:Excel、ppt、word、Visio等等…

2022-10-12 00:54:53 1986

原创 @RequestMapping用法详解

@RequestMapping的value属性和@RequestMapping的path属性有什么区别?@RequestMapping的params属性有什么作用?@RequestMapping的headers 属性有什么作用?@RequestMapping的method 属性有什么作用?REST 风格的 URL 请求怎么使用?

2022-09-26 20:19:20 3494 3

原创 Cause: org.apache.ibatis.ognl.NoSuchPropertyException: java.util.ArrayList.length

使用mybatis的时候访问报错,报异常如下:Cause: org.apache.ibatis.ognl.NoSuchPropertyException: java.util.ArrayList.length

2022-09-26 17:38:26 882

原创 @AliasFor注解

`@AliasFor`注解基本上都是在spring源码当中出现的,`AliasFor`是Spring提供的注解,`Alias`是别名的意思,`For`是为了,首先我们通过命名可以得出一个结论,他是为了别名而自定义的注解!@AliasFor注解的作用有两点:1. 将同一个注解类的属性设置互为别名 2. 将一个注解上的属性值传递给另一个注解

2022-09-25 13:27:39 1760

原创 Java注解-最通俗易懂的讲解

Java注解(Annotation),也叫`元数据`。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在`包、类、字段、方法、局部变量、方法参数`等的前面,用来对这些元素进行说明,注释。

2022-09-24 23:43:21 5269

原创 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax;

Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4

2022-09-23 15:38:32 736

原创 You can‘t specify target table ‘region‘ for update in FROM clause

首先明确一点这个错误只会发生在`delete`语句或者`update`语句,拿update来举例 : `update A表 set A列 = (select B列 from A表);` 这种写法就会报这个错误,原因:你又要修改A表,然后又要从A表查数据,而且还是同层级。Mysql就会认为是语法错误!嵌套一层就可以解决,`update A表 set A列 = (select a.B列 from (select * from A表) a);`

2022-09-23 10:42:04 1354

原创 @Documented注解的作用

`@Documented`和`@Deprecated`注解长得有点像,`@Deprecated`是用来标注某个类或者方法不建议再继续使用,`@Documented`只能用在注解上,如果一个注解@B,被`@Documented`标注,那么被@B修饰的类,生成文档时,会显示@B。如果@B没有被`@Documented`标注,最终生成的文档中就不会显示@B。这里的生成文档指的JavaDoc文档!

2022-09-21 22:00:42 2406

原创 @DateTimeFormat 和 @JsonFormat 注解详解

这一篇文章足以让你对Java当中Date时间上的理解更上一层楼,本篇文章主要通过代码的形式来进行试验,彻彻底底搞明白日期传参,以及日期返回参数的格式相关问题,每一个步骤都会记得特别详细!@DateTimeFormat究竟在什么时候用?@JsonFormat在什么时候用?二者有什么区别?同时也会重点围绕这几个问题讲解!

2022-09-20 14:09:35 2805 1

原创 Mybatis-Plus时间范围查询

根据时间范围查询:一共提供了两种方式,一种是使用Mybatis-Plus的apply的方式,一种是使用ge(大于等于 >=)和le(小于等于

2022-09-15 16:03:39 4233

原创 linux环境搭建nacos集群详解

linux环境搭建nacos集群教程详解,搭建集群的时候也踩了很多坑,每一步骤也都尽可能的都写出来了。

2022-09-12 19:26:00 3409 3

原创 Linux安装和卸载JDK8详解

jdk安装有两种方式:1. 第一种是使用yum命令一键安装,默认安装目录在/usr/lib/jvm2. 第二种是手动安装,须去oracle官网下载jdk,然后解压并配置环境变量。本篇文章也会针对这两种方式分别进行讲解,并且两种方式的卸载方式也会讲解!

2022-09-11 23:03:32 1651 1

原创 【Nacos配置中心】对配置文件内容进行加密

加密主要是针对于配置文件当中的配置,存储到数据库的时候,加密成密文。然后Nacos展示出来的是明文。因为我们有时候会在配置文件存储很多敏感信息,例如数据库连接方式,或者第三方存储系统的相关信息。出于此考虑,`Nacos在2.1版本新发布了配置文件加密功能`,根本不需要我们自己来实现,很轻松的就能实现 配置内容AES加密 功能。

2022-09-11 18:56:44 3466

原创 Nacos的API居然存在这么严重的漏洞

很多人使用Nacos其实并没有真正的去读过官网,以至于忽视了很多重要的细节,Nacos为我们提供了大量API,但是,直接可以访问,针对于这一点我们也都可以去验证一下。下面我提供了两个调用示例供大家参考,基于这一点Nacos登录页也明确提示,但是对于没真正了解过Nacos,压根也不知道有这个API,也不知道有开启授权这回事,所以也就意识不到这个API暴露出去后果到底有多么严重!

2022-09-09 15:14:41 3045

原创 Spring Cloud根据服务名获取服务的ip端口

Spring Cloud架构当中,使用到了注册中心,然后根据注册的 服务名 获取服务的ip端口的几种方式讲解。

2022-09-09 00:15:48 1810 1

原创 windows系统下安装linux(centos7)虚拟机详细教程(virtualbox环境)

我们知道,我们想在Windows操作系统上跑Linux,需要安装一个虚拟机程序,然后下载一个Linux镜像,在该虚拟机程序中创建一个虚拟机,并使用该镜像安装对应的Linux操作系统,安装好之后,即可在Windows系统下跑虚拟机中的Linux系统。这里所说的镜像,类似于操作系统的安装包。所谓镜像文件其实和ZIP压缩包类似,它将特定的一系列文件按照一定的格式制作成单一的文件,以方便用户下载和使用。

2022-09-07 00:32:35 2676

原创 访问swagger/Knife4j 接口文档报错:java.lang.NumberFormatException: For input string: ““

报异常如下:`java.lang.NumberFormatException: For input string: ""`,虽然不影响使用,但是每次打开接口文档就会报错,就很烦。其实就是swagger低版本当中代码的一个bug,最终成功解决了!

2022-09-05 16:38:39 849

原创 Nacos下载与安装详解

本篇文章主要讲解windows当中Nacos下载与安装详解,以及docker当中Nacos下载与安装详解,欢迎大家点赞收藏,文章采用图文并茂的形式进行讲解,每一个步骤都很详细!

2022-09-05 00:11:53 3374 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除