什么是IoC(控制反转)?本质上控制反转(Inversion of Control,IoC),是一种设计思想,依赖注入(Dependency Injection,DI) 是实现IoC的一种方法。没有IoC的程序中,我们使用面向对象编程,对象的创建与对象间的依赖关系完全是硬编码在程序中(容易耦合)。对象的创建由程序自己控制,控制反转对象后将对象的创建转移给了第三方(可以解耦)。IoC是Spring框
转载
2024-04-10 11:44:49
53阅读
1.SpringMVC调用流程1.1 组件说明1.1.0 Servlet作用1.1.1 前端控制器 (Servlet机制)DispatcherServlet 前端控制器 (Servlet机制)作用: SpringMVC中控制用户的请求的转发…/响应的规则1.1.2 处理器映射器HandlerMapping 处理器映射器铺垫: 404什么错误? 请求资源没有找到. 作用:
转载
2024-10-26 21:34:11
77阅读
前言上一篇博客【Mybatis-Spring源码分析(二) Mapper接口代理的生成】主要说了Mybatis的注解是怎么使用代理去调用Mapper接口中的查询方法的。本篇则会侧重讲解调用接口的方法的执行过程。为什么是血案呢,因为Mybatis的一级缓存在Mybatis-Spring中是失效的,虽然笔者之前已经阐述过一级缓存十分的鸡肋,本篇也会源码角度探究一下为什么会导致失效的。更多Spring内
Spring data JPA是一个好东西,但是对于很多习惯于写SQL,直接怼数据库的人来说,这个真的用不习惯,还被一致认为是一个不易于程序员发展的技术。因为JPA提供了标准的封装,在操作数据库的时候,不需要写SQL,完全通过操作对象即可完成。久而久之,SQL就会被慢慢的遗忘,生疏,等以后面试的时候,也许这就是上升的一个短板。现在各大公司对JPA用的都很少,除非是这个公司的系统涉及到几种数据库,随
因项目依赖太多导致sql不打印,下面介绍下处理过程首先排除包 一定要排除干净,不然会报这个,虽然不报错(有得冲突直接报错了)但是已经冲突了SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/86186/.m2/repository/org/apache/log
转载
2024-04-06 16:35:02
356阅读
最近公司的项目,客户临时追加一个需求,要看到使用用户的操作日志。类似于下方那样。此项目是网上的一个叫做xboot的项目,功能挺齐全的,可以参考。 回到此功能,这个功能并不复杂,主要就是记录并显示用户请求了哪些业务方法,ip,请求时间,请求参数等信息。 我这里想到了三种实现方式,这里分别说说。AOP代理实现方式这种实现方式,其实就是定义一个切面,去横切指定的Controller方法,然后用环绕通知这
转载
2024-03-05 22:02:39
365阅读
SpringMVC框架中利用Filter实现请求日志打印之前利用HttpServletRequest.getInputStream()和RequestWrapper实现了请求的requestBody获取,现在提出将一个请求的RequestBody和ResponseBody都提出来并打印日志&落入数据库,以便统计和查找问题。查找资料后确定两种技术方案: 1. 使用AOP对所有Control
转载
2024-03-31 19:03:48
73阅读
mybatis执行Sql的流程首先讲上一篇出现过的一段代码new SqlSessionTemplatepublic void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
if (!this.externalSqlSession) {
this.sqlSession = new SqlSessionTem
转载
2024-06-29 11:53:52
85阅读
当前常用的框架是ssm(spring+spring mvc+mybatis),现将其基本配置整理如下:1.通过maven导入项目所需要的jar包<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
转载
2024-03-27 07:30:03
162阅读
最近忙于面试换工作,不论是学习还是工作似乎都忽略了spring另外的一个强大之处:AOP;当被面试问道如何基于AOP做出一个单点登录的时候顿时有点傻眼。下来之后做了一番学习。本文以日志管理为例,说明AOP的强大之处。首先,说明一下AOP的强大应用。可以简单实现强大的功能:日志记录,性能统计,安全控制,事物处理,异常处理等。AOP是Aspect Oriented Programming ,
转载
2024-04-21 13:43:47
81阅读
事务事务(Transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务,SQL Server能将逻辑相关的一组操作绑定在一起,以便服务器保持数据的完整性当对多个表进行更新的时候,某条执行失败。为了保持数据的完整性,需要使用事务回滚。 显示设置事务begin try
begin transaction
ins
转载
2024-06-06 12:40:25
119阅读
编者按 在前一篇文章中,主要记录了学习Spring框架的过程,通过实践让自己对基于SpringBoot的项目实现有了粗浅的认识。在本文进一步学习了SpringBoot后端部分的知识点中关于整合Mybatis的部分。欢迎指正。(一)Mybatis的概念百度百科中给出了Mybatis官网中的定义,说明了它是一个持久层框架,可以用过xml文件进行配置,并且支持很多高级映射。而Mybatis
转载
2024-07-25 11:04:05
334阅读
通过markdown实现自定义动态sql拼接,实现通过sql配置完成接口开发发布整体框架还是依据0行代码写服务的框架不清楚的看一下前几篇文章,这里我们为了满足复杂查询利用动态sql拼接的方式去实现具体实现如下:首先来看一下自定义的markdown sql文件:test.md 文件真实内容如下:第一步配置sql文件:首先我们根据“;”定义每一条sql的结尾,用“===”分割sql的标记名
转载
2024-08-26 20:17:45
108阅读
1. 简介MybatisPlus(简称MP)是基于MyBatisPlus框架基础上开发的增强型工具,旨在简化开发、提高效率开发方式:基于MyBatis使用MybatisPlus基于Spring使用MybatisPlus基于SpringBoot使用MybatisPlusSpringBoot整合MyBatis开发过程:创建SpringBoot工程勾选配置使用的技术设置dataSource相关属性(JD
转载
2024-08-17 11:27:03
84阅读
手写spring准备和扫描逻辑模拟实现1、首先来回顾一下我们最初学习 Spring 的时候是如何从容器中获取一个 Bean根据 xml 配置文件构建容器获取 beanpublic class MyTest {
public static void main(String[] args) {
//获取spring的上下文对象
//传入一个路径,告诉spring
# Java项目未打印SQL的解决方法
## 引言
在Java项目开发中,我们经常需要与数据库进行交互,执行SQL语句来实现各种功能。有时候我们发现在项目中执行的SQL语句没有打印出来,这给我们调试和排查问题带来了一定的困扰。本文将向你介绍如何解决Java项目未打印SQL的问题。
## 整体流程
首先,让我们来看看整个解决问题的流程,如下所示:
```mermaid
journey
原创
2023-11-26 05:34:22
147阅读
DispatcherServlet,这个Servlet是实现Spring mvc 的前端控制器,所有的Web请求都需要通过它来处理,进行匹配、转发、数据处理。DispatcherServlet是实现
Spring MVC最核心的部分。 在使用SpringMVC 时我们通常需要如下配置:
<s
转载
2024-03-25 20:27:11
21阅读
spring+SpringMVC项目环境搭建 之前总结过spring和SpringMVC知识点,不过还是对这两个的区别和作用有点懵懂,因此,这里再总结一下视频里关于这两个框架例子搭建的前期过程,作为后面复习查看。1 环境搭建步骤创建工程(Project&Moudle)导入静态页面(jsp页面)导入需要的坐标创建包结构创建或导入数据库表创建POJO类(User.java等实体类)创建配置文件
转载
2024-03-20 14:03:30
129阅读
SpringMVC-HelloWorldEclipseSpringMVCMavenTomcat1.创建项目:一、创建Maven Project,勾选Create a simple project,然后,GroupId值为cn.tedu.spring,Artifact Id值为SPRINGMVC-HELLOWORLD,Package选择war:(名称可以自己随便定义) 二、接下来需要执行4个步骤(每
转载
2024-04-12 11:52:28
25阅读
1. Idea新建Grande项目依次点击菜单File->New->Project, 新建项目,选择Gradle,如下图勾选Java和Web两个选项,点击Next按钮进行下一步设置项目的名字,本例名为gradle_mvc点击Finish完成设置,项目开始创建,等待项目创建完成。2.添加依赖编辑build.gradle文件, 在dependencies内添加spring-webmvc的依
转载
2024-06-04 10:16:06
96阅读