
Spring
Spring
Comus_j
帅气的努力的穷困潦倒的地球人
展开
-
Spring事务
接口:PlatfromTransactionManger,里面有子接口,有针对不同的框架有不同的实现类【mybatis里是DatasourceTransactionManager】提供一个接口,代表事务管理器,这个接口针对不同的框架提供不同的实现类。在Spring声明式事务中底层使用的是:AOP原理。事务特性:ACID【原子、一致、隔离、持久】逻辑上的一组操作,要么都成功、要么都失败。service:逻辑操作,调用dao。分为两种方式:声明式、编程式。dao:创建两个方法。编程式:通过代码实现。原创 2023-10-04 15:54:56 · 293 阅读 · 0 评论 -
6.19-MyBatis源码—体系介绍和配置文件解析源码剖析
xml文件【mybatis的主配置文件】—SqlSessionFactoryBuilder().Builder()【构建的时候就是解析整个过程】—通过xml节点去解析所有信息:settings、数据库环境(数据库连接、事务)类型处理器、别名解析器、mapper.xml【就会解析CRUD,由XmlMapperBuilder负责解析的,其他由XmlConfigBuilder负责解析的】、插件。加载驱动—创建连接—开启事务—获得sql的执行者—执行sql。主要内容:执行sql的准备。JDBC四大核心对象。原创 2023-09-18 11:08:53 · 137 阅读 · 1 评论 -
6.8-SpringIoC之循环依赖底层源码解析
创建Map,存不完整的Bean。原创 2023-09-18 08:05:56 · 114 阅读 · 0 评论 -
4.4-Spring源码循环依赖终极讲解
new AnnotateBeanDefinitionReader 的时候创建很多创世纪的类,其中有一个ConfigurationPostProcessor是用来解析配置类的,将其注册起来存到Bean定义的Map中【这个类是基于Bean工厂后置处理器的】拿到所有实现了**BeanDefinitionRegisttryPostProcessor()**的类, 这个时候就会拿到解析配置类的类。这一步是将配置类注册到Bean定义的Map当中,这时候Map中配置类和解析配置类的类有了。拿到配置类,拿到就放到。原创 2023-09-14 22:04:00 · 185 阅读 · 0 评论 -
4.3-内置后置PostProcess处理器深度讲解
进行IOC容器刷新中的invokeBeanPostProcessors(beanFactory)去调用实现BeanFactoryPostProcesor()reader会调取register()来注册配置类。在reader里面注册了很多Bean定义。配置类有了、解析配置类的处理器有了。实现这两个接口的Bean定义。原创 2023-09-12 21:02:02 · 143 阅读 · 0 评论 -
4.2 Ioc容器加载过程-Bean的生命周期深度剖析
实例化了一个Bean工厂注册了很多创世纪的处理器Bean定义,用来支撑后面的运行实例化了Scanner,扫描包,接收包的全路径,通过包的路径就能找到所有类。原创 2023-09-11 22:04:38 · 176 阅读 · 0 评论 -
SpringSecurity一日干
4,3步骤也验证不了需要调用3的authenticate方法进行验证。5,4步骤也不行,需要4中的loadUserByName方法查询用户。3,传给下一个,调用2中的authenticate方法进行验证。2,将提交的信息封装Authentication对象。添加redis使用fastJson序列化相关配置。Redis的工具类再封装。1,提交用户名和密码。定义redis配置类。原创 2023-09-09 18:47:31 · 103 阅读 · 0 评论 -
4.1-Spring源码整体脉络介绍及源码编译
Spring原码原创 2023-07-05 16:43:21 · 333 阅读 · 0 评论 -
JDK动态代理
jdk动态代理原创 2022-10-20 10:45:59 · 134 阅读 · 0 评论 -
Spring简短回顾
Spring简短回顾原创 2022-10-19 18:27:24 · 378 阅读 · 0 评论 -
Spring_注入内部Bean和级联赋值
内部注入Bean级联赋值原创 2022-10-18 14:56:12 · 156 阅读 · 0 评论 -
Spring_注入外部Bean
注入外部Bean原创 2022-10-18 14:37:02 · 304 阅读 · 0 评论 -
Spring注解开发
Component注解的衍生注解有按三层不同使用对应的代替,以代表其层级。以前在配置文件中,现在在所属类上加@Component注解即可。需要配属性的时候,在属性上加@value(“属性名称”)使用注解需要导入context约束,增加注解支持。webmvc包中含有aop。原创 2022-09-12 17:50:53 · 537 阅读 · 0 评论 -
自动装配Bean_0
自动装配:byName:会自动在容器上下文中查找,和自己对象set方法后面对应的beanid。byType:会自动杂容器上下文中查找,和自己对象属性类型相同的bean。spring会在上下文中自动寻找,并自动给bean装配属性。自动装配是Spring满足 bean依赖的一种方式。原创 2022-09-12 16:37:06 · 147 阅读 · 0 评论 -
Bean的作用域
前两个代表个数,后面四个webmvc用到。原创 2022-09-12 15:43:19 · 63 阅读 · 0 评论 -
依赖注入_0
扩展注入(c、p命名空间注入),cp命名空间注入需要导入约束。c对应的是构造器注入。p对应的是set注入。原创 2022-09-12 15:37:02 · 101 阅读 · 0 评论 -
Spring原码_01
BeanDefinitionRegistryPostProcessor进行注册。在BeanDefinitionMap中注册了好多BeanDefinition,通过BeanFactory通过调用getBean()(既可以生产,也可以读取),的时候会调用各种Aware方法,生产完成后会放在Map(单例池,也是以及缓存)里面,其中Aop是在初始化扩展后进行。上面三个主要过程,每个过程前后都会调用BeanPostProcessor(总共9次)进行扩展,...原创 2022-08-14 23:32:47 · 146 阅读 · 0 评论 -
spring容器创建对象
public void test02(){ //使用spring容器创建的对象 //1指定spring配置文件的名称 String config = "beans.xml"; //创建表示spring容器的对象,ApplicationContext //ApplicationContext就是表示spring容器,通过容器获取对象 //ClassPathXmlApplicationContext:表示从类路径中.原创 2021-09-12 17:13:35 · 209 阅读 · 0 评论 -
Spring控制事务的是三个方面
定义了五个事务级别常量(重点)这些常量以ISOLATION_开头。分别为:DEFAULT:采用DB默认的事务隔离级别。MySql的默认为REPEATABLE_READ;Oracle默认为READ_COMMITTED 1 ----- READ_UNCOMMITTED:读未提交。未解决任何问题 READ_COMMITTED:读已提交。解决脏读,重复不可重复读与幻读 REPEATABLE_READ:可重复读。解决脏读、不可重复读,存在幻读 SERIALIZABLE:串行化..原创 2021-07-09 13:03:04 · 102 阅读 · 0 评论 -
Aop切面编程增加功能步骤
以@Before为例:1,新建maven项目2,加入依赖1,spring依赖2,aspectj依赖3,测试单元依赖创建接口和它的实现类要做的是给类中的方法增加功能public interface SomeService { void doSome(String name,Integer age);}//目标类public class SomeServiceImpl implements SomeService { @Override public voi原创 2021-07-07 09:28:35 · 424 阅读 · 0 评论 -
Aop相关问题
什么是动态代:实现方式:1,jdk动态代理,使用jdk中的Proxy,Method,InvocationHanderl创建对象jdk动态代理要求目标类必须实现接口2,cglib动态代理:第三方的工具类,创建代理对象,原理是继承。通过继承目标类,创建子类。子类就是代理对象。要求目标类不能是final的,方法也不能是final的动态代理的作用:1,在目标类源代码不变的情况下,增加功能2,减少代码的重复3,专注业务的逻辑代码4,解耦合,让业务功能和日志,事务非业务功能分离怎样理解面..原创 2021-07-06 23:06:12 · 93 阅读 · 0 评论 -
自动注入byName
引用类型在赋值时需要<property name="school" ref="mySchool"/> 自动注入byName就不需要这一步<bean id="myStudent" class="com.bjpowernode.ba04.Student" autowire="byName"> <property name="name" value="张三"/> <property name="age" value="20"/>原创 2021-07-05 23:29:53 · 382 阅读 · 0 评论 -
引用类型赋值小结
引用类型的set注入:spring调用类的set方法创建school类,作为student的属性之一public class Student { private String name ; private int age; //声明一个引用类型 private School school; public void setSchool(School school) { System.out.println("setSchool:原创 2021-07-05 11:01:01 · 108 阅读 · 0 评论 -
set设值注入给属性赋值小结
类比正常new对象后给属性赋值,需要调用set方法给属性赋值例如:Student student = new Student();student.setAge(“18”);步骤如下:创建类package com.bjpowernode.ba01;public class Student { private String name ; private int age; public Student() { System.out.println原创 2021-07-05 08:26:57 · 639 阅读 · 0 评论 -
使用spring提供的方法
获取容器中定义对象的数量:getBeanDefinitionCount() @Test public void test03(){ String config = "beans.xml"; ApplicationContext ac = new ClassPathXmlApplicationContext(config); //从容器中获取对象 //使用spring提供的方法,获取容器中定义的对象的数量 int .原创 2021-07-04 22:35:04 · 94 阅读 · 0 评论 -
spring创建对象的步骤以及与正常new对象的对比
先创建接口package com.bjpowernode.service;public interface SomeService { void doSome();}再创建实现接口的类,并提供方法供检验package com.bjpowernode.service.impl;import com.bjpowernode.service.SomeService;public class SomeServiceImpl implements SomeService {.原创 2021-07-04 16:40:52 · 2941 阅读 · 0 评论 -
AOP动态代理底层原理
AOP:面向切面编程,不修改源代码进行功能增强步骤:接口package com.atguigu.spring5;public interface UserDao { public int add(int a,int b); public String update(String id);}实现类实现接口package com.atguigu.spring5;public class UserDaoImpl implements UserDao { @原创 2021-07-02 22:41:12 · 138 阅读 · 0 评论 -
spring_01
Spring简单的理解为工厂+配置文件(将紧耦合转移到配置文件与资源之间)IOC控制反转Spring反向控制应用程序所需要使用的外部资源Spring控制的资源全部放置在Spring容器中,该容器称之为ioc容器案例步骤:引入Spring依赖--------1,导入坐标创建资源(接口—对应的位置创建实现类)--------,2,业务层接口---------3,业务层实现方法Spring的配置文件(applicationContext.xml):去官网复制配置文件的结构头+Spring的资源(实现原创 2021-06-16 09:22:47 · 87 阅读 · 0 评论