Spring
Thxxxxxx
然鹅我不想简介自己
展开
-
Spring事务传播机制
概述当我们调用一个基于Spring的Service接口方法(如UserService#addUser())时,它将运行于Spring管理的事务 环境中,Service接口方法可能会在内部调用其它的Service接口方法以共同完成一个完整的业务操作,因此就会产生服务接口方法嵌套调用的情况, Spring通过事务传播行为控制当前的事务如何传播到被嵌套调用的目标服务接口方法中。事务传播行为种类...转载 2019-04-25 20:34:36 · 119 阅读 · 0 评论 -
Spring容器中导入组件方式
1. componentscan包扫描+组件注解(@controller @service @ component )2. 在方法上添加@Bean id默认为方法名3. @import在配置类上@Import({Color.class,Red.class,MyImportSelector.class,MyImportBeanDefinitionRegistrar.cla...原创 2019-06-28 11:09:44 · 275 阅读 · 0 评论 -
Bean的生命周期
1.指定初始化方法和销毁方法@Bean(initMethod="init",destoryMethod="desroty")2.让Bean实现InitializingBean接口和DisposableBean接口3. @PostConstruct @PreDestroy4.BeanPostProcessor 的postProcessBeforeInitialization方法和...原创 2019-06-28 18:38:17 · 121 阅读 · 0 评论 -
Spring注解 (更新中)
@Configuration 表明当前类为配置类@ComponentScan 扫描组件,注册到容器@Component @Service @Controller 表明该类为组件类@Bean 在方法上使用返回一个对象注册到容器中@Lazy 单实例Bean 不会在容器启动时注册到容器中,而是在第一次使用@Scope Bean的单例的还是多例的@PropertyS...原创 2019-06-28 19:54:06 · 124 阅读 · 0 评论 -
简单AOP实现过程
切面类实现:@Aspectpublic class LogAspects { //抽取公共的切入点表达式 //1、本类引用 //2、其他的切面引用 @Pointcut("execution(public int com.atguigu.aop.MathCalculator.*(..))") public void pointCut(){}; //@Before在目标方...转载 2019-06-29 10:01:20 · 507 阅读 · 0 评论 -
PostProcessor
BeanPostProcessor创建Bean的后置处理器,在创建Bean对象前后或者初始化方法前后执行BeanFactoryPostProcessor在BeanFactory标准初始化之后调用,来定制和修改BeanFactory内容。在Bean的定义已经被加载,但还有创建对象的时候执行。BeanDefinitionRegistryPostProcessor给容器中加入额外的Bea...原创 2019-06-30 10:04:08 · 1020 阅读 · 0 评论 -
过滤器和拦截器的区别
①拦截器是基于Java的反射机制的,而过滤器是基于函数回调。②拦截器不依赖与servlet容器,过滤器依赖与servlet容器。③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。④拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。⑤在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。⑥拦截器可以获取I...转载 2019-07-23 21:16:03 · 88 阅读 · 0 评论 -
一张图看懂Bean的实例化过程
实例化 bean 对象,类似于 new XXObject() 将配置文件中配置的属性填充到刚刚创建的 bean 对象中。 检查 bean 对象是否实现了 Aware 一类的接口,如果实现了则把相应的依赖设置到 bean 对象中。比如如果 bean 实现了 BeanFactoryAware 接口,Spring 容器在实例化bean的过程中,会将 BeanFactory 容器注入到 bean ...转载 2019-07-29 20:02:07 · 871 阅读 · 0 评论 -
BeanFactory和FactoryBean的区别
BeanFactory:就是一个最基本存放Bean的容器FactoryBean:工厂Bean,它是一个接口,内部含有一个getObject方法返回对象注册到容器中,还含有getObjectType()返回对象类型,isSingleton()是否为单例使用方式:继承FactoryBean,实现接口中的方法,再将这个工厂Bean注入到容器中,就实现了getObject方法返回对象注入容器中。...原创 2019-08-26 19:59:09 · 177 阅读 · 0 评论 -
XML的验证模式
DTDDTD(Document Type Definition),即文档类型定义,为 XML 文件的验证机制,属于 XML 文件中组成的一部分。DTD 是一种保证 XML 文档格式正确的有效验证方式,它定义了相关 XML 文档的元素、属性、排列方式、元素的内容类型以及元素的层次结构。其实 DTD 就相当于 XML 中的 “词汇”和“语法”,我们可以通过比较 XML 文件和 DTD 文件 来看文...转载 2019-06-11 21:48:29 · 266 阅读 · 0 评论 -
SpringMVC容器和Spring容器
Tomcat&Jetty在启动时给每个Web应用创建一个全局的上下文环境,这个上下文就是ServletContext,其为后面的Spring容器提供宿主环境。Tomcat&Jetty在启动过程中触发容器初始化事件,Spring的ContextLoaderListener会监听到这个事件,它的contextInitialized方法会被调用,在这个方法中,Spring会初始化全局的...转载 2019-05-23 20:19:21 · 377 阅读 · 0 评论 -
事务传播行为
事务传播行为类型 说明 PROPAGATION_REQUIRED 如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。 PROPAGATION_SUPPORTS 支持当前事务,如果当前没有事务,就以非事务方式执行。 PROPAGATION_MANDATORY 使用当前的事务,如果当前没有事务,就抛出异常。 PROPA...转载 2019-05-06 18:44:23 · 100 阅读 · 0 评论 -
SpringMvc执行过程
转载 2019-04-17 22:06:59 · 120 阅读 · 0 评论 -
Spring容器创建过程
Spring容器的refresh()【创建刷新】;1、prepareRefresh()刷新前的预处理; 1)、initPropertySources()初始化一些属性设置;子类自定义个性化的属性设置方法; 2)、getEnvironment().validateRequiredProperties();检验属性的合法等 3)、earlyApplicationEvents=...翻译 2019-04-15 13:27:40 · 186 阅读 · 1 评论 -
@Autowired自动注入
1.默认优先按照类型去容器中找对应的组件 applicationContext.getBean(XXX.class)2.如果找到了多个相同类型相同的组件 ,再将属性的名称作为组件的id去容器中查找3.可使用@Qualifier(“XXX”),来指定注入Bean的id。4.默认情况下,自动装配的Bean 一定要在容器中,否则会NoSuchBeanDefinitionException 异...原创 2019-04-12 15:33:41 · 2131 阅读 · 0 评论 -
AOP原理解读
AOP(动态代理):指在程序运行期间动态的将某段代码切入到指定方法或指定位置中进行运行。切面类上加@Aspect注解 配置类上加@EnableAspectAutoProxy通知方法:前置通知(@Before),后置通知(@After),返回通知(@AfterReturning),异常通知(@AfterThrowing)源码解读:1.@EnableAspectJautoProxy...翻译 2019-04-13 18:27:13 · 228 阅读 · 0 评论 -
sringboot security基本用法
转载 2019-04-09 17:05:03 · 228 阅读 · 0 评论 -
Spring设计模式
1.简单工厂2.工厂方法3.单例模式保证一个类仅有一个实例,并提供一个访问它的全局访问点。4.适配器在Spring的Aop中,使用的Advice(通知)来增强被代理类的功能。Spring实现这一AOP功能的原理就使用代理模式(1、JDK动态代理。2、CGLib字节码生成技术代理。)对类进行方法级别的切面增强,即,生成被代理类的代理类, 并在代理类的方法前,设置拦截器,通...翻译 2019-04-07 20:39:00 · 108 阅读 · 0 评论 -
Spring中BeanPostProcessor 执行过程
1.刷新容器2.在refresh()方法中 执行// Instantiate all remaining (non-lazy-init) singletons.// 初始化剩下的非延迟加载(non-lazy-init)单例beansfinishBeanFactoryInitialization(beanFactory);3.在finishBeanFactoryInitializ...原创 2019-04-12 11:27:42 · 1585 阅读 · 0 评论 -
spring中Bean的生命周期
实例化一个Bean,也就是我们通常说的new。 按照Spring上下文对实例化的Bean进行配置,也就是IOC注入。 如果这个Bean实现了BeanNameAware接口,会调用它实现的setBeanName(String beanId)方法,此处传递的是Spring配置文件中Bean的ID。 如果这个Bean实现了BeanFactoryAware接口,会调用它实...转载 2019-05-05 09:28:42 · 219 阅读 · 0 评论 -
注册Bean的方式
包扫描+组件标注注解(@Controller/@Service/@Repository/@Component)[自己写的类] @Bean[导入的第三方包里面的组件] @Import[快速给容器中导入一个组件] @Import(要导入到容器中的组件);容器中就会自动注册这个组件,id默认是全类名 ImportSelector:返回需要导入的组件的全类名数组; ImportB...原创 2019-08-26 20:01:31 · 196 阅读 · 0 评论