SpringBoot热部署
一、什么是热部署热部署一般是开发过程中使用:开发者不想因为修改内容后重启server浪费大量的时间,而是希望修改代码后能够快速加载自己修改的方法或者类。节省开发时间,为开发者提供改好的开发体验。
IDEA本身提供了热部署功能,但是限制性比较大,只能对静态资源的修改、方法内的修改才能进行热更新,对于方法参数或者方法类的修改不能进行热部署。像devtools,jrebel 都能够对类的修改进行重新加载。
二、IDEA热部署设置2.1 在idea中的设置中找到自动编译代码选项File ->Settings ->Build, Execution, Deployment -> Compiler
2.2 按下shirt+ctrl+alt+/ ,选中registry(注册),打开
找到红框标识处,打上对勾, 重启下项目, 完成
三、Devtools方式spring boot自带devtools热部署,只需要在项目中添加如下依赖即可:
1234 <dependency> <groupId>org.springframework.boot</gr ...
Spring是如何解决循环依赖的?
一、什么是循环依赖A对象,它的属性是B对象,而B对象的属性也是A对象,说白了就是A依赖B,而B又依赖A
Java中的循环依赖分两种,一种是构造器的循环依赖,另一种是属性的循环依赖。
构造器的循环依赖就是在构造器中有属性循环依赖,如下所示的两个类就属于构造器循环依赖:
123456789101112131415161718192021222324252627282930@Servicepublic class Student { @Autowired private Teacher teacher; // 有参构造依赖别的对象 public Student (Teacher teacher) { System.out.println("Student init1:" + teacher); } // 方法 public void learn () { System.out.println("Student learn"); } ...
面试-技术问题
SpringMVC怎么样设定重定向和转发的?(1)转发:在返回值前面加”forward:”,譬如”forward:user.do?name=method4”(2)重定向:在返回值前面加”redirect:”,譬如”redirect:http://www.baidu.com"
SpringMvc的控制器是不是单例模式,如果是,有什么问题,怎么解决?是单例模式,所以在多线程访问的时候有线程安全问题。同时也不要用同步,会影响性能的。解决方案是在控制器里面不能写字段
SpringMVC常用的注解有哪些?12345678@RestController 控制器层中的方法无法返回jsp页面,或者html,配置的视图解析器(InternalResourceViewResolver)不起作用,返回的内容就是return里的内容字符内容。@Controller 控制器层中的方法的return的数据(字符串或者ModelAndView)将成为逻辑视图名称,让视图解析器进行解析,成为jsp,html页面,并且跳转到相应页面。@RequestMapping 映射请求,也就是通过它来指定控制 ...
SSM项目中解决图片上传和图片显示
一、问题的原由以往的项目中要访问图片直接写个url去指向项目中的存储图片的文件夹,然后写访问哪个图片。比如:
http://localhost:8080/ProductSys/img/1.png
但是,在我们的ssm项目中,一般都会使用拦截器(HandlerInterceptor接口的实现类),在用户做任何操作时先拦截看看用户是否登录,用户的权限是否合格等等。
我们会设置所有请求的请求头内容为一个token,请求一般都是在请求体中设置参数,但我们登录验证一般放在头部,拦截器就拦截使用token然后就是业务判断了…
至于如何给所有请求的请求头都添加一个内容,就可以使用axios添加一个拦截器,添加一个请求拦截器,用axios请求时就可以对所有的请求前设置内容了。
可是 http://localhost:8080/ProductSys/img/1.png 它是一个请求,但它不是使用axios的请求,我们只对所有使用了axios的请求设置了请求头内容,这导致了这个图片请求时请求头没有token,而拦截器对它拦截时就获取不到这个token,会直接拦截。让我们访问不到。
二、解决方法2.1 ...
Redis的三种特殊数据类型
一、Geospatial 地理位置朋友的定位,附近的人,打车距离计算?Redis 的 Geo 在Redis3.2 版本就推出了! 这个功能可以推算地理位置的信息,两地之间的距离,方圆几里的人!可以查询一些测试数据:http://www.jsons.cn/lngcodeinfo/0706D99C19A781A3/只有六个命令官方文档:https://www.redis.net.cn/order/3685.html
1.1、getadd添加地理位置
123456789101112131415# 规则:两级无法直接添加,我们一般会下载城市数据,直接通过java程序一次性导入!# 有效的经度从-180度到180度。# 有效的纬度从-85.05112878度到85.05112878度。# 当坐标位置超出上述指定范围时,该命令将会返回一个错误。# 127.0.0.1:6379> geoadd china:city 39.90 116.40 beijin(error) ERR invalid longitude,latitude pair 39.900000,116.400000# 参数 ke ...
Redis测试性能和基础的知识
一、测试性能redis-benchmark 是一个压力测试工具,官方自带的性能测试工具,redis-benchmark 命令参数!图片来自菜鸟教程和狂神说:我们来简单测试下
# 测试:100个并发连接 100000请求redis-benchmark -h localhost -p 6379 -c 100 -n 100000
如何查看这些分析呢?
二、基础的知识redis默认有16个数据库默认使用的是第0个可以使用 select 进行切换数据库!
127.0.0.1:6379> select 3 # 切换数据库OK127.0.0.1:6379[3]> DBSIZE # 查看DB大小!(integer) 0
127.0.0.1:6379[3]> keys * # 查看数据库所有的key(1) “name”
清除当前数据库flushdb清除全部数据库的内容FLUSHALL
127.0.0.1:6379[3]> flushdbOK127.0.0.1:6379[3]> keys *(empty list or ...
Redis的五大数据类型
一、官网文档介绍Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件MQ。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。
Redis-KeyRedis的一些命令
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748127.0.0.1:6379> ...
Redis安装和基本使用
什么是RedisRedis(Remote Dictionary Server ),即远程字典服务。是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
一、Windows安装下载地址:https://github.com/tporadowski/redis/releasesRedis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包解压。
1.1 开启Redis服务器端双击运行redis-server.exe即可开启redis服务器端。注意本cmd窗口不要关闭,不然就无法访问服务端了Redis 5.0.10 (1c047b68/0) 64 bit – 版本号Port: 6379 – 默认端口6379
1.2 命令操作双击运行redis-cli.exe即可开启redis的客户端,连接Redis
1.3 测试是否连接成功ping命令
1.4 设置一个KVset命令
1.5 获取key值get命令
二、Linux安装下载地址:https://w ...
mybatis的其他注意事项(完结)
一、数据库的属性配置文件 把数据库连接信息放到一个单独的文件中。 和mybatis主配置文件分开。目的是便于修改,保存,处理多个数据库的信息。MyBatis主配置文件需要从这个属性文件中读取连接四要素数据。
(1) 在 classpath 路径下,创建 properties 文件 在 resources 目录创建 jdbc.properties 文件,文件名称自定义。
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/db_mybatis jdbc.user=root jdbc.password=root
(2) 使用 properties 标签 修改主配置文件,文件开始位置加入:
123456789注意:是文件开始位置加入<property> 指定文件的位置<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUB ...
mybatis的mybatis的动态sql(二)
动态sql: sql的内容是变化的,可以根据条件获取到不同的sql语句。主要是where部分发生变化。
一、foreach <foreach> 循环java中的数组, list集合的。主要用在sql的in语句中。
collection="集合类型(list、array)"
item="集合中的成员"
open="开始字符"
close="结束字符"
separator="集合成员之间的分隔符"
1.1 例子 接口:
12/* 使用foreach动态sql */List<Student> selectStudentForeach(List<Integer> list);
xml:
123456789101112131415<!-- foreach <foreach> 循环java中的数组, list集合的。主要用在sql的in语句中。 collection="集合类 ...