05 2022 档案

摘要:要想使用mybatisPlus的代码生成器需要两个坐标,其它什么都不用设置,配置文件也不需要配置。 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <versio 阅读全文
posted @ 2022-05-29 19:16 长情c 阅读(113) 评论(0) 推荐(0)
摘要:现在有个问题,如果你在业务中用到了秒杀的话,假如这件商品有200单,然后一群用户去抢这200单。当它还有1件时,假如八个人去抢那么就会变成负数,这是绝对不行的,所以就需要用到乐观锁。 那么怎么使用乐观锁呢? 首先新增一个字段version,也就是锁,也叫版本。 然后在实体中加入version字段和v 阅读全文
posted @ 2022-05-29 16:00 长情c 阅读(281) 评论(0) 推荐(0)
摘要:现在有两张表,一个是员工表,一个是销售表。 现在如果我们要删除员工编号为1的员工,那么销售表的数据也会被删除掉,那么如果我们现在做销售合计计算的时候,员工编号为1的销售金额就没有了,这是不行的。 那么该怎么做呢?加上一个deleted字段来标记删除,1代表要删除的数据,0代表不是删除的数据,但不是真 阅读全文
posted @ 2022-05-29 10:46 长情c 阅读(326) 评论(0) 推荐(0)
摘要:首先创建一个拦截器类实现HandlerInterceptor 如果你需要自定义 Interceptor 的话必须实现 org.springframework.web.servlet.HandlerInterceptor接口或继承 org.springframework.web.servlet.han 阅读全文
posted @ 2022-05-27 12:50 长情c 阅读(384) 评论(0) 推荐(0)
摘要:在项目中出现的异常是五花八门的,假如你要发送一个参数为1的数字,用户给了一个heihei的字符串,这是不规范的用户行为导致的。那么怎么处理这些异常呢? 还有可能数据库服务器因为断电挂了,某个倒霉蛋把电源踢掉了都是有可能出现异常的。 创建业务异常类 package com.hxut.exception 阅读全文
posted @ 2022-05-26 22:05 长情c 阅读(156) 评论(0) 推荐(0)
摘要:现在我们在Controller制造一个异常,然后用异常处理器捕获 这里1/0会报错,我们用postman测试一下。 @GetMapping public Result<List<Book>> getAll(){ int i=1/0; return bookService.getAll(); } @R 阅读全文
posted @ 2022-05-26 20:46 长情c 阅读(209) 评论(0) 推荐(0)
摘要:首先定义一个枚举类,枚举状态码和消息 package com.hxut.domain; /** * description: Response * date: 2022/5/23 21:09 * author: MR.孙 */ public class Response { public enum 阅读全文
posted @ 2022-05-24 18:27 长情c 阅读(153) 评论(0) 推荐(0)
摘要:我们在客户端设置的值,在spingboot中竟然无法读取,下面该怎么同步呢? 可以看到刚刚在springboot中对redis操作的数据在内部进行了序列化。 那么如何读取客户端的数据呢? 这里就要用到StringRedisTemplate 因为这些键都是字符串类型的 下面我们尝试获取客户端设置的键值 阅读全文
posted @ 2022-05-22 20:04 长情c 阅读(46) 评论(0) 推荐(0)
摘要:第一步导入maven坐标 配置redis,当然不配也能用 操作redis 有了这个RedisTemplate的opsForValue就可以操作set,get命令。opsForHash就可以操作hset,hget命令。 阅读全文
posted @ 2022-05-22 19:01 长情c 阅读(64) 评论(0) 推荐(0)
摘要:可以看到如果我的maven里导入了druid的坐标,它会自动的使用这个数据源。 那如果我们把这个坐标删掉的话,就会用springboot默认的数据源了,也就是hikari。 也可以对hikari进行配置,但是需要注意的是hikari的url配置要放在hikari的外面。 也可以配置dbcp数据源 也 阅读全文
posted @ 2022-05-22 10:24 长情c 阅读(203) 评论(0) 推荐(0)
摘要:我们可以利用${random.}生成随机的数据 输出的结果: BookCast(id=2006694753, name=a232cc7dca6216506be047e1f5a53908, uuid=a823bb41-0021-4842-a07b-6dbc712b9b55, publishTime=6 阅读全文
posted @ 2022-05-21 23:25 长情c 阅读(40) 评论(0) 推荐(0)
摘要:@Transsactional这个注解的作用就是提交了但是没有事务,也就是它虽然存在,却不存在数据库中。 @RollBack默认值为true时跟@Transactional搭配的作用是一样的,为false正常操作。 阅读全文
posted @ 2022-05-16 23:14 长情c 阅读(41) 评论(0) 推荐(0)
摘要:还是那个Controller 测试 @Test void testHeader(@Autowired MockMvc mockMvc) throws Exception { MockHttpServletRequestBuilder builder = MockMvcRequestBuilders. 阅读全文
posted @ 2022-05-16 09:27 长情c 阅读(46) 评论(0) 推荐(0)
摘要:如果我们Controller返回的响应体是JSON数据,该怎么用测试匹配响应体呢。 @GetMapping public Book getById(){ System.out.println("getById is running..."); Book book=new Book(); book.s 阅读全文
posted @ 2022-05-16 09:09 长情c 阅读(79) 评论(0) 推荐(0)
摘要:还是那个Controller,这次我们需要对响应请求体进行匹配,也就是这个返回值。 设定预期值 与真实值进行比较,成功测试通过,失败则测试失败 @Test void testBody(@Autowired MockMvc mockMvc) throws Exception { MockHttpSer 阅读全文
posted @ 2022-05-15 20:15 长情c 阅读(39) 评论(0) 推荐(0)
摘要:还是这个Controller。 上一节请求的结果是成功的,这次就来验证一下本次运行结果和预期值是否相同。 与真实值进行比较,成功测试通过,失败测试失败。 也就是下面的三步 @Test void testStatus(@Autowired MockMvc mockMvc) throws Excepti 阅读全文
posted @ 2022-05-15 19:59 长情c 阅读(33) 评论(0) 推荐(0)
摘要:我们这里新建一个Controller然后在测试类中模拟发送一个虚拟请求。 @RestController @RequestMapping("/books") public class BookController { @GetMapping public String getById(){ Syst 阅读全文
posted @ 2022-05-15 18:27 长情c 阅读(97) 评论(0) 推荐(0)
摘要:假如有一个接口 这个接口被两个类所实现 那么我们在另一个类中去注入的话,就会冲突。 解决方法呢就是给这几个bean起个名字,然后@Autowired配合@Qualifier引用名字即可解决问题。 阅读全文
posted @ 2022-05-15 17:09 长情c 阅读(404) 评论(0) 推荐(0)
摘要:要想在测试类中启动web环境,就要用到@SpringBootTest这个注解中的webEnvironment属性,如果属性值为NONE也就是没有web环境。 如果是DEFINED_PORT端口就是配置的是哪个端口,就用哪个端口启动web环境。 可以看到web环境的端口已经挂上了,因为没配置端口所以默 阅读全文
posted @ 2022-05-15 16:07 长情c 阅读(98) 评论(0) 推荐(0)
摘要:测试中可以引用外部的bean吗,可以的,它可以用来辅助测试。 但这个bean只服务于这次测试。 所以这个bean不能是源码级的,所以要放在测试下。 main是源码级的,不能放到这里面。 这就是创建的bean用来返回一个String的bean对象。 然后在测试中通过@Import加载配置 这里不加@I 阅读全文
posted @ 2022-05-15 15:45 长情c 阅读(41) 评论(0) 推荐(0)
摘要:首先我们通过value值读取配置文件中的属性 那么我们能不能在这个类中添加一些临时属性呢?只有这个类中才生效 也是可以的,@SpringBootTest有个properties这个属性可以添加临时的属性 也可以通过args属性为当前测试用例添加临时的命令行参数 阅读全文
posted @ 2022-05-09 08:35 长情c 阅读(26) 评论(0) 推荐(0)
摘要:如果我现在有一个密码0127,这在springboot的yml文件中是八进制的表达形式。所以,如果我们不加引号它会转换为八进制。 那么我们需要注意的是,就是这种八进制的格式我们加引号,那么它就不会转换为八进制了。 阅读全文
posted @ 2022-05-08 06:57 长情c 阅读(185) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2022-05-08 06:41 长情c 阅读(59) 评论(0) 推荐(0)
摘要:我们在设置超时属性时,不加单位的话可以看到默认是3毫秒 也可以设置它的计量单位为秒 我们也可以指定一下数据的大小,默认为B 也可以指定它的计量单位为MB,它会自动转换为B 也可以在配置文件中加入计量单位 阅读全文
posted @ 2022-05-07 12:20 长情c 阅读(92) 评论(0) 推荐(0)
摘要:接着上节讲,在yml中如果我们用驼峰命名法的话,我们把s改为大写的。但是呢@ConfigruationProperties却没有改,它确实能运行成功的。 但是该为大写的,就报错了。 下面看一下这个松散绑定。无论你的ipaddress是什么格式它都会忽略-、_大小写的一些问题,都会匹配上的。 ``` 阅读全文
posted @ 2022-05-05 23:02 长情c 阅读(62) 评论(0) 推荐(0)
摘要:首先引入druid的坐标 ``` <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.16</version> </dependency> ``` 我们先来测试一下能否通过dr 阅读全文
posted @ 2022-05-05 22:25 长情c 阅读(148) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2022-05-04 21:18 长情c 阅读(108) 评论(0) 推荐(0)
摘要:我们在页面上发生改动,spingboot是不会热部署的,因为你一刷新它就有相应的效果。而后台类之类的,就会参与热部署,那么我们怎么配置热部署的范围呢。 阅读全文
posted @ 2022-05-04 20:44 长情c 阅读(41) 评论(0) 推荐(0)
摘要:第一步勾选相应选项。 第二步也是勾选相应选项。 阅读全文
posted @ 2022-05-04 20:36 长情c 阅读(24) 评论(0) 推荐(0)
摘要:第一步: 导入坐标 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> 第二步: 点击这个按钮,或者ctrl+f9 阅读全文
posted @ 2022-05-04 09:39 长情c 阅读(49) 评论(0) 推荐(0)
摘要:name代表的是日志存放的文件名,那么存放在哪里呢? windows的txt文件达到4g是无法打开的,即便是几十m也是很卡的,所以我们可以通过logback.rollingpolicy.max-file-size指定它的文件大小,一旦超过了这个大小,那么重新新建一个文件存放日志。file-name- 阅读全文
posted @ 2022-05-04 08:48 长情c 阅读(75) 评论(0) 推荐(0)
摘要:这里的%d是 date日期格式,%m是message消息,n是换行。 %cls是设置颜色需要给那个加上就用括号包起来,t是日志输出级别前面加了个16是占位符。 c是class的意思也就是对应输出的类名,40c代表默认长度大小为40,-40中的-代表的是左对齐,.40c代表的是截取的意思,如果超过了4 阅读全文
posted @ 2022-05-04 08:20 长情c 阅读(163) 评论(0) 推荐(0)
摘要:现在呢有个问题,每次创建对象时都要自己创建一个日志对象,这样很麻烦,有没有什么办法解决呢? 自己编写一个类,那个类要用日志对象就继承它即可。 也可以用lombok的注解@Slf4j注解 阅读全文
posted @ 2022-05-03 23:18 长情c 阅读(71) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2022-05-03 22:38 长情c 阅读(34) 评论(0) 推荐(0)
摘要:id可以随便写,activeByDefult为true代表你用的是哪一个, 阅读全文
posted @ 2022-05-02 23:29 长情c 阅读(31) 评论(0) 推荐(0)
摘要:当我们把不同功能放到不同的配置文件中时,可以用spring.profiles.active指定它的环境,然后包含以下的几个不同功能的配置文件,这种格式是dev永远是最先生效的,其它的就是最后面的先生效。 这种形式呢,就是指定一个group,里面可以配置你的不同的环境,通过spring.profile 阅读全文
posted @ 2022-05-02 21:54 长情c 阅读(45) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2022-05-02 21:38 长情c 阅读(25) 评论(0) 推荐(0)
摘要:多个环境配置一般有两个步骤: 配置环境 多个环境配置用 隔开,怎么引用它们呢,用profiles给它们起个名字 应用环境 直接指明需要引用的环境的名称,用spring.profiles.active引用名称即可。 但是呢它有个问题,多个环境放在一起的话,会暴露配置信息。 那么可以分文件编写配置信息解 阅读全文
posted @ 2022-05-02 21:26 长情c 阅读(71) 评论(0) 推荐(0)
摘要:指定多个自定义配置文件的位置时,最后一个生效 阅读全文
posted @ 2022-05-02 21:16 长情c 阅读(39) 评论(0) 推荐(0)
摘要:什么意思呢?假如有个第4级的yml文件,和第3级的yml文件,第3级的yml文件在它同级的config中,那么第3级的配置文件生效,第4级将会被覆盖。以此类推。 阅读全文
posted @ 2022-05-02 21:02 长情c 阅读(63) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2022-05-02 20:38 长情c 阅读(39) 评论(0) 推荐(0)
摘要:由于yml配置文件配置的端口是80,cmd命令设置的端口是8080,下面是官网给出的优先级顺序,最上面的优先级最低,往下依次变高。 阅读全文
posted @ 2022-05-02 20:32 长情c 阅读(32) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2022-05-02 09:46 长情c 阅读(23) 评论(0) 推荐(0)