![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
框架
文章平均质量分 67
框架
二灯法师
https://github.com/morningwn/note
展开
-
netty--粘包、半包解决方案
闲着没事研究了一下netty怎么用。如有错误,还请指正。在数据传输的过程中,TCP协议会将多个较小的数据包放在一起传输,或者是将数据拆分进行传输,这就导致在更上层需要进行判断收到是否为一个完整的数据包,否则进行就没办法玩了。下面列举几个常用的方案。一、强制每个数据包单独发送通过设置参数,强制要求不进行合并和拆包发送,简单粗暴,两行代码搞定问题。但是这样因为每次传送的数据较少,在频繁通信的时候会导致网络拥堵,不推荐使用。服务端配置: // 强制要求,每次.原创 2021-10-17 23:32:04 · 356 阅读 · 0 评论 -
Spring事务失效的场景
Spring事务失效主要有以下几种情况:数据库本身不支持事务数据源没有配置事务管理器主动设置不支持事务异常被catch了异常不是指定回滚的类型调用不是Spring的代理对象方法没有用public修饰一、数据库本身不支持事务数据库本身并不支持事务,没什么好说的,本身就不支持,怎么可能生效。二、数据源没有配置事务管理器如下是SpringBoot做的自动配置/** * {@link EnableAutoConfiguration Auto-configuration} for .原创 2021-08-26 16:48:48 · 231 阅读 · 1 评论 -
Ehcache的使用
这里着重说一下3.x的用法,至于2.x只说一下咋配置。2.x依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId></dependency><dependency> <groupId>net.sf.ehcache&.原创 2021-02-03 10:44:30 · 540 阅读 · 0 评论 -
错误处理
找到了三种错误处理的方法:使用@ControllerAdvice注解,这种可以处理所有controller层抛出的异常,但是如果是在controller层try/catch了,那么就无法进行处理了,而且也无法处理不经过controller层的异常,比如404;但是这个也有好处,那就是在处理异常的时候可以根据不同的异常来分开进行处理,而且处理方法也比较简单。实现ErrorController接口或者是继承他的子类,这个类是Spring Boot给我们写好的对错误处理的类,处理的结果就是我们看到的那个白色原创 2021-02-03 10:43:21 · 185 阅读 · 0 评论 -
日志
Spring Boot默认使用的日志框架是slf4j和logback,其中slf4是提供了一个统一的实现接口,logback则是实际的实现。另外,Spring Boot也是支持其他的日志框的。而Spring Boot中有许多其他的模块使用的是其他的日志框架,对此slf4j提出了解决方案,那就是在原本的基础上面再加上一层,做一个适配,这样就可以了。同样,尽管在应用的时候是使用的slf4j,也可以添加一个适配层从而使用其他的日志框架,包括log4j、jul等。具体的可以去看slf4j的官方文档:传送门,.原创 2021-01-30 13:55:57 · 1073 阅读 · 3 评论 -
Spring Boot单元测试
同样Spring Boot已经给我们提供好了现成的测试模块,我们只要会用就行了,然后这个是官方的例子:传送门最简单的直接自动注入这个就是需要一个@SpringBootTest注解来告诉框架,这个是一个测试模块,然后将自己需要测试的类注入进来,调用方法就行了,个人认为,这种比较适合dao层或者是service层。@SpringBootTestpublic class DemoTest1 { @Autowired private HelloController controller;.原创 2021-01-30 13:54:01 · 92 阅读 · 0 评论 -
WEB开发
模板引擎Spring Boot不建议我们使用jsp,建议使用模板引擎;同样也他给我们提供了模板引擎的自动配置。提供了默认配置的模板引擎有以下几种:ThymeleafFreeMarkerVelocityGroovyMustache通过使用模板引擎来避免使用jsp。使用Thymeleaf首先第一步,引坐标<!-- 模板引擎--><dependency> <groupId>org.springframework.boot</groupId原创 2021-01-30 13:52:27 · 115 阅读 · 0 评论 -
资源映射
默认的几个配置在使用Spring MVC的时候,需要我们去配置各种静态资源、网页地址的映射,不然很容易就会出现问题。Spring Boot默认已经配置好了,会默认帮我们映射下面的几个文件夹classpath:/META-INF/resources/classpath:/resources/classpath:/static/classpath:/public/如果想要配置自己的静态资源地址,需要使用spring.web.resources.static-locations属性来配置,需要注原创 2021-01-30 13:50:49 · 303 阅读 · 0 评论 -
Hello Word
方法一创建项目的时候可以先创建maven项目,然后添加各种坐标,创建文件,文件夹啥的方法二如果是用的专业版的IDEA,可以直接用他自带的springBoot创建器,创建项目这样会根据你自己的选择去添加坐标,然后默认创建各种文件夹。方法三使用spring官方提供的创建器来创建,效果和上面那个差不多,就是需要联网,这个是那个网站的地址:传送门选择以下选项:Project类型是:Maven ProjectSpring Boot版本:根据需要选择然后填上包名、团队名称、项目名称等等最后选择项原创 2021-01-30 13:48:26 · 98 阅读 · 0 评论 -
Spring Boot数据库操作
文章目录连接池使用JdbcTemplate代码测试使用JPA代码测试使用MaBatis代码测试多数据源连接池JdbcTemplate整合代码测试与JPA整合代码测试与MyBatis整合首先需要引入Spring Boot的数据库模块,然后根据连接的数据库类型加入数据库驱动。<!-- 数据库--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>s原创 2021-01-05 09:59:47 · 348 阅读 · 0 评论 -
MyBatis----逆向工程
文章目录概述配置运行概述这个逆向工程就是mybatis根据数据库中的表,然后生成对应的实体类以及各种mapper。能够方便我们的开发,配置好之后就会自动生成一些CRUD操作,基本上可以满足我们的各种需求。另外就是官网也给到了如何去使用:传送门,配置文件以及怎么去调用都说明了。配置除了常规的一些依赖文件,还需要加入逆向工程的核心依赖 <dependency> <groupId>org.mybatis.generator</gro原创 2020-12-01 10:51:15 · 77 阅读 · 0 评论 -
SSM+Layui整合
文章目录概述依赖各种配置文件web.xmlspring配置springMVC配置MyBatis配置Mapper映射文件关于Layui概述刚学完了ssm,打算自己上手做一个项目玩玩,先第一步,整合ssm,自己不会写前端,所以前端用了Layui。这个整合的大致就是ssm,Layui,MySQL,druid。依赖这个是我的依赖,没出问题。 <dependencies> <dependency> <groupId>org.springframew原创 2020-11-17 08:59:34 · 1396 阅读 · 0 评论 -
MyBatis----缓存
文章目录概述本地缓存本地缓存失效的情况全局缓存配置方法与缓存有关的配置整合第三方缓存依赖更改配置文件源码解读执行流程全局缓存本地缓存参考文档概述MyBatis有两级的缓存:本地缓存,以会话(sqlSession)为单位的一级缓存全局缓存,以命名空间为单位的二级缓存默认情况,一级缓存是开启的;二级缓存需要手动开启。MyBatis提供了自定义二级缓存的接口,想要自定义二级缓存直接继承Cache接口实现相应的方法就行了。而想要使用第三方的缓存需要添加相应缓存的依赖,并添加MyBatis项目为该缓存原创 2020-10-17 21:45:04 · 98 阅读 · 0 评论 -
MyBatis---动态SQL
文章目录概述if标签choose标签trim标签额外添加一个必为true的条件where标签set标签trim标签foreach标签概述简单来说,动态sql就是根据不同的参数拼接出来不同的sql语句,通常情况我们使用Java来拼接不能说很难,只能说比较痛苦,MyBatis就直接将类似的功能提供给我们,方便开发。MyBatis借助了OGNL的表达式,但是相对来说比较简单,因为MyBatis对其进行了精简,只有学习几个标签就可以用了。ifchoose(when、otherwise)trim(w原创 2020-10-15 11:33:35 · 105 阅读 · 0 评论 -
Spring----控制反转(IOC)
文章目录目的底层原理Bean管理概述基于xml只有一个对象,没有属性注入普通的属性使用set方法注入使用构造方法注入注入对象属性引用内部bean级联赋值注入集合属性普通的注入使用引用自动装配基于注解作用域和生命周期作用域生命周期后置处理器参考控制反转就是将对象的创建和对象之间调用的管理,交给Spring。我们在一个对象中需要另一个对象的资源无需去考虑如何去获得,Spring自动帮我们完成对象获取这个过程。目的降低耦合度底层原理xml解析、工厂模式、反射关于工厂模式,有兴趣的可以看一下我的另一原创 2020-10-13 21:00:16 · 99 阅读 · 0 评论 -
Spring入门
文章目录什么是Spring[^1]第一个程序首先,创建一个Java的maven项目随便创建一个类,写上方法,然后再在配置文件中注册最后,敲出来测试的代码控制反转(IOC)目的底层原理Bean管理概述基于xml只有一个对象,没有属性注入普通的属性使用set方法注入使用构造方法注入注入对象属性引用内部bean级联赋值注入集合属性作用域和生命周期什么是Spring1Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。轻量级:完整Spring框架的大小只有一兆多,而Spring处理所原创 2020-10-13 19:04:01 · 74 阅读 · 0 评论 -
MyBatis---映射文件
文章目录增删改代码获取执行的结果Mysql获取自增主键的值查1、返回一个封装好的对象2、返回封装好的对象的列表3、将返回的数据封装为Map4、将返回的多个对象封装为一个map5、一对一、多对一关联查询分步查询6、一对多级联分步鉴别器输入参数只有一个基本数据类型传入一个对象作为参数传入多个参数传入参数类型为Map传入数据为Collection对象或者是数组#{}与${}其他参考文档增删改增删改大同小异,没什么复杂的东西,只是标签不一样。需要注意的是,增删改必须进行提交操作之后才会将改变提交给数据库。M原创 2020-10-11 19:37:43 · 137 阅读 · 0 评论 -
MyBatis入门
文章目录MyBatis第一个案例创建项目创建数据库创建配置文件对应的类测试参考MyBatis使用MyBatis的意义作为一个半自动的持久层框架,MyBatis将sql语句交给开发者去完成,使开发者可以优化自己的SQL语句,自身则完成剩余的部分。第一个案例创建项目在maven中添加如下的依赖:这两个分别是MyBatis和jdbc的驱动 <dependency> <groupId>org.mybatis</groupId&g原创 2020-10-07 12:37:33 · 69 阅读 · 0 评论