
Spring相关总结
文章平均质量分 76
Spring相关总结
你好像很好吃a
吃不了自律的苦,就要吃平庸的苦。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spring @Async注解【总结记录】
从Spring3开始提供了@Async注解,用于异步方法调用,调用者将在调用时立即返回,方法的实际执行将提交给Spring TaskExecutor的任务中,由指定的线程池中的线程执行。该注解可以被标注在类或方法(通常是Service层的方法)上,用于实现方法的异步执行,当被标注在类上时表明类中的所有方法都被指定的异步执行器执行。原创 2024-08-20 18:00:49 · 1689 阅读 · 0 评论 -
@Configuration注解使用详解【记录】
@Configuration类在Spring中既充当配置信息的角色,又作为容器中的一个Bean存在,其作用是提供一个灵活且强大的方式来定义和组装Spring Bean,使得Spring的配置更加灵活和方便。原创 2024-05-23 21:48:00 · 6499 阅读 · 0 评论 -
Spring 的缓存机制【记录】
在最近的业务需求开发过程中遇到了“传说中”的循环依赖问题,在之前学习Spring的时候经常会看到Spring是如何解决循环依赖问题的,所谓循环依赖即形成了一个环状的依赖关系,这个环中的某一个点产生不稳定变化都会导致整个链路产生不稳定的变化;此外循环依赖还会导致应用程序启动失败、内存溢出、甚至出现一些难以排查的问题,于是便系统性的对该问题进行学习和总结并整理文章如下。原创 2023-12-11 17:38:07 · 5032 阅读 · 0 评论 -
从头到尾说一次Spring事务管理(器)【学习记录】
## Spring事务管理解决了什么问题?Spring提供的事务管理可以帮我们管理事务相关资源,比如JDBC的Connection、Hibernate的Sesssion、MyBatis的SqlSession。如说上面的Connection绑定到ThreadLocal来解决共享一个事物的这种方式,Spring事物管理就已经帮我们做好了。原创 2023-10-24 21:08:35 · 8901 阅读 · 0 评论 -
Spring AOP【学不会今天不睡觉】
今天面试被问到AOP的细节,有点东西模棱两可,今天晚上必须彻底搞定它!!!一、对AOP初印象: 1、什么是AOP?AOP(Aspect Oriented Programming),面向切面思想,是Spring的三大核心思想之一(另外两个:IOC-控制反转,DI-依赖注入)。来自百度:AOP通过预编译的方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务的各个原创 2022-05-09 22:50:35 · 473 阅读 · 0 评论 -
main方法里使用@Autowired注解报空指针错误【记录】
main方法里使用@Autowired注解报空指针错误1、创建IB接口:package com.ms.demo;import org.springframework.stereotype.Service;@Servicepublic interface IB { void f1();}2、创建B类实现IB接口:package com.ms.demo;public class B implements IB{ public B(){ System.o原创 2022-05-08 10:21:42 · 2688 阅读 · 0 评论 -
spring 中Mapper为什么不用注入,而且mapper用resource注解来进行依赖注入?【记录】
springboot已经把所有mapper全部注入到ioc容器中去了,注入的类型是mapperFactoryBean这个工厂bean,它的 id就是mapper接口的小写;在依赖注入mapper类型的时候,不能用 byType注入,因为mapper的Type是mapperFactoryBean与Mapper接口类型不匹配,只能byName注入;所以选择@Resource注入,如果不指定name或type,那么@Resource默认按照byName注入,此时的name就是字段的变量名,不是类型的小写,所.原创 2022-05-08 09:32:01 · 1762 阅读 · 0 评论 -
SpringMVC中的@ControllerAdvice注解【记录】
@ControllerAdvice注解,是一个增强注解,用于简化我们的工作,需要注意的是,这是SpringMVC提供的功能,但在SpringBoot 中可以直接使用,下面分别来看。该注解主要有三种使用场景:全局异常处理全局数据绑定全局数据预处理1、全局异常处理: 使用@ControllerAdvice实现全局异常处理,只需要自定义类,添加该注解即可,用法如下:(可以看下该注解的底层,添加该注解以后,该类就会被注册成一个bean到ioc容器中,实现初始化)@ControllerAdvic.原创 2021-05-17 23:21:02 · 526 阅读 · 0 评论 -
SpringMVC中的@RequestHeader与@CookieValue注解【记录】
@RequestHeader以及@CookieValue注解用法类似,二者属性和用法都与@RequestParam注解相同:@RequestHeader注解主要是将请求头的信息区数据映射到Controller方法参数上;@CookieValue注解主要是将请求的Cookie数据,映射到Controller方法参数上;@RequestHeader与@CookieValue注解属性相同:required:表示是否必须,默认为true(如果使用了该注解,required为true,接收不到该值.原创 2021-05-17 20:12:54 · 435 阅读 · 0 评论 -
SpringMVC中的@RequestParam与@RequestBody注解【记录】
@RequestParam和@RequestBody注解都可以在后台接收参数,但是使用场景不一样:1、@RequestParam使用场景:标注于controller的方法参数上,同一个方法可以使用多个@RequestParam注解;@RequestParam注解接收的参数是来自requestHeader(请求头),用来处理Content-type为application/x-www-form-urlencoded编码的内容(Content-type默认为该属性);通常用于get请求(因为get请原创 2021-05-17 18:33:51 · 434 阅读 · 0 评论 -
SpringMVC中的@ResponseBody注解【记录】
@ResponseBody注解:@ResponseBody注解表示将controller方法的返回结果通过适当的转换器转换为指定的格式后,直接写入HTTP响应正文(responseBody)中;通常用来返回JSON/XML数据,一般在异步获取数据时使用,通常是在HTTP响应正文中(和request header中的accept配合,可以将java对象转换为对应的xml或json);通常使用@RequestMapping注解后,返回得值通常解析为跳转路径,而在使用此注解后不会再走视图处理器,而是直接.原创 2021-05-17 16:29:08 · 391 阅读 · 0 评论 -
SpringMVC中处理模型数据的几种方式【记录】
SpringMVC提供了以下几种途径输出模型数据:ModelAndView:处理方法返回值类型为ModelAndView时,方法体即可通过该对象添加模型数据;Model、ModelMap及Map:入参为org.springframeword.ui.Model、org.springframeword.ui.ModelMap或java.util.Map时,处理方法返回时,Map中的数据会自动添加到模型中;@SessionAttribute:将模型中的某个属性暂存到HttpSession中,以便多个请求.原创 2021-05-11 22:48:44 · 613 阅读 · 3 评论 -
SpringMVC中的@SessionAttributes注解【详解】
在默认情况下,当ModelMap中的属性作用域是request级别时,也就是说,当本次请求结束后,ModelMap中的属性将销毁。如果希望在多个请求中共享ModelMap中的属性,必须将其属性转存到session中,这样ModelMap的属性才会被跨请求访问;spring允许我们有选择地指定ModelMap中的哪些属性需要转存到session中,以便下一个请求属对应的ModelMap的属性列表中还能访问到这些属性。注意:这里所说的将ModelMap中的属性转存Seesion中,不单单指Mode.原创 2021-05-08 19:47:00 · 6153 阅读 · 3 评论 -
SpringMVC中的@ModelAttribute注解【详解】
SpringMVC中@ModelAttribute是一个重要的属性,理解好它是用好自动封装等功能的基础。可是@ModelAttribute和@RequestMapping组合后的状况较多,很容易让人糊涂。1、如果想向Model中绑定对象属性:例:一个没有使用@ModelAttribute注解的Controller方法:@RequestMapping("/hello") public String hello(User user) { user.setId(520); user.s.原创 2021-05-07 15:48:15 · 8417 阅读 · 1 评论 -
SpringMVC中的@InitBinder注解【记录】
一、Spring请求参数绑定流程:1、请求参数绑定流程:我们在开发的时候,经常会从html,jsp中将请求参数通过request对象传递到后台,可是经常会遇到这么一种情况,那就是传过来的数据到后台后,还要再组装成一种对象的格式。2、Spring中请求参数绑定:Spring可以自动将request中的请求参数数据绑定到对象的每个property上,但是只会绑定一些简单数据类型(比如Strings,int,float)到对应的对象中。可是如果面对复杂的对象,那就要借助PropertyEditor接口来原创 2021-04-28 23:15:51 · 4760 阅读 · 5 评论 -
SpringMVC中的@RequestMapping注解【详解】
RequestMapping注解:RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上,用于类上,表示类中所有的响应请求的方法都是以该地址作为父路径。@Controller@RequestMapping("/mvc")public class HelloWorldController { @RequestMapping(method = RequestMethod.GET, value = "hello") public String hello(M.原创 2019-09-24 14:51:02 · 1176 阅读 · 0 评论 -
Spring 代理模式【静态代理】 实例
一个静态代理的实例,用于理解代理模式;1、业务实例:创建一个接口实现简单的增删改查:创建一个实现类,继承上面接口,实现具体的方法:创建一个测试类:调用实现类实现方法;2、如果现在增加需求,要在每次调用方法的时候打印日志:如果不是用代理模式,需要修改源代码,并且在实现类中每个方法上都要加上日志的代码,如果一个接口存在多个实现类,每个实现类存在多个方法,那么要改动的代码量将是巨大的;这时,我们使用代理模式,在不改动源代码的基础上,增加日志功能:首先,增加一个代理类:在.原创 2020-11-09 22:32:27 · 349 阅读 · 0 评论 -
Spring回顾【四】代理模式
为什么学习代理模式:因为这就是SpringAOP的底层!【SpringAOP和SpringMVC】Spring代理模式的分类:静态代理 和 动态代理;1.静态代理:角色分析:抽象角色:一般会使用接口或抽象类来解决(类似于房东);真实角色:被代理的角色;(类似于租户)代理角色:代理真是角色,代理真实角色后,我们一般会做一附属操作;(类似于中介)客户:访问代理对象的人;...原创 2020-11-09 22:00:49 · 301 阅读 · 0 评论 -
Spring回顾 【三】用Java的方式配置Spring
spring中常用的注解实现:之前整理过:链接使用Java的方式配置spring:1.我们现在可以完全不使用spring的xml配置,全权交给Java来做!2.JavaConfig是spring的一个子项目,在spring4之后,它成为了一个核心功能!例子:使用JavaConfig:我自己写了一个小demo,直接把截图贴在下面:(首先看目录结构)1、首先导入依赖:2、创建实体类User:3、创建配置类:SpringConfig4、创建测试类:MyTest.原创 2020-11-08 21:13:11 · 258 阅读 · 2 评论 -
Spring回顾 【二】spring自动装配
2020年10月31日:Bean的自动装配:自动装配是spring满足bean依赖的一种方式;spring会在上下文中自动寻找,并自动给bean装配属性。在spring中有三种自动装配的方式:1.在xml中显示的装配;2.在java中显示装配;3.隐式的自动装配bean【重点】。spring自动装配的方式:在bean中添加autowire属性,参数值:1.byName:spring容器会自动在容器上下文中查找,和自己对象set方法后面值对应的beanid(如果不满足即上下文中,没有对应的原创 2020-11-04 21:26:46 · 305 阅读 · 0 评论 -
Spring回顾 【一】Spring总结笔记
下面是我上下班在地铁无聊时看视频记录在手机上的笔记,记录一下也方便后续查看:2020年10月26日:spring容器创建对象有两种方式:1、一种是无参构造,使用bean和property标签(依赖于set注入方式,依赖注入默认使用的就是set方式注入);2、 另一种是有参构造创建对象:a.构造器方式注入:使用bean和construct-args标签,有三种获取参数的方式,第一种在construct-args标签中通过参数名称name属性name="age"获取,第二种通过参数类型type属性t原创 2020-11-03 22:28:36 · 423 阅读 · 0 评论 -
Spring @Autowired注解使用的自动装配方式
spring中@Autowired注解自动装配的方式:spring的@Autowired注解默认使用的是byType的方式向bean里面注入相应的bean,可是在多个实现类的时候,byType的方式不再唯一(因为类型相同,IOC不知道去注入哪个实现类),这时需要通过byName的方式来注入,而这个name默认就是根据变量名来的。注意:可以通过@Qualifier注解来指明使用哪一个实现类,实际上也是通过byName的方式实现。(什么意思呢?看下面例子)情况一:首先是向People中注入一个D原创 2020-11-06 19:59:29 · 1084 阅读 · 0 评论 -
SpringMVC的异常处理(附代码)
一、Java中的异常体系:(图片来源于网络)1、在这些异常中,RuntimeException及其子孙类异常,在Java语法中并不必须处理,主要原因有:这些异常出现的频率可能非常高,如果一定要处理,例如:try...catch,则几乎所有的代码都需要放在try代码块中,并且,这些异常是可以杜绝的异常,通过严谨的编程,可以保证这些异常绝不会出现!2、处理异常有两种方式:使用try...catc...原创 2019-10-16 10:00:56 · 357 阅读 · 0 评论 -
SpringMVC中乱码问题(汇总)
一、表单提交时,表单包含中文参数值,提交后产生乱码:1、产生乱码的原因:提交表单时,浏览器会对表单中的中文参数值进行编码,比如:使用utf-8来编码,服务器端默认会使用iso-8859-1来解码,所以会产生乱码。注:浏览器会按照打开该表单所在页面时的字符集来编码。<meta charset="UTF-8">2、解决方法:(通常,在Java EE项目中,解决问题的方式)a. p...原创 2019-10-15 14:30:14 · 678 阅读 · 0 评论 -
pom.xml、web.xml、springmvc.xml配置文件分别都配置什么?(通俗易懂)
前言:使用SpringMVC框架虽然使用注解可以免去我们很多的配置,但是光使用注解是不能完全取代所有的配置问价的,使用SpringMVC主要有三种配置文件,pom.xml、web.xml、springmvc.xml三种,下面我们分别说一下三种配置文件主要配置哪些内容。1、pom.xml文件:pom.xml文件严格来说应该说是Maven的配置文件,该配置文件主要的目的是通过配置依赖的形式来让m...原创 2019-10-15 11:24:06 · 4601 阅读 · 0 评论 -
相对路径和绝对路径(带例子,详解)
一、路径问题:在SpringMVC中可能涉及路径问题的地方。//链接、表单提交、重定向和转发如何填写相应的路径。<a href=""></a><form action="">response.sendRedirect("")request.getRequestDispatcher("")(1):什么是相对路径?不以" / "开头的路径。(2...原创 2019-10-14 11:14:16 · 18921 阅读 · 2 评论 -
什么是MVC?
1.MVC是什么?是一种软件架构思想,其核心思想是,在设计一个软件的时候,应该将软件划分成模型、视图、控制器这三种不同类型的模块。其中,模块负责数据处理(业务逻辑),视图负责数据展示(表示逻辑),控制器负责协调模型和视图。注:视图将请求发送给控制器,由控制器选择对应的模型来处理;模型返回的结果也要给控制器,由控制器选择对应的视图来展示。2.如何使用MVC?在开发一个web应用时,我们可以...原创 2019-10-09 12:03:51 · 620 阅读 · 0 评论 -
Spring的用法(详解)
1.Spring(1)Spring是什么?是一个轻量级的、用来简化企业级应用开发的开发框架。注:a.简化开发:Spring对常用的api做了简化,比如,使用Spring jdbc来访问数据库,就不用再考虑如何获取链接、关闭链接、处理异常等等。b.解耦:Spring容器(Spring框架的一个模块)帮我们管理对象(包括对象的创建及对象之间的依赖关系),这样一来,对象之间的耦合度会大大降低,...原创 2019-10-10 11:09:58 · 2794 阅读 · 2 评论 -
Spring常用注解
1.Spring作用创建和管理对象,使得开发过程中,可以不必使用new关键字创建对象,而是直接获取对象!并且,还可以通过一些配置,使得某些获取到的对象其中某些属性已经被赋值的。2.Spring注解在Spring中,定义了一列的注解,可以取代几乎所有的XML配置。尽管使用注解可以完成此前的许多配置,但是,基于Spring的项目仍需Spring的配置文件。2.1. 常用注解使用注解...原创 2019-10-09 17:35:10 · 394 阅读 · 0 评论 -
SpringMVC Controller接收请求参数(详解)
一、接收请求参数:1、【不推荐】通过HttpServletRequest在处理请求的方法中,添加HttpServletRequest对象作为参数,在方法体中,直接调用对象的getParameter()或类似功能的方法,即可获取请求参数。例:比如我们通过页面上传username、password、age…等几个参数,然后我们使用HttpServletRequest对象进行获取。@Reques...原创 2019-10-12 14:47:57 · 1393 阅读 · 0 评论 -
Spring的IOC和DI(带例子,超级详解)
1、什么是IOC?(Inversion Of Controll 控制反转)控制反转是面向对象编程中的一种设计原则,可以用来降低计算机代码之间的耦合度,其中最常见的方式是依赖注入,还有一种方式是依赖查找(Dependency Lookup),通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其依赖的对象的引用传递给它,也可以说,依赖被注入到对象中。(取自百度百科https:...原创 2019-10-10 13:07:15 · 3164 阅读 · 4 评论 -
SpringMVC的核心组件
SpringMVC框架:1.作用: 解决了V-C交互问题,即试图与控制器的交互问题。解释:在原生的JavaEE技术中,使用Servlet作为项目中的控制器,用于接收用户的请求,并给予响应结果。这种做法最大的问题在于:在常规的做法中,每个Servlet对应一个请求路径,例如:LoginServlet处理login.do的请求,而RegisterServlet成功优酷register.do的请...原创 2019-10-09 10:24:00 · 1315 阅读 · 0 评论 -
使用SpringMVC创建第一个项目HelloWorld
SpringMVC-HelloWorldEclipseSpringMVCMavenTomcat1.创建项目:创建Maven Project,勾选Create a simple project,然后,GroupId值为cn.tedu.spring,Artifact Id值为SPRINGMVC-01-HELLOWORLD,Package选择war:(名称可以自己随便定义)接下来需...原创 2019-10-09 11:19:11 · 982 阅读 · 0 评论 -
SpringMVC 实现简单的注册登录功能(带拦截器)
一、前言:上一篇文章我们使用springMVC实现了一个简单的HelloWorld,这篇文章我们实现一个小的demo,使用springMVC实现简单的注册登录(带拦截器)功能。上一篇文章的链接:https://blog.csdn.net/weixin_44296929/article/details/102456000二、需求:1、创建新项目 SPRINGMVC-02-USER,2、要求...原创 2019-10-12 10:22:23 · 4092 阅读 · 7 评论 -
SpringMVC中的拦截器(Interceptor)
一. SpringMVC中的拦截器(Interceptor)下面是SpringMVC的流程图:(根据流程图我们看一下拦截器执行的位置)1.作用:拦截器是运行在DispatcherServlet之后,在每个Controller之前的,且运行结果可以选择放行或拦截!除此以外,拦截器还会运行在Controller之后,关于拦截器,在处理某一个请求时,最多有3次执行!只不过,通常关注最多的是第1次...原创 2019-10-12 17:46:59 · 1120 阅读 · 0 评论 -
SpringMVC 控制器的响应(转发、重定向)
一、常见的响应方式:1、重定向:1)什么是重定向?服务器通知浏览器向某个地址发送请求。注:服务器可以发送302状态码和Location消息头(该消息头的值是一个地址,一般称之为重定向地址)给浏览器,浏览器收到之后,会立即向重定向地址发送请求。2)如何重定向?response.sendRedirect(String url);注:url是重定向地址。容器在重定向之前,会清空r...原创 2019-10-12 17:14:46 · 1454 阅读 · 0 评论 -
添加数据库信息时抛出com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolatio异常
一:场景这里使用的是SpringMVC+Hibernate+Mysql:在向数据库中添加数据时抛出异常。这篇文章解决问题是次要的,而是我们每次看到问题时如何分析,如果解决,这个过程很重要。下面是我的异常:不重要的信息已经被我删除了HTTP状态500 –内部服务器错误类型异常报告消息请求处理失败;嵌套异常为javax.persistence.PersistenceException:o...原创 2019-09-26 16:25:09 · 1479 阅读 · 0 评论