- 博客(20)
- 收藏
- 关注
转载 VO、DTO、DO、PO的概念、区别和用处
本篇文章主要讨论一下我们经常会用到的一些对象:VO、DTO、DO和PO。由于不同的项目和开发人员有不同的命名习惯,这里我首先对上述的概念进行一个简单描述,名字只是个标识,我们重点关注其概念:概念:VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的
2021-12-17 15:16:00 368
原创 证明线程池ThreadPoolExecutor的核心线程数,最大线程数,队列长度的关系
import java.util.concurrent.*;public class ExecutorTest { public static void main(String[] args) { // 创建线程池 , 参数含义 :(核心线程数,最大线程数,加开线程的存活时间,时间单位,任务队列长度) ThreadPoolExecutor pool = new ThreadPoolExecutor(5, 8, 0L, Tim
2021-10-09 11:36:43 684
原创 pom文件中spring-boot-maven-plugin报错解决
解决报红是因为缺少版本号,后面加上即可2.3.5.RELEASE所加版本号需要和springboot的版本号一致。 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-pl
2021-09-18 15:55:44 578
原创 怎样理解阻塞非阻塞与同步异步的区别?
“阻塞”与"非阻塞"与"同步"与“异步"不能简单的从字面理解,提供一个从分布式系统角度的回答。同步与异步同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)所谓同步,就是在发出一个调用时,在没有得到结果之前,该调用就不返回。但是一旦调用返回,就得到返回值了。换句话说,就是由调用者主动等待这个调用的结果。而异步则是相反,调用在发出之后,这个调用就直接返回了,所以没有返回结果。换句话说,当一个异步过程调用发出后,调用
2021-09-18 15:52:02 73
原创 关于renren-fast-vue登陆页面验证码加载失败的解决
运训renren-fast出现错误如下,When allowCredentials is true, allowedOrigins cannot contain thespecial value "*“since that cannot be set on the “Access-Control-Allow-Origin” response header. To allow credentials to a set of origins, list them explicitly or conside
2021-09-18 11:11:02 2126 1
原创 Module named ‘XXX’ already exists 错误解决
问题描述下图中03spring-拦截器的module名为spring03,我想要将module名改为03spring-拦截器,也就是将03spring-拦截器后面的[spring03]去掉,于是右键项目名,选择Refactor->rename->rename module,修改以后,IDEA却弹出Module named ‘03spring-拦截器’ already exists的警告信息。这个问题该如何解决?IDEA版本为2021.1.1。解决方案File -> Projec
2021-09-18 10:43:56 5294
原创 springboot2.3.0版本以后 javax.validation.constraints.NotBlank找不到异常
SpringBoot2.3.0之后就不在集成Validation组件了,要么降版本,要么手动导入Spring Boot Starter Validation。查看2.3.0以前的版本,以2.2.7版本为例spring-boot-starter-web-2.2.7.RELEASE.pom: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>s
2021-09-17 23:48:58 2212
原创 Redis的各种用途以及使用场景
一、为什么使用解决应用服务器的cpu和内存压力减少io的读操作,减轻io的压力关系型数据库的扩展性不强,难以改变表结构二、优点nosql数据库没有关联关系,数据结构简单,拓展表比较容易nosql读取速度快,对较大数据处理快三、适用场景数据高并发的读写海量数据的读写对扩展性要求高的数据四、不适场景需要事务支持(非关系型数据库)基于sql结构化查询储存,关系复杂五、Redis结构Redis是一个开源的key—value型数据库,支持string、list、set、z
2021-09-17 01:46:32 811
原创 IDEA2021/2020 Run Dashboard的打开方法
IDEA中微服务在service窗口以配置方式启动网上千篇一律的在 workspace.xml中配置Run Dashboard,但是只有在旧版本中才有这个节点的配置。但是新版的该怎么办呢?压根就没有这个节点,硬着头皮添加进去你会发现,问题依然存在。1.idea版本我使用的版本是idea 2021.1,service窗口中可以以配置方式启动微服务,一般是配置不同端口号启动。如下图。(但是在旧版本中,对应的窗口叫做Run Dashboard窗口,旧版本的解决办法网上文章很多,请自行查找。)2.调出Se
2021-09-16 23:43:14 5925 7
原创 mysql数据库报错(Communications link failure)
原因:mysql5将其连接的等待时间(wait_timeout)缺省为8小时。修改配置文件即可,步骤如下:【1】登录mysql,cmd命令mysql -h主机地址 -u用户名 -p用户密码(例如 mysql -hlocalhost -uroot -p123456)【2】查看wait_timeout,cmd命令:show global variables like ‘wait_timeout’;【3】若wait_timeout太小,修改之。cmd命令:set global wait_timeo
2021-09-16 23:21:38 410
原创 RequestMapping、PostMapping、GetMapping等有什么联系
@RequestMapping 和 @GetMapping @PostMapping 区别@GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。@PostMapping是一个组合注解,是@RequestMapping(method = RequestMethod.POST)的缩写。类似的组合注解还有:@PutMapping、@DeleteMapping、@PatchMapping就不再多说。...
2021-09-10 23:29:59 247
原创 java并发三大特性
在Java内存模型中,有三大性质:原子性、有序性和可见性。原子性熟悉数据库特性都知道数据库sql执行中也有原子性,数据库中的原子性是这样定义的在一个事务中要么所有的sql都执行,要么都不执行。java内存模型中的原子性也是类似,要么所有的指令都执行,要么都不执行。这样才能保证并发操作的安全性和一致性。但是并发在带来方便的同时,却不能很好的解决原子性的问题。操作系统为了提高并行处理问题的能力,会将时间分成一个个小的分片,例如50毫秒,过了50毫秒操作系统就会重新选择一个进程来执行(称为“任务切换”)
2021-09-10 23:26:51 266
原创 如何查看centos安装了哪些软件
使用rpm命令来查看centos软件信息rpm包管理器提供了标准化的方式,可以对任何应用程序组织所用的软件。rpm包管理器的一大好处就是可以验证包的和文件的完整性,如果被修改过,则可以标出被人修改的文件。使用rpm命令可以获取centos软件的大量有价值的信息。安装与升级RPM包之前需要知道系统中是否已经有所要的包,RPM查询可以提供包的描述信息,验证,以及包的相关文件。1、使用rpm查询已经安装包的版本 使用rpm -q pachagename可以查询已经安装软件的版本,例如我们这里使用rpm查询
2021-09-10 14:06:04 9111
原创 servlet、listener、filter、interceptor的关系
servletservlet是一种运行服务器端的java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中间层。最早支持 Servlet 技术的是 JavaSoft 的 Java Web Server。此后,一些其它的基于 Java 的 Web Server 开始支持标准的 Servlet API。Servlet 的主要功能在于交互式地浏览和修改数据,生成动态 Web 内容。这个过程为:客户端发送请求至服务器端;服务器将请求信息发送至 Servle
2021-09-09 22:23:54 95
原创 高内聚与低耦合的概念
‘高内聚,低耦合’是相对于代码而言,一个项目中:每个模块之间相互联系的紧密程度,模块之间联系越紧密,则耦合性越高,模块的独立性就越差!反之同理;一个模块中各个元素之间的联系的紧密程度,如果各个元素(语句、程序段)之间的联系程度越高,则内聚性越高,即‘高内聚’ !如: 一个项目中有20个方法调用良好,但是要修改了其中一个,另外的19个都要进行修改,这就是高耦合!独立性太差!现在的软件结构设计,都会要求“高内聚,低耦合”,来保证软件的高质量!高内聚低耦合,是软件工程中的概念,是判断软件设计好坏的标准,
2021-09-08 20:55:26 388
原创 @Controller与@RestController使用上的区别。
区别@RestController注解相当于@ResponseBody + @Controller合在一起的作用。如果只是使用@RestController注解Controller层,则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才
2021-09-08 20:44:11 103
原创 什么是分布式锁?
分布式锁的概念分布式锁其实可以理解为:控制分布式系统有序的去对共享资源进行操作,通过互斥来保持一致性。举个例子:假设共享的资源就是一个房子,里面有各种书,分布式系统就是要进屋看书的人,分布式锁就是保证这个房子只有一个门并且一次只有一个人可以进,而且门只有一把钥匙。然后许多人要去看书,可以,排队,第一个人拿着钥匙把门打开进屋看书并且把门锁上,然后第二个人没有钥匙,那就等着,等第一个出来,然后你在拿着钥匙进去,然后就是以此类推。锁存在的意义原因其实很简单:因为我们想让同一时刻只有一个线程在执行某段
2021-09-03 23:38:25 17361
原创 JAVA动态代理
JAVA动态代理代理模式静态代理动态代理动态代理底层实现代理模式为其他对象提供一个代理以控制对某个对象的访问。代理类主要负责为委托了(真实对象)预处理消息、过滤消息、传递消息给委托类,代理类不现实具体服务,而是利用委托类来完成服务,并将执行结果封装处理。其实就是代理类为被代理类预处理消息、过滤消息并在此之后将消息转发给被代理类,之后还能进行消息的后置处理。代理类和被代理类通常会存在关联关系(即上面提到的持有的被带离对象的引用),代理类本身不实现服务,而是通过调用被代理类中的方法来提供服务。静态代理
2021-09-02 22:02:26 80
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人