
Spring
Spring笔记
孔雀南飞梦
编程水很深的哇
展开
-
Mybatis执行器源码观察
由SqlSession定义门面,然后核心的执行组件是Executor执行器,它也是一个接口,定义了门面api所需要的接口,由baseExecutor抽象类来实现它,还有一级缓存以及获取连接等逻辑,定义了抽象方法doquery和doUpdate来交付给它的子类来完成不同的执行过程。simpleExecutor简单执行器同样的sql每执行一次都要创建一个预编译的对象,prepareStatement。由此,我们的执行器方法就已经执行结束了。然后我们再进入下面的query方法。实现二级缓存的逻辑是这样的。...原创 2022-07-16 11:54:48 · 262 阅读 · 0 评论 -
Mybatis获取参数的源码分析
用到的样例mapper接口在测试方法中进行测试,并打断点在调用loginByParam处打断点 然后步入, 继续步入之后可以看见 继续步入 上面这一步,是将参数的map返回 names的初始化代码因此我们可以知道names中存放的是,[(参数索引,@Param值或者“arg0”,”arg1”...),]所以我们可以继续分析下面的代码了...原创 2022-07-06 23:10:53 · 488 阅读 · 0 评论 -
有关Mybatis中使用$获取参数报反射异常的问题
报错如下 意思是没有那个参数 然后我们需要在mapper接口参数旁边加上一个参数注解,Mybatis才能识别出来 并且这里的value值必须要和${}中的值一致,否则报错原创 2022-07-05 23:29:16 · 339 阅读 · 0 评论 -
Mybatis加入log4j日志
2、导入log4j依赖3、添加log4j.xml配置文件到resource目录下,名字一定要一致log4j.xml的内容 关于日志级别,FATAL(致命)>ERROR(错误)>WARN(警告)>INFO(信息)>DEBUG(调试)级别越高,记录的日志信息越少选中某一个级别时,保存的是>=该级别的日志级别信息测试...原创 2022-07-04 22:41:54 · 870 阅读 · 0 评论 -
SpringMVC-DispatchServlet初始化过程
首先,继承关系如下上面标注了init方法的重写过程在FrameworkServlet类中的initServletBean()中,而initWebApplicationContext()方法中对父容器的对象进行了获取再看下面先看创建容器的方法它封装了createWebApplicationContext()方法,这个方法应该是创建原生的容器的现在我们再来看initWebApplicationContext() 方法中的刷新容器方..原创 2022-02-21 22:37:47 · 332 阅读 · 0 评论 -
SpringMVC拦截器源码观察
创建拦截器的方式:方式一:在核心配置文件中配置拦截器组标签里直接创建bean对象方式二:将拦截器注册到ioc容器中,然后再配置拦截器组标签里引用赋值但是这两种方式都不能设置拦截的匹配路径,默认都是拦截通过了前端控制器的请求(也就是说,能拦截所有前端控制器所能处理的请求)方式三,具体配置某个拦截器在拦截器的匹配路径设置当中的规则:/*只表示匹配工程目录下的请求,不是所有的请求。/**才是匹配所有的请求拦截器中的三个抽象方法:preHand..原创 2022-02-19 13:31:37 · 785 阅读 · 0 评论 -
SpringMVC-restful风格实现简单的页面增删改查
核心配置文件:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xm原创 2022-02-15 12:05:05 · 515 阅读 · 0 评论 -
javaweb-web.xml需要的命名空间
xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"原创 2022-02-12 19:31:42 · 564 阅读 · 0 评论 -
Spring整合Junit5
第一步,引入相关依赖<!-- Junit5--> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>5.6.2</version>原创 2022-02-05 21:00:23 · 1193 阅读 · 0 评论 -
Caused by: java.lang.ClassNotFoundException: org.springframework.core.ResolvableTypeProvider
在导入junit4的时候发现出现了这样的异常,应该是找不到类,但是已经导入了发现有可能是有一个同名的jar包,里面没有对应的类,然后我把Spring-test放在maven的最后面,让它覆盖掉前面的。于是异常解决。...原创 2022-02-05 20:53:47 · 1035 阅读 · 0 评论 -
Spring-全注解开发
导入需要使用的命名空间<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"原创 2022-02-04 12:55:26 · 367 阅读 · 0 评论 -
Spring-使用xml方式实现事务
使用xml方式实现事务处理1、配置事务管理器2、配置通知3、配置切入点4、配置切面(使用之前配置的通知和切入点)数据库连接池<!-- 配置数据库连接池--> <bean class="com.alibaba.druid.pool.DruidDataSource" id="dataSource" destroy-method="close"> <property name="url" value="jdbc:mysql..原创 2022-02-04 12:46:53 · 1011 阅读 · 0 评论 -
Spring-使用注解定义切面
//定义切面@Aspectpublic class AnnotationPointCut { //定义切入点 @Before(value = "execution(* com.simple1.UserDaoImpl.*(..))") public void before(){ System.out.println("方法执行前"); } @After(value = "execution(* com.simple1.UserDaoImpl.*(..原创 2022-02-04 12:35:34 · 659 阅读 · 0 评论 -
Spring-自定义类作为切面
我们使用自定义的类作为切面,但是比较有局限性public class MyDiyPointCut { public void before(){ System.out.println("==========执行前的方法=========="); } public void after(){ System.out.println("==========执行后的方法=========="); }}到xml文件中去配置<!原创 2022-02-04 12:30:36 · 459 阅读 · 0 评论 -
Spring框架-原生的aop使用
现在有一个dao类,我们想在不改变源代码的情况下,实现一个输出方法日志的功能public interface UserDao { void add(); void delete(); void update(); void select();}public class UserDaoImpl implements UserDao{ @Override public void add() { System.out.println(原创 2022-02-04 12:25:49 · 504 阅读 · 0 评论 -
java-项目里面重命名类报错的问题
因为在项目里面重命名了类,也就是执行了重构,但是因为java实际上作用的是字节码文件,所以我们要找到原来的字节码文件并删除,否则可能会报错我将Book改成了User,但是原来Book的字节码文件依然保留着,所以我们要手动去删除...原创 2022-01-28 13:10:40 · 1134 阅读 · 0 评论 -
Spring使用注解开发需要maven导入的依赖
没有导入完全会报错 <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13</version> <scope>test</scope> </dependency>.原创 2022-01-23 22:33:41 · 2412 阅读 · 0 评论 -
Spring-ioc初体验
在之前的Javaweb中,我们通常要实现dao层,service层,Servlet层。其中,dao层直接对数据库进行操作,service层在内部创建了dao的对象,代替我们去调用dao层去操作数据库,实现了业务的分离。但是,有一个弊端我们先实现一个样例public interface UserDao { void getUser();}public class UserDaoImpl implements UserDao{ @Override public原创 2022-01-22 12:55:22 · 846 阅读 · 0 评论