10 2021 档案

摘要:参数化测试 参数化测试是JUnit5很重要的一个新特性,它使得用不同的参数多次运行测试成为了可能,也为我们的单元测试带来许多便利。 利用@ValueSource等注解,指定入参,我们将可以使用不同的参数进行多次单元测试,而不需要每新增一个参数就新增一个单元测试,省去了很多冗余代码。 @ValueSo 阅读全文
posted @ 2021-10-31 15:31 durtime 阅读(89) 评论(0) 推荐(0)
摘要:SpringBoot 2.4 以上版本移除了默认对 Vintage 的依赖。如果需要兼容junit4需要自行引入(不能使用junit4的功能 @Test) JUnit 5’s Vintage Engine Removed from spring-boot-starter-test,如果需要继续兼容j 阅读全文
posted @ 2021-10-30 17:19 durtime 阅读(82) 评论(0) 推荐(0)
摘要:JUnit5 的变化 Spring Boot 2.2.0 版本开始引入 JUnit 5 作为单元测试默认库 作为最新版本的JUnit框架,JUnit5与之前版本的Junit框架有很大的不同。由三个不同子项目的几个不同模块组成。 JUnit 5 = JUnit Platform + JUnit Jup 阅读全文
posted @ 2021-10-29 12:02 durtime 阅读(69) 评论(0) 推荐(0)
摘要:RedisTemplate与Lettuce @Test void testRedis(){ ValueOperations<String, String> operations = redisTemplate.opsForValue(); operations.set("hello","world" 阅读全文
posted @ 2021-10-28 21:12 durtime 阅读(57) 评论(0) 推荐(0)
摘要:Profile功能 为了方便多环境适配,springboot简化了profile功能。 application-profile功能 默认配置文件 application.yaml;任何时候都会加载 指定环境配置文件 application-{env}.yaml 激活指定环境 配置文件激活 命令行激活 阅读全文
posted @ 2021-10-27 21:26 durtime 阅读(96) 评论(0) 推荐(0)
摘要:NoSQL Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitma 阅读全文
posted @ 2021-10-26 19:02 durtime 阅读(157) 评论(0) 推荐(0)
摘要:CRUD功能实例 @GetMapping("/user/delete/{id}") public String deleteUser(@PathVariable("id") Long id, @RequestParam(value = "pn",defaultValue = "1")Integer 阅读全文
posted @ 2021-10-25 13:31 durtime 阅读(65) 评论(0) 推荐(0)
摘要:什么是MyBatis-Plus MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 mybatis plus 官网 建议安装 MybatisX 插件 整合MyBatis-Plus <dependency> 阅读全文
posted @ 2021-10-24 14:53 durtime 阅读(71) 评论(0) 推荐(0)
摘要:https://github.com/mybatis starter SpringBoot官方的Starter:spring-boot-starter-* 第三方的: *-spring-boot-starter <dependency> <groupId>org.mybatis.spring.boo 阅读全文
posted @ 2021-10-23 12:53 durtime 阅读(47) 评论(0) 推荐(0)
摘要:分析自动配置 扩展配置项 spring.datasource.druid DruidSpringAopConfiguration.class, 监控SpringBean的;配置项:spring.datasource.druid.aop-patterns DruidStatViewServletCon 阅读全文
posted @ 2021-10-22 20:26 durtime 阅读(74) 评论(0) 推荐(0)
摘要:这本书的第一章的第一句话是这样说的:读这本书通常有两个原因:1. 你是一名程序员。2. 你想成为更好的程序员。我们需要更好的程序员。 不管是现实世界还是软件项目中,命名都是一件让人头疼的事情,给小孩起过名字的就知道,你希望把你对孩子的期望包含在这个名字中, 你又希望这个名字读起来要好听,至少不至于将 阅读全文
posted @ 2021-10-22 12:22 durtime 阅读(100) 评论(0) 推荐(0)
摘要:官方starter方式 引入druid-starter <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.17</version> < 阅读全文
posted @ 2021-10-21 16:01 durtime 阅读(123) 评论(0) 推荐(0)
摘要:druid官方github地址 https://github.com/alibaba/druid 整合第三方技术的两种方式 自定义 找starter 创建数据源 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifa 阅读全文
posted @ 2021-10-20 16:51 durtime 阅读(237) 评论(0) 推荐(0)
摘要:切换嵌入式Servlet容器 默认支持的webServer Tomcat, Jetty, or Undertow ServletWebServerApplicationContext 容器启动寻找ServletWebServerFactory 并引导创建服务器 切换服务器 <dependency> 阅读全文
posted @ 2021-10-19 21:40 durtime 阅读(43) 评论(0) 推荐(0)
摘要:spring: datasource: url: jdbc:mysql://localhost:3306/db_account username: root password: 123456 driver-class-name: com.mysql.jdbc.Driver 测试: @Slf4j @S 阅读全文
posted @ 2021-10-18 14:45 durtime 阅读(594) 评论(0) 推荐(0)
摘要:自动配置的类 DataSourceAutoConfiguration : 数据源的自动配置 修改数据源相关的配置:spring.datasource 数据库连接池的配置,是自己容器中没有DataSource才自动配置的 底层配置好的连接池是:HikariDataSource @Configurati 阅读全文
posted @ 2021-10-17 18:02 durtime 阅读(298) 评论(0) 推荐(0)
摘要:使用RegistrationBean @Configuration public class MyRegistConfig { @Bean public ServletRegistrationBean myServlet(){ MyServlet myServlet = new MyServlet( 阅读全文
posted @ 2021-10-16 18:11 durtime 阅读(376) 评论(0) 推荐(0)
摘要:Tomcat-Servlet; 多个Servlet都能处理到同一层路径,精确优选原则 A: /my/ B: /my/1 阅读全文
posted @ 2021-10-15 17:52 durtime 阅读(76) 评论(0) 推荐(0)
摘要:Web原生组件注入(Servlet、Filter、Listener) 使用Servlet API @ServletComponentScan(basePackages = "com.atguigu.admin") :指定原生Servlet组件都放在那里 @WebServlet(urlPatterns 阅读全文
posted @ 2021-10-14 12:56 durtime 阅读(70) 评论(0) 推荐(0)
摘要:为什么导入JDBC场景,官方不导入驱动?官方不知道我们接下要操作什么数据库。 数据库版本和驱动版本对应 自己添加 默认版本:<mysql.version>8.0.22</mysql.version> <dependency> <groupId>mysql</groupId> <artifactId> 阅读全文
posted @ 2021-10-13 15:23 durtime 阅读(152) 评论(0) 推荐(0)
摘要:定制化的常见方式 修改配置文件; xxxxxCustomizer; 编写自定义的配置类 xxxConfiguration;+ @Bean替换、增加容器中默认组件;视图解析器 Web应用 编写一个配置类实现 WebMvcConfigurer 即可定制化web功能;+ @Bean给容器中再扩展一些组件 阅读全文
posted @ 2021-10-12 16:52 durtime 阅读(101) 评论(0) 推荐(0)
摘要:异常处理步骤流程 1、执行目标方法,目标方法运行期间有任何异常都会被catch、而且标志当前请求结束;并且用 dispatchException 2、进入视图解析流程(页面渲染?) processDispatchResult(processedRequest, response, mappedHan 阅读全文
posted @ 2021-10-11 19:56 durtime 阅读(594) 评论(0) 推荐(0)
摘要:定制Servlet容器 实现 WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> 把配置文件的值和ServletWebServerFactory 进行绑定 修改配置文件 server.xxx 直接自定义 Configurab 阅读全文
posted @ 2021-10-10 21:07 durtime 阅读(53) 评论(0) 推荐(0)
摘要:异常处理自动配置原理 ErrorMvcAutoConfiguration 自动配置异常处理规则 容器中的组件:类型:DefaultErrorAttributes -> id:errorAttributes public class DefaultErrorAttributes implements 阅读全文
posted @ 2021-10-09 17:45 durtime 阅读(80) 评论(0) 推荐(0)
摘要:定制错误处理逻辑 自定义错误页 error/404.html error/5xx.html;有精确的错误状态码页面就匹配精确,没有就找 4xx.html;如果都没有就触发白页 @ControllerAdvice+@ExceptionHandler处理全局异常;底层是 ExceptionHandler 阅读全文
posted @ 2021-10-08 19:12 durtime 阅读(74) 评论(0) 推荐(0)
摘要:异常处理 默认规则 默认情况下,Spring Boot提供/error处理所有错误的映射 对于机器客户端,它将生成JSON响应,其中包含错误,HTTP状态和异常消息的详细信息。对于浏览器客户端,响应一个“ whitelabel”错误视图,以HTML格式呈现相同的数据 阅读全文
posted @ 2021-10-06 14:28 durtime 阅读(51) 评论(0) 推荐(0)
摘要:要对其进行自定义,添加View解析为error 要完全替换默认行为,可以实现 ErrorController 并注册该类型的Bean定义,或添加ErrorAttributes类型的组件以使用现有机制但替换其内容。 error/下的4xx,5xx页面会被自动解析; 阅读全文
posted @ 2021-10-05 20:51 durtime 阅读(80) 评论(0) 推荐(0)
摘要:两种不同的返回方式 阅读全文
posted @ 2021-10-04 21:11 durtime 阅读(114) 评论(0) 推荐(0)
摘要:文件上传代码 /** * MultipartFile 自动封装上传过来的文件 * @param email * @param username * @param headerImg * @param photos * @return */ @PostMapping("/upload") public 阅读全文
posted @ 2021-10-03 16:56 durtime 阅读(100) 评论(0) 推荐(0)
摘要:文件上传 页面表单 <form method="post" action="/upload" enctype="multipart/form-data"> <input type="file" name="file"><br> <input type="submit" value="提交"> </f 阅读全文
posted @ 2021-10-02 19:55 durtime 阅读(79) 评论(0) 推荐(0)
摘要:1、根据当前请求,找到HandlerExecutionChain【可以处理请求的handler以及handler的所有 拦截器】 2、先来顺序执行 所有拦截器的 preHandle方法 1、如果当前拦截器prehandler返回为true。则执行下一个拦截器的preHandle 2、如果当前拦截器返 阅读全文
posted @ 2021-10-01 20:10 durtime 阅读(282) 评论(0) 推荐(0)