
Spring
文章平均质量分 70
Java后台开发技术
谷哥的小弟
历任研发工程师,技术组长,项目经理;曾于2016年、2020年两度荣获CSDN年度十大博客之星。
十载寒冰,难凉热血;多年过去,历经变迁,物是人非。
然而,对于技术的探索和追求从未停歇。
坚持原创,热衷分享,初心未改,继往开来!
展开
-
SpringBoot框架名字的由来
在计算机启动时,BIOS/UEFI会执行一段称为“Bootloader(引导程序)”的代码。它的任务极其简单却至关重要:用最基础的指令,逐步加载更复杂的系统组件,最终启动完整的操作系统。这一过程被称为“Booting(引导)”,其本质是通过最小化的初始操作,触发系统的自我构建能力。原创 2025-05-10 10:42:20 · 1308 阅读 · 0 评论 -
Bean的实例化与Bean的装配
在Spring容器中,实例化是装配的前置条件,但装配过程并非独立于实例化存在。原创 2017-01-21 22:16:53 · 1263 阅读 · 2 评论 -
Spring整合MyBatis时@ComponentScan带来的误解
@ComponentScan("com.cn.mapper")的作用在于通过@ComponentScan注解扫描com.cn.mapper包及其子包。在扫描过程中,Spring 框架自动识别使用了@Component、@Service、@Repository 等注解的类,并将它们注册为 Spring 容器中的 Bean。原创 2022-06-02 19:15:00 · 978 阅读 · 0 评论 -
Spring MVC与原生Servlet API
Spring MVC是一个基于Servlet的Web框架,它通过封装和抽象Servlet原生API,为开发者提供了一个更加便捷、高效的Web应用开发环境。在Spring MVC框架中参数解析器ServletRequestMethodArgumentResolver和ServletResponseMethodArgumentResolver发挥着至关重要的作用,它们使得开发者能够在控制器方法的形参中注入与请求和响应相关的原生对象,如ServletRequest、MultipartRequest、HttpSes原创 2017-01-27 21:46:52 · 3018 阅读 · 0 评论 -
@Autowired注解详解与理解
@Autowired注解用于引用类型数据的自动注入。使用@Autowired时,Spring容器会自动查找并注入与所需类型匹配的Bean。默认情况下,@Autowired按照类型自动装配。此时,要求Spring容器中有且仅有一个合适的Bean为其赋值。但如果项目中有多个Bean可以赋值,则会发生错误。原创 2024-02-08 20:56:37 · 1542 阅读 · 0 评论 -
哪些Bean适合交由Spring管理
在利用框架技术进行项目开发时,控制层对象、业务层对象、持久层对象、工具类和配置类是可复用的,适合交由Spring容器管理。在Web应用程序中,控制层负责处理用户请求并返回响应。由于处理单个请求且不保留状态,这些对象通常是无状态的,交由Spring容器管理可确保请求映射、异常处理等配置的正确性。业务层通常封装应用程序的核心逻辑。由于它们通常无状态且生命周期与应用程序一致,因此也适合由Spring容器管理。持久层对象负责与数据库或其他数据存储系统交互,通常无状态,且其配置和事务管理可通过Spring容器简化。原创 2024-04-03 21:36:16 · 1060 阅读 · 0 评论 -
Bean的实例化与Bean的装配
Bean的装配是Spring框架中的核心概念之一,它指的是将Bean实例与其依赖关系进行组合和配置的过程,以确保Bean能够按照预期的方式工作。这个过程涵盖了Bean的整个生命周期管理,从实例化、依赖注入到初始化,再到最终的销毁。原创 2024-10-15 13:34:02 · 566 阅读 · 0 评论 -
Spring依赖注入推荐使用构造函数注入而非@Autowired
在Spring框架中,依赖注入(Dependency Injection, DI)是实现组件之间松耦合的关键技术。Spring支持多种依赖注入方式,其中构造函数注入和基于@Autowired注解的注入是两种常见的方法。然而,Spring官方以及许多经验丰富的开发者更倾向于推荐使用构造函数注入。接下来,我们将详细解释为什么构造函数注入是更好的选择,以及它与@Autowired注解注入之间的主要区别。原创 2024-09-30 00:45:00 · 1367 阅读 · 0 评论 -
ServletContainerInitializer接口详解
ServletContainerInitializer是Servlet 3.0规范中引入的一个接口,它的主要目的是允许开发者在Servlet容器(如Tomcat、Jetty等)启动时执行一些自定义的初始化代码。在过去,Servlet、Filter和Listener等Web组件通常需要在web.xml文件中进行静态配置,但有了ServletContainerInitializer接口,开发者就可以通过实现这个接口来动态地注册这些组件,而无需修改web.xml文件。/**/**原创 2024-09-30 00:30:00 · 753 阅读 · 0 评论 -
Servlet 3.0新特征
Servlet 3.0规范是在2009年随着Java EE 6的发布而推出的。它引入了一系列新特性和改进,旨在简化Web应用的开发和部署过程,并提高Web应用的性能和可扩展性。Servlet 3.0的发布标志着Java Web开发进入了一个新阶段,为开发者提供了更多灵活性和强大的功能支持。原创 2024-09-30 00:15:00 · 1084 阅读 · 0 评论 -
2022新版图文详解IDEA整合SSM框架(附源码)
本教程以图文形式详细讲解IDEA整合SSM框架的流程以及具体步骤及其注意事项。总体而言,利用IDEA搭建Maven工程并整合SSM框架的技术难度不大;但是需要注意的细节之处较多。所以,在整合过程中务必细致周到,考虑周全,富有耐心。原创 2022-04-13 21:00:22 · 12441 阅读 · 7 评论 -
2023新版图文详解SpringBoot整合SSM框架(附源码)
本教程以图文形式详细讲解SpringBoot整合SSM框架的流程以及具体步骤及其注意事项。总体而言,在IDEA中利用SpringBoot整合SSM框架的技术难度不大;但是需要注意的细节之处较多。所以,在整合过程中务必细致周到,考虑周全,富有耐心。原创 2022-05-12 22:02:45 · 7511 阅读 · 0 评论 -
Spring自动注入方法形参所需的对象
在MyBatisConfig类的sqlSessionFactoryBean方法中,定义了一个带有DataSource类型参数的Bean。当Spring容器需要创建这个SqlSessionFactoryBean类型的Bean时,它会查找已经注册的Bean,以找到一个匹配DataSource类型的Bean。由于之前已经在DataSourceConfig中定义并创建了一个DataSource类型的Bean,Spring会自动将这个Bean注入到sqlSessionFactoryBean方法的参数中。原创 2017-02-03 14:31:15 · 1534 阅读 · 1 评论 -
Postman常见使用图文详解
Postman是一款强大的接口测试工具,它支持HTTP协议的所有请求方式,包括GET、POST、HEAD、PUT、DELETE等。除了基本的HTTP请求功能,Postman还支持添加各种额外的头部字段,并且可以模拟普通表单数据以及文件、图片、视频等数据请求。此外,Postman还提供了丰富的功能来支持接口开发和测试的全流程。例如,它支持前端开发的Mock测试,后端开发的接口测试和开发接口文档,以及测试人员的接口测试。同时,Postman还支持云服务,可以实现数据的同步和团队协作。原创 2014-01-23 21:24:34 · 1671 阅读 · 0 评论 -
Spring MVC参数解析器
ServletRequestMethodArgumentResolver和ServletResponseMethodArgumentResolver为开发者在Spring MVC中处理HTTP请求和响应提供了极大的便利和灵活性。但在Spring MVC中,更推荐的做法是利用Spring MVC的高级抽象和封装功能。例如,通过使用@RequestParam注解获取请求中的参数,@PathVariable注解从URI中提取变量,@ModelAttribute注解实现数据绑定。这些高级特性的使用不仅使代码更加清晰原创 2024-04-08 19:24:17 · 1174 阅读 · 0 评论 -
Spring AOP小困惑
在Service层使用AOP是非常常见的,特别是用于事务管理和日志记录。例如,你可以使用AOP来确保Service层中的某些方法在执行时处于事务的上下文中。此外,通过在Service层应用AOP,你还可以轻松地添加性能监控、安全检查等。原创 2014-08-09 22:17:28 · 4780 阅读 · 1 评论 -
Spring整合MyBatis的疑难杂症
当配置类被加载时,Spring容器会进行Bean的初始化,例如SqlSessionFactoryBean和MapperScannerConfigurer的初始化。在该过程中,如果@Value注解所在的Bean还没有被完全初始化,则可能会导致注入的属性值为null从而造成空指针异常。原创 2023-04-17 00:15:00 · 334 阅读 · 0 评论 -
@Transactional使用细节
@Transactional注解可以作用于接口、接口方法、类以及类方法上。一般情况下,@Transactional注解使用在类上或类中的方法上;或者是接口上或接口中方法上,都可以实现事务功能。不过,有个细节问题需要注意,我们来看看官方文档的描述:原创 2024-04-01 02:15:00 · 736 阅读 · 0 评论 -
Logback日志框架常见配置
Logback是一个高性能、功能强大的日志框架,专为Java应用程序设计。它由Log4j的创始人Ceki Gülcü创建,并被视为Log4j的继承者和改进版。Logback提供了许多优于Log4j的特性,包括更快的执行速度、更低的内存占用以及更多的功能。原创 2024-04-01 00:45:00 · 367 阅读 · 0 评论 -
Spring MVC统一异常处理的小疑惑
统一异常处理机制在应用程序的较高层次设置一个或多个全局的异常处理器。这些处理器能够捕获并处理在应用程序运行过程中抛出的所有异常。原创 2017-03-06 00:02:49 · 2259 阅读 · 1 评论 -
AOP切入点表达式基本格式
execution(modifiers-pattern? ret-type-pattern declaring-type-pattern?name-pattern(param-pattern) throws-pattern?)原创 2024-03-28 20:15:00 · 273 阅读 · 0 评论 -
SSM项目分页功能开发
在利用Spring、Spring MVC和MyBatis进行项目开发时,数据的分页通常应该在Service层实现。这是因为分页逻辑往往与业务逻辑紧密相关,而Service层正是处理业务逻辑的地方原创 2016-02-28 20:37:26 · 2473 阅读 · 1 评论 -
SSM项目XML配置与配置类
applicationContext.xml是Spring框架的全局配置文件。 它用于配置和管理Spring容器中的各种bean、依赖注入、AOP、事务管理等。在这个文件中,可以定义Spring的bean,设置bean的属性,以及bean之间的依赖关系。 Spring容器会根据applicationContext.xml中的配置来创建和管理这些bean的生命周期。原创 2014-12-05 17:34:29 · 4193 阅读 · 0 评论 -
Spring MVC利用getServletFilters注册过滤器
在Spring MVC中,当你使用AbstractAnnotationConfigDispatcherServletInitializer类的getServletFilters方法来注册过滤器时,这些过滤器默认会应用于DispatcherServlet所处理的所有请求。DispatcherServlet通常是Spring MVC应用中的前端控制器,它负责处理进入应用的所有Web请求,并将这些请求分发给适当的控制器。原创 2016-09-18 17:19:35 · 5620 阅读 · 1 评论 -
Spring MVC与Filter的关系梳理
在Java的Web开发中,Servlet规范定义了一套标准,用于处理HTTP请求和生成HTTP响应。这个规范包括了许多组件,其中之一就是过滤器(Filter)。过滤器是一个可以拦截请求和响应的组件,它可以在请求到达Servlet之前或响应离开Servlet之后执行某些操作。其实,从这句话也可以看出来Filter和拦截器的区别。原创 2014-09-13 23:01:12 · 2122 阅读 · 1 评论 -
Spring MVC文件下载配置
在Spring MVC中ResponseEntity是一种特殊的返回类型,它提供了对HTTP响应的完全控制。当控制器方法返回一个ResponseEntity对象时,Spring MVC框架会识别这个对象,并将其自动转换为符合HTTP协议的响应消息。这包括设置HTTP状态码、响应头和响应体。使用ResponseEntity的好处是开发者不需要直接与底层的HttpServletResponse对象交互。相反,他们可以使用ResponseEntity的高级抽象来创建和定制HTTP响应。这使得代码更加简洁、易读和易原创 2024-03-17 16:19:26 · 809 阅读 · 0 评论 -
Spring MVC文件上传配置
在MultipartConfigElement的上下文中,文件大小阈值(fileSizeThreshold)具有特定的意义。这个阈值指定了在将上传的文件数据写入磁盘之前,数据应保持在内存中的最大字节数。换句话说,它定义了文件上传时内存使用和磁盘使用的分界点。当文件上传开始时,数据首先会被存储在服务器的内存中。如果上传的文件大小小于这个阈值,那么整个文件都会被保存在内存中,直到上传完成。这样可以提高小文件的上传速度,因为内存访问通常比磁盘访问要快得多。原创 2024-03-17 15:23:58 · 1406 阅读 · 0 评论 -
Spring IoC容器详解
Spring IoC容器是Spring框架的核心组件,它实现了控制反转(Inversion of Control,IoC)的设计原则。IoC是一种编程思想,它将原本由代码直接操控的对象调用权交给第三方(即Spring IoC容器)来控制,以解耦代码,提高程序的可维护性和可扩展性。原创 2024-02-20 22:02:54 · 1184 阅读 · 0 评论 -
Spring MVC拦截器的小疑惑
有的小伙伴在利用SSM进行项目开发时经常有个疑惑:拦截器工作在哪一层?应该在哪里配置拦截器?是在Spring配置文件中配置拦截器还是Spring MVC配置文件?其实,这个疑惑很容易解答。原创 2024-02-16 19:21:19 · 1131 阅读 · 0 评论 -
Spring框架@Bean注解
只有使用了@Component、@Controller 、@Service、@Repository等注解的类才会被纳入到Spring容器的管理。有的小伙伴很潇洒的说:那简答,我给需要使用的类上加上这些注解不就行了嘛。如果这些代码是你写的,倒是没有问题。但是,我们无法使用这些注解将第三方库的类装配到Spring容器中。因为,第三方库中的内容为只读模式,外界无法在其源码中添加@Component等注解。所以,当需要将第三方库的组件集成到Spring应用程序中时,除了使用bean标签以外还可以使用@Bean注解装原创 2017-12-01 09:31:49 · 1421 阅读 · 0 评论 -
对比@Resource和@Autowired
在Java的Spring框架中,@Resource和@Autowired都是用于实现依赖注入(Dependency Injection, DI)的重要注解。依赖注入是一种实现控制反转(Inversion of Control, IoC)的设计模式,它允许将对象之间的依赖关系交由外部容器(如Spring IoC容器)来管理和注入,从而降低了代码之间的耦合度,提高了系统的可维护性和可扩展性。@Resource和@Autowired都能够帮助开发者自动装配bean,无需手动创建和配置对象之间的关系原创 2024-02-12 21:38:22 · 1204 阅读 · 0 评论 -
推荐《架构探险:从零开始写Java Web框架》
这本书首先从一个简单的 Web 应用开始,让读者学会如何使用 IDEA、Maven、Git 等开发工具搭建 Java Web 应用;接着通过一个简单的应用场景,为该 Web 应用添加若干业务功能,从需求分析与系统设计开始,带领读者动手完成该 Web 应用,完善相关细节,并对已有代码进行优化;然后基于传统 Servlet 框架搭建一款轻量级 Java Web 框架,一切都是从零开始,逐个实现类加载器、Bean 容器、IoC 框架、MVC 框架,所涉及的代码也是整个框架的核心基础。为了使框架具备 AOP 特性,原创 2024-02-09 20:23:03 · 1670 阅读 · 0 评论 -
ImportSelector使用详解
利用@Import和ImportSelector可将组件批量添加至IoC容器原创 2023-10-02 23:54:46 · 1372 阅读 · 0 评论 -
解决SpringBoot Configuration Annotation Processor not configured
在使用@ConfigurationProperties注解和@EnableConfigurationProperties注解时,IDEA报错:SpringBoot Configuration Annotation Processor not configured;图示如下:原创 2023-10-02 15:17:35 · 315 阅读 · 0 评论 -
解决SpringBoot3整合Druid的兼容性问题
截止目前,Druid对于SpringBoot3的支持不够全面和友好;存在一些兼容性的问题,导致项目报错。原创 2023-09-27 21:42:00 · 6230 阅读 · 8 评论 -
Spring MVC访问静态资源
通常情况下,我们对DispatcherServlet 的 url-pattern 配置的是/,它表示整个 Web 应用范围内所有请求都由 SpringMVC 来处理。也就是说,任何请求必须有对应的 @RequestMapping才能找到相应的处理请求的方法。但是,针对webapp下的imgs、css、JavaScript等静态资源的请求并没有相应的@RequestMapping来处理,所以返回了404错误。原创 2022-08-15 21:53:49 · 839 阅读 · 1 评论 -
解决SpringMVC在JSP页面取不到ModelAndView中数据
ModelAndView携带数据跳转到指定JSP页面后在该页面通过EL表达式取不到原本存放在ModelAndView中的数据。原创 2023-09-13 19:33:23 · 635 阅读 · 0 评论 -
解决Maven resources compiler_ Maven project configuration required for module ‘XXX‘ isn‘t available.
SpringBoot项目启动时报错:Maven resources compiler: Maven project configuration required for module 'XXX' isn't available. Compilation of Maven projects is supported only if external build is started from an IDE.原创 2023-09-11 23:29:31 · 2465 阅读 · 1 评论 -
SimpleUrlHandlerMapping使用方式
开发者在Spring配置文件中定义SimpleUrlHandlerMapping的实例,并为其设置映射规则;示例代码如下:原创 2022-06-30 22:37:14 · 946 阅读 · 1 评论 -
Spring整合Junit单元测试
Spring整合Junit单元测试一共需要两个依赖,分别如下:原创 2022-04-18 00:44:20 · 3670 阅读 · 1 评论