Spring&&SpringMVC
对于SpringAndSpringMVC框架的学习手记
至学者
有道无术,术尚可求,有术无道,止于术!
展开
-
基于Junit4+Mockito+PowerMock实现Controller+Service的单元测试
对单元测试逻辑的实践方案原创 2023-02-28 17:43:21 · 2029 阅读 · 2 评论 -
When allowCredentials is true, allowedOrigins cannot contain the special value “*“
When allowCredentials is true, allowedOrigins cannot contain the special value "*"原创 2023-02-28 09:12:47 · 299 阅读 · 0 评论 -
连接超时与读取超时概述
连接超时代表建立TCP连接的时间,读取超时代表了等待远端返回数据的时间,也包括远端程序处理的时间。在解决连接超时问题时,我们需要搞清楚连的是谁,在遇到读取超时问题的时候我们需要综合考虑下游服务的服务标准和自己的服务标准,设置合适的读取超时时间。原创 2022-10-24 22:57:47 · 1215 阅读 · 0 评论 -
注解@Primary
一 概述@Primary是指在众多相同的bean中,优先使用用@Primary注解的bean。二 注解详解spring注解 @primary_秋天_叶会落的博客-CSDN博客_@primary注解https://blog.csdn.net/qq_33304273/article/details/81222738 待续......原创 2022-05-21 14:40:49 · 451 阅读 · 0 评论 -
初步了解SpringBoot3.0 + Spring Framework 6.0 + JDK17
一 概述2022年,Spring Framework6.0和SpringBoot 3.0都会推出,跟着改变的是JDK的版本,直接从Java8升级到JDK17。二 JDK更新时间表 LTS版本即为Long Term Support版本,中文意思就是长期支持的版本。...原创 2022-02-28 21:57:32 · 1705 阅读 · 0 评论 -
回顾Servlet与SpringMVC
待续。。。原创 2022-02-14 08:45:55 · 161 阅读 · 0 评论 -
No qualifying bean of type xxx
一 概述Spring中我们一般会利用注解: @Autowired 和 @Resource 参考:@autowired和@resource注解的区别是什么?-Java基础-PHP中文网https://www.php.cn/java/base/463170.html当出现了 问题,我们先考虑的是,xxxbean是否被注入了,在实际工作使用了SpringMVC框架的时候一般先考虑是否需要添加一下注解,是的该bean被注入:...原创 2022-02-07 08:22:58 · 394 阅读 · 0 评论 -
回顾事务的传播行为与Spring事务传播的问题
一 概述propagation,传播行为是指被调用的方法与当前方法事务的关系。二 示例解析代码示例 //同一个对象内事务方法互调默认失效,原因 绕过了代理对象 //事务使用代理对象来控制的 @Transactional(timeout = 30) //a事务的所有设置就传播到了和他公用一个事务的方法 public void a() { //b,c做任何设置都没用。都是和a公用一个事务// this.b(); 没用...原创 2022-01-03 23:57:11 · 233 阅读 · 0 评论 -
回顾Spring中的事务
一 概述 待续。。。原创 2022-01-03 23:38:43 · 179 阅读 · 0 评论 -
回顾MySQL中的行锁算法
一 概述next-key locks避免幻读。 待续。。。原创 2021-12-29 23:40:38 · 331 阅读 · 0 评论 -
Unexpected character (‘<‘ (code 60))
一 概述错误信息Unexpected character ('<' (code 60)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')二 解决方法原因:返回的是一个页面组件而非一个JSON数据。解决:将页面转换成字符串来解决。...原创 2021-12-29 21:15:57 · 11833 阅读 · 2 评论 -
数据类型转换之-MediaType.TEXT_PLAIN
一 概述错误信息Could not extract response: no suitable HttpMessageConverter found for response type [cn.justme.sboot.entity.BaseResp<java.lang.String>] and content type [text/plain;charset=UTF-8]二 解决方法增加配置 @Bean p...原创 2021-12-29 21:11:10 · 1326 阅读 · 0 评论 -
制造了一个循环依赖
一 概述 代码:@Configuration@Import({DingTalkUtil.class})public class DingTalkConfig {} 提示: 循环依赖后续分析处理。。。原创 2021-12-15 23:40:40 · 199 阅读 · 0 评论 -
回顾a component required a bean of type *** that could not found
一 概述 错误信息:二 解决方法 编写一个配置类:@Configuration@Import({DingTalkUtil.class})public class DingTalkConfig {} 通过这种方法就可以解决。原创 2021-12-15 23:37:53 · 397 阅读 · 0 评论 -
回顾try catch事务回滚
一 概述 我们在写业务逻辑的时候经常会遇到事务的问题,一般我们只需要在Service需要支持事务的方法上增加事务逻辑。二 事务的使用 一般的事务处理 @Override @Transactional(rollbackFor = Exception.class) public JsonResult edit() { // 方法内容} try catch事务处理@Transactional @Override...原创 2021-11-25 16:37:01 · 789 阅读 · 1 评论 -
@Value区yml配置value下划线丢失了
yml读取下划线丢失问题_超威半导体-CSDN博客_yml 下划线https://blog.csdn.net/micro_hz/article/details/113027960待续....原创 2021-09-17 08:17:42 · 927 阅读 · 0 评论 -
了解布隆过滤器
布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。如果想判断一个元素是不是在一个集合里,一般想到的是将集合中所有元素保存起来,然后通过比较确定。链表、树、散列表(又叫哈希表,Hash table)等等数据结构都是这种思路。但是随着集合中元素的增加,我们需要的存储空间越来越大。同时检索速度也越来越慢,上述三种结原创 2021-08-18 22:49:26 · 89 阅读 · 0 评论 -
Spring限制上传文件大小的配置
一 错误信息org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded; nested exception is java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.impl.SizeLimitExceededException: the request was rejected b原创 2021-08-03 20:37:30 · 1357 阅读 · 0 评论 -
logback 配置日志文件按天压缩存储
一 概述 为了缓解服务器的存储压力,常规操作是将历史日志文件压缩存储。二 配置压缩存储的完整配置文件<?xml version="1.0" encoding="UTF-8"?><configuration scan="true" scanPeriod="10 seconds"> <conversionRule conversionWord="m" converterClass="com.qskj.crm.crmcommon.conf......原创 2021-07-17 10:01:38 · 8427 阅读 · 3 评论 -
回顾UUID生成器
一 概述UUID是通用唯一识别码(Universally Unique Identifier),是一种软件构件的标准,也是开放软件基金会组织在分布式计算环境邻域的一部分。主要目的是让分布式系统中的所有元素,都能有唯一辨识信息,而不需要通过中央控制端来做辨识信息的指定。借助UUID,每个人都可以创建不与其他人冲突的UUID,故在此情况下,就不需要考虑数据库创建时的名称重复问题。二 UUID的组成UUID是指在一台机器上生成的数字,它保证对在同一时空的所有机器都是唯一的。三 UUID的生成原创 2021-05-18 08:56:50 · 281 阅读 · 1 评论 -
回顾slf4j记录日志
一 概述日志级别 描述 高 OFF 关闭:最高级别,不输出日志 FATAL 致命:输出非常严重的可能会导致应用程序终止的错误 ERROR 错误:输出错误,但是应用程序继续运行 WARN 警告:输出可能潜在的危险状况 INFO 信息:输出应用运行过程中的详细信息 DEBUG 调试:输出更细致的对调试应用有用的信息 TRACE 跟踪:输出更细致的程序运行轨迹 ...原创 2021-05-10 22:18:21 · 123 阅读 · 0 评论 -
偶遇java.lang.NoClassDefFoundError问题
一 概述提示信息:org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: com/print/service/PrintUserServiceImpl$2关于怎么解决java.lang.NoClassDefFoundError错误_u013452335的博客-CSDN博客_java.lang.n原创 2021-05-08 16:49:06 · 177 阅读 · 0 评论 -
Java中实现Bean属性的拷贝
import org.springframework.beans.BeanUtils;/** * 将src中的非空属性复制给target * @param src * @param target */ public static void copyProperties(Object src, Object target) { BeanUtils.copyProperties(src, target, getNullPropertyN...原创 2021-04-12 14:47:14 · 184 阅读 · 0 评论 -
@Transational的使用
Spring团队的建议是你在具体的类(或类的方法)上使用 @Transactional 注解,而不要使用在类所要实现的任何接口上。你当然可以在接口上使用 @Transactional 注解,但是这将只能当你设置了基于接口的代理时它才生效。因为注解是 不能继承 的,这就意味着如果你正在使用基于类的代理时,那么事务的设置将不能被基于类的代理所识别,而且对象也将不会被事务代理所包装。因此,请接受Spring团队的建议并且在具体的类上使用 @Transactional 注解。可以在类或者方法上使用,不推荐在接口上使原创 2021-03-26 15:02:28 · 498 阅读 · 0 评论 -
回顾Spring中的循环依赖问题
一 概述根据循环依赖问题的流程图可知,当A类中包含B类的对象,B类中包含A类的对象,在对A和B进行创建,实例化以及初始化的时候会出现循环依赖的问题二 Spring解决循环依赖的方式Spring是将在A不存在的时候并不会去创建A,而是利用Spring提供的三级缓存来避免出现循环依赖。三 Spring中解决循环依赖的三级缓存源码分析待续...原创 2021-03-10 22:04:56 · 197 阅读 · 0 评论 -
回顾定时任务注解@Scheduled
一 概述@Scheduled注解是包org.springframework.scheduling.annotation中的一个注解,主要是用来开启定时任务。二 @Scheduled注解的源码@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Repeatable(Schedules.class)public @interface原创 2021-03-07 14:11:47 · 357 阅读 · 3 评论 -
pom文件project出错的问题
一 概述今天写项目的时候突然发现项目无论怎么写都会报错,无论怎么修改都没用,错误如下:二 错误情况分析我以为我换了本地仓库地址所以导致项目问题。按常理分析是不应该出现这个问题,抱着试一试的态度去解决,最后发现解决了,最后发现还真的解决了。对比发现之前本地maven仓库地址D:\maven\jar\.m2\repository\org\springframework\boot目录下内容与修改后的仓库D:\apache-maven-3.6.3\maven\jar\.m2\reposi原创 2020-10-06 18:26:13 · 1899 阅读 · 0 评论 -
JavaWeb会话技术之Session
一 概述当浏览器第一次给服务器发送请求时会建立一次会话,直到一方断开为止,一次会话一般包含多次请求和响应。主要作用时保证在这次会话的范围内实现数据的共享。实现的方式有:1.客户端会话:Cookie;2. 服务端会话:Session;二 会话之服务端会话——Sessionsession为服务端会话技术,在一次会话的多次请求之间共享数据,将数据保存在服务器端的HttpSession对象中。服务端会话的实现:获取HttpSession对象public class SessionAcc原创 2020-05-12 21:18:41 · 336 阅读 · 0 评论 -
JavaWeb会话技术之Cookie
一 概述当浏览器第一次给服务器发送请求时会建立一次会话,直到一方断开为止,一次会话一般包含多次请求和响应。主要作用时保证在这次会话的范围内实现数据的共享。实现的方式有:1.客户端会话:Cookie;2. 服务端会话:Session;二 会话之客户端会话——Cookie客户端会话技术——Cookie,主要是将共享数据保存在客户端。客户端会话的实现:发送数据:public class CookieSend extends HttpServlet { protected vo原创 2020-05-12 20:25:07 · 163 阅读 · 0 评论 -
Servlet概述
Servlet是JavaWeb三大组件之一,它也是最基础的组件,我们应该熟练的掌握它。其他两种:Filter(拦截器),Listener(观察者模式)。Servlet的作用:servlet就是server let的意思,是用来处理客户请求的。当用户端发出请求后,有Tomcat去找到可以处理这一请求的Servlet来处理。如图:我们在浏览器发出请求,而servlet组件就会在执行后返回相应的响应。如...原创 2018-03-11 16:25:15 · 195 阅读 · 0 评论 -
c/s模式的优势
c/s模式的优势在于其需要加载的页面在用户端,只是从服务端获取数据,这样设计的软件运行和更新的比较快。原创 2018-03-07 23:01:20 · 3318 阅读 · 0 评论 -
回顾ApplicationContext接口的类体系结构与源码
一 概述ApplicationContext是BeanFactory的子接口,也被称为应用上下文,是一种常用的Spring核心容器。它是由org.springframework.context.ApplicationContext接口定义,不仅包含了BeanFactory的所有功能,还添加了对国际化,资源访问,事件传播等方面的支持。二 ApplicationContext的类体系架构架构一架构二根据类体系架构图可知,ApplicationContext接口是由BeanFactor原创 2021-02-24 13:01:10 · 287 阅读 · 0 评论 -
回顾BeanFactory接口的类体系结构与源码
一 概述BeanFactory是org.springframework.beans.factory.BeanFactory接口定义,是基础类型的IOC容器(实现控制反转),他提供了完整的IOC服务支持。简言之,BeanFactory就是一个管理Bean的工厂,它主要负责初始化Bean,并调用它的生命周期方法。Spring是通过BeanFactory实例化,配置和管理Bean。二 BeanFactory的类体系结构根据BeanFactory的类体系结构可知,BeanFactory作为.原创 2021-02-24 12:30:14 · 151 阅读 · 0 评论 -
回顾BeanFactory和ApplicationContext的区别
一 概述Spring框架的主要功能是通过其核心容器来完成的,Spring中的两大核心容器为BeanFactory和ApplicationContext。二 基础IOC容器之BeanFactoryBeanFactory是org.springframework.beans.factory.BeanFactory接口定义,是基础类型的IOC容器(实现控制反转),他提供了完整的IOC服务支持。简言之,BeanFactory就是一个管理Bean的工厂,它主要负责初始化Bean,并调用它的生命周期方法。原创 2021-02-21 18:04:09 · 144 阅读 · 0 评论 -
SpringMVC的工作流程
一 概述SpringMVC是Spring提供的一个实现了Web MVC设计模式Web MVC设计模式轻量级Web框架。二 SpringMVC的特点SpringMVC为Spring框架的一部分,可以方便地利用Spring提供的其他功能。 灵活性强,易于与其他框架集成。 提供了一个前端控制器DispatcherServlet,使开发人员无须额外开发控制器对象。 可自动绑定用户输入,并能正确的转换数据类型。 内置了常见的校验器,可以校验用户输入。如果校验不能通过,那么就会重定向到输入表单。原创 2020-10-08 23:46:41 · 2304 阅读 · 0 评论 -
我所知道的Spring中的Bean
一 概述Spring可以看作一个大型工厂,这个工厂的作用就是生产和管理Spring容器中的Bean。二 Bean的作用域作用域名称 说明 singleton(单例) Spring容器中默认的作用域,使用它定义的Bean在Spring容器中将只有一个实例,即无论有多少个Bean引用它,始终指向同一个对象。 prototype(原型) 每次通过Spring容器获取的prototype定义的Bean时,容器都将创建一个新的Bean实例。 request 在一次Htt原创 2020-09-29 13:19:47 · 166 阅读 · 0 评论 -
Spring,SpringMVC父子容器配置事务管理问题
一 概述在整合Spring和SpringMVC的时候,我们需要通过Spring的位置文件applicatonContext.xml对代码逻辑层事务管理进行配置,即对Service层方法进行AOP增强或事务管理配置。但是奇怪的是,当Controller层使用了Service层的方法的时候配置的事务会失效。二 配置失效的原因其实Spring容器同SpringMVC容器存在着父子容器关系,Spring作为父容器,SpringMVC作为子容器。父容器是不允许访问子容器的,而子容器却可以访问父容器。故在配原创 2020-09-03 15:25:28 · 426 阅读 · 2 评论