spring
文章平均质量分 75
spring 学习笔记记录
我是小水水啊
静
展开
-
@RestController 注解网页返回 [] ,出现的bug
在父工程写了一个包,在子工程也写了一个包,所有没有正常显示,在all 这一步,都有数据但是在网页上显示 []所有请认真观察包的问题!通过一步一步的查询是自己的。原创 2023-11-14 16:27:33 · 405 阅读 · 0 评论 -
SpringMVC执行流程
FrameworkServlet创建WebApplicationContext后,刷新容器,调用onRefresh(wac),此方法在DispatcherServlet中进行了重写,调用了initStrategies(context)方法,初始化策略,即初始化DispatcherServlet的各个组件。所在类:org.springframework.web.servlet.DispatcherServlet。如果成功获得HandlerAdapter,此时将开始执行拦截器的preHandler(…原创 2023-10-25 00:21:16 · 142 阅读 · 0 评论 -
注解配置SpringMVC
Spring3.2引入了一个便利的WebApplicationInitializer基础实现,名为AbstractAnnotationConfigDispatcherServletInitializer,当我们的类扩展了AbstractAnnotationConfigDispatcherServletInitializer并将其部署到Servlet3.0容器的时候,容器会自动发现它,并用它来配置Servlet上下文。使用配置类和注解代替web.xml和SpringMVC配置文件的功能。原创 2023-10-24 23:55:47 · 748 阅读 · 0 评论 -
SpringMVC 异常处理器
SpringMVC提供了一个处理控制器方法执行过程中所出现的异常的接口:HandlerExceptionResolverHandlerExceptionResolver接口的实现类有:DefaultHandlerExceptionResolver和SimpleMappingExceptionResolverSpringMVC提供了自定义的异常处理器SimpleMappingExceptionResolver,使用方式:</</</</</原创 2023-10-24 23:53:09 · 420 阅读 · 0 评论 -
SprringMVC拦截器
preHandle()返回false和它之前的拦截器的preHandle()都会执行,postHandle()都不执行,返回false的拦截器之前的拦截器的afterComplation()会执行。preHandle:控制器方法执行之前执行preHandle(),其boolean类型的返回值表示是否拦截或放行,返回true为放行,即调用控制器方法;preHandle()会按照配置的顺序执行,而postHandle()和afterComplation()会按照配置的反序执行。原创 2023-10-24 23:50:58 · 279 阅读 · 0 评论 -
springMVC 文件上传和下载
SpringMVC中将上传的文件封装到MultipartFile对象中,通过此对象可以获取文件相关信息。使用ResponseEntity实现下载文件的功能。文件上传要求form表单的请求方式必须为。原创 2023-10-24 20:09:19 · 376 阅读 · 0 评论 -
SpringMVC 报文信息转换器(HttpMessageConverter)
(2)在SpringMVC的核心配置文件中开启mvc的注解驱动,此时在HandlerAdaptor中会自动装配一个消息转换器:MappingJackson2HttpMessageConverter,可以将响应到浏览器的Java对象转换为Json格式的字符串。RequestEntity封装请求报文的一种类型,需要在控制器方法的形参中设置该类型的形参,当前请求的请求报文就会赋值给该形参,可以通过getHeaders()获取请求头信息,通过getBody()获取请求体信息。(1)导入jackson的依赖。原创 2023-10-24 19:47:21 · 431 阅读 · 0 评论 -
SpringMVC 资源状态转移RESTful
ReStateTransfer,表现层资源状态转移。原创 2023-10-24 19:16:50 · 320 阅读 · 0 评论 -
SpringMVC的视图
当控制器方法中所设置的视图名称以"redirect:"为前缀时,创建RedirectView视图,此时的视图名称不会被SpringMVC配置文件中所配置的视图解析器解析,而是会将前缀"redirect:"去掉,剩余部分作为最终路径通过重定向的方式实现跳转。当控制器方法中所设置的视图名称没有任何前缀时,此时的视图名称会被SpringMVC配置文件中所配置的视图解析器解析,视图名称拼接视图前缀和视图后缀所得到的最终路径,会通过转发的方式实现跳转。SpringMVC视图的种类很多,默认有转发视图和重定向视图。原创 2023-10-24 16:57:40 · 241 阅读 · 0 评论 -
Spring 域对象共享数据
首页</</</</</</</原创 2023-10-22 02:37:58 · 255 阅读 · 0 评论 -
SpringMVC获取请求参数
在控制器方法的形参位置,设置和请求参数同名的形参,当浏览器发送请求,匹配到请求映射时,在DispatcherServlet中就会将请求参数赋值给相应的形参。可以在控制器方法的形参位置设置一个实体类类型的形参,此时若浏览器传输的请求参数的参数名和实体类中的属性名一致,那么请求参数就会为此属性赋值。若请求所传输的请求参数中有多个同名的请求参数,此时可以在控制器方法的形参中设置字符串数组或者字符串类型的形参接收此请求参数。value:指定为形参赋值的请求参数的参数名。这里除了是中文的都映射成功了。原创 2023-10-22 02:10:30 · 1046 阅读 · 0 评论 -
Spring 解决获取请求参数的乱码问题
解决获取请求参数的乱码问题,可以使用SpringMVC提供的编码过滤器CharacterEncodingFilter,但是必须在web.xml中进行注册。SpringMVC中处理编码的过滤器一定要配置到其他过滤器之前,否则无效。原创 2023-10-22 02:10:07 · 265 阅读 · 0 评论 -
Spring 路径与占位符
:表示任意的单个字符:表示任意的0个或多个字符\**:表示任意的一层或多层目录注意:在使用**时,只能使用/**/xxx的方式1.测试</?的占位符可以代替一个任意的占位符 除了/ 等特殊的网址占位符2.测试*</可以代替表示任意的0个或多个字符,特殊的网页字符除外3.测试\**</原创 2023-10-22 00:42:30 · 252 阅读 · 0 评论 -
Spring_@RequestMapping注解
若当前请求的请求地址满足请求映射的value属性,但是请求方式不满足method属性,则浏览器报错405:Request method ‘POST’ not supported。@RequestMapping注解的method属性是一个RequestMethod类型的数组,表示该请求映射能够匹配多种请求方式的请求。@RequestMapping注解的value属性是一个字符串类型的数组,表示该请求映射能够匹配多个请求地址所对应的请求。原创 2023-10-22 00:27:47 · 188 阅读 · 0 评论 -
SpringMVC(第一个项目HelloWorld))
浏览器发送请求,若请求地址符合前端控制器的url-pattern,该请求就会被前端控制器DispatcherServlet处理。前端控制器会读取SpringMVC的核心配置文件,通过扫描组件找到控制器,将请求地址和控制器中@RequestMapping注解的value属性值进行匹配,若匹配成功,该注解所标识的控制器方法就是处理请求的方法。处理请求的方法需要返回一个字符串类型的视图名称,该视图名称会被视图解析器解析,加上前缀和后缀组成视图的路径,通过Thymeleaf对视图进行渲染,最终转发到视图所对应页面。原创 2023-10-21 21:10:35 · 911 阅读 · 1 评论 -
spring 提前编译:AOT
JIT与AOT的区别JIT和AOT 这个名词是指两种不同的编译方式,这两种编译方式的主要区别在于是否在“运行时”进行编译(1)JIT, Just-in-time,动态(即时)编译,边运行边编译;在程序运行时,根据算法计算出热点代码,然后进行 JIT 实时编译,这种方式吞吐量高,有运行时性能加成,可以跑得更快,并可以做到动态生成代码等,但是相对启动速度较慢,并需要一定时间和调用频率才能触发 JIT 的分层机制。JIT 缺点就是编译需要占用运行时资源,会导致进程卡顿。原创 2023-10-19 02:18:06 · 145 阅读 · 0 评论 -
Spring 数据校验:Validation
在开发中,我们经常遇到参数校验的需求,比如用户注册的时候,要校验用户名不能为空、用户名长度不超过20个字符、手机号是合法的手机号格式等等。如果使用普通方式,我们会把校验的代码和真正的业务处理逻辑耦合在一起,而且如果未来要新增一种校验逻辑也需要在修改多个地方。而spring validation允许通过注解的方式来定义对象校验规则,把校验和业务逻辑分离开,让代码编写更加方便。Spring Validation其实就是对Hibernate Validator进一步的封装,方便在Spring中使用。原创 2023-10-19 02:05:27 · 720 阅读 · 0 评论 -
Spring 国际化:i18n
国际化也称作i18n,其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数。由于软件发行可能面向多个国家,对于不同国家的用户,软件显示不同语言的过程就是国际化。通常来讲,软件中的国际化是通过配置文件来实现的,假设要支撑两种语言,那么就需要两个版本的配置文件。原创 2023-10-19 01:51:24 · 420 阅读 · 0 评论 -
spring 资源操作:Resources
Java的标准java.net.URL类和各种URL前缀的标准处理程序无法满足所有对low-level资源的访问,比如:没有标准化的 URL 实现可用于访问需要从类路径或相对于 ServletContext 获取的资源。并且缺少某些Spring所需要的功能,例如检测某资源是否存在等。而Spring的Resource声明了访问low-level资源的能力。该接口实现类的实例可以获得一个Resource实例。该接口实现类的实例将获得一个ResourceLoader的引用。原创 2023-10-19 01:39:57 · 381 阅读 · 0 评论 -
Spring 事务
什么是事务的传播行为?在service类中有a()方法和b()方法,a()方法上有事务,b()方法上也有事务,当a()方法执行过程中调用了b()方法,事务是如何传递的?合并到一个事务里?还是开启一个新的事务?这就是事务传播行为。原创 2023-10-19 01:25:02 · 359 阅读 · 0 评论 -
Spring测试类
JUnit4在公司也会经常用到,在此也学习一下。原创 2023-10-19 00:51:14 · 193 阅读 · 0 评论 -
面向切面:AOP
AOP(Aspect Oriented Programming)是一种设计思想,是软件设计领域中的面向切面编程,它是面向对象编程的一种补充和完善,它以通过预编译方式和运行期动态代理方式实现,在不修改源代码的情况下,给程序动态统一添加额外功能的一种技术。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。作用简化代码:把方法中固定位置的重复的代码抽取出来,让被抽取的方法更专注于自己的核心功能,提高内聚性。原创 2023-10-18 01:34:49 · 181 阅读 · 0 评论 -
手写ioc
我们通过注解的形式加载bean与实现依赖注入bean注解。原创 2023-10-17 01:48:08 · 209 阅读 · 0 评论 -
Spring6注解管理Bean
Spring 提供了以下多个注解,这些注解可以直接标注在 Java 类上,将它们定义成 Spring Bean。注解说明@Component该注解用于描述 Spring 中的 Bean,它是一个泛化的概念,仅仅表示容器中的一个组件(Bean),并且可以作用在应用的任何层次,例如 Service 层、Dao 层等。使用时只需将该注解标注在相应类上即可。该注解用于将数据访问层(Dao 层)的类标识为 Spring 中的 Bean,其功能与 @Component 相同。@Service。原创 2023-10-13 17:24:18 · 180 阅读 · 0 评论 -
Spring6 - ioc
FactoryBean是Spring提供的一种整合第三方框架的常用机制。和普通的bean不同,配置一个FactoryBean类型的bean,在获取bean的时候得到的并不是class属性中配置的这个类的对象,而是getObject()方法的返回值。通过这种机制,Spring可以帮我们把复杂组件创建的详细过程和繁琐细节都屏蔽起来,只把最简洁的使用界面展示给我们。将来我们整合Mybatis时,Spring就是通过FactoryBean机制来帮我们创建SqlSessionFactory对象的。原创 2023-10-13 14:22:16 · 118 阅读 · 0 评论 -
spring6使用启用Log4j2日志框架
在项目开发中,日志十分的重要,不管是记录运行情况还是定位线上问题,都离不开对日志的分析。日志记录了系统行为的时间、地点、状态等相关信息,能够帮助我们了解并监控系统状态,在发生错误或者接近某种危险状态时能够及时提醒我们处理,同时在系统产生问题时,能够帮助我们快速的定位、诊断并解决问题。是一个开源的日志记录组件,使用非常的广泛。在工程中以易用方便代替了 System.out 等打印语句,它是JAVA下最流行的日志输入工具。Log4j2主要由几个重要的组件构成:(1)日志信息的优先级。原创 2023-10-12 21:16:06 · 264 阅读 · 1 评论 -
spring6项目搭建(入门)
Map<String,BeanDefinition> , 其中 String是Key , 默认是类名首字母小写 , BeanDefinition , 存的是类的定义(描述信息) , 我们通常叫BeanDefinition接口为 : bean的定义对象。Spring容器加载到Bean类时 , 会把这个类的描述信息, 以包名加类名的方式存到beanDefinitionMap 中,ean对象最终存储在spring容器中,在spring源码底层就是一个map集合,存储bean的map在。点击 Create 完成。原创 2023-10-12 15:51:40 · 300 阅读 · 0 评论