spring
文章平均质量分 63
煎饼皮皮侠
这个作者很懒,什么都没留下…
展开
-
好玩Spring之SpringBoot自定义starter
之前我们讲过Java SPI的使用,现在我们来看看Spring中SPI的应用。SpringBoot自定义一个最简单的starter的实例如下新建一个springboot项目,目录如下:定义一个Service,处理业务。public class DemoService { private String key; private String value; public DemoService(String key, String value) {原创 2021-12-09 13:50:59 · 355 阅读 · 0 评论 -
好玩Spring之非spring环境获取Spring容器中的bean
现在,我们有个需求,如何在一个普通的pojo中,调用spring bean的方法,比如以下例子。通过BeanFactoryPostProcessor获取bean,进而实现在普通类中调用bean的方法。原创 2021-10-11 18:38:26 · 147 阅读 · 0 评论 -
好玩Spring之InitializingBean/DisposableBean与@PostConstruct/@PreDestroy
初始化我们在对bean进行一些自定义初始化时,可以使用@PostConstruct实现InitializingBean接口的afterPropertiesSet()方法@Bean(initMethod = “initMethod”)在xml文件中,设置全局default-init-method=“init”public class TestInit implements InitializingBean { private String name; public Test原创 2021-09-14 21:54:40 · 194 阅读 · 0 评论 -
好玩Spring之获取ApplicationContext的几种方式
// 方式一:通过 AnnotationConfigApplicationContext / FileSystemXmlApplicationContext / ClassPathXmlApplicationContextAnnotationConfigApplicationContext annotationConfigApplicationContext = new AnnotationConfigApplicationContext(Config.class);MyClass my原创 2021-08-18 22:54:08 · 559 阅读 · 0 评论 -
好玩Spring之三级缓存及循环依赖的处理
Spring的三级缓存,伴随着bean的生命周期。常见缓存在DefaultSingletonBeanRegistry类中,有很多的cache。public class DefaultSingletonBeanRegistry extends SimpleAliasRegistry implements SingletonBeanRegistry { // 一级缓存 /** Cache of singleton objects: bean name to bean instance. */ pr原创 2021-07-21 10:43:35 · 191 阅读 · 0 评论 -
好玩Spring之获取Advisor
获取Advisor@Override public List<Advisor> getAdvisors(MetadataAwareAspectInstanceFactory aspectInstanceFactory) { // 切面类 是一个带有Aspect注解的类 Class<?> aspectClass = aspectInstanceFactory.getAspectMetadata().getAspectClass(); // 切面类名字 String原创 2021-05-27 14:06:43 · 274 阅读 · 0 评论 -
好玩Spring之AOP是如何运行的
上篇文章,我们解读了@EnableAspectJAutoProxy的运行,本篇文章我们来看下,@Before @Pointcut等注解,是如何工作的。例子@Configuration@EnableAspectJAutoProxy@ComponentScanpublic class AppConfig {}@Aspect@Componentpublic class LogAspects { @Pointcut("within(tzb.aop..*)") public void poin原创 2021-04-25 20:42:38 · 135 阅读 · 0 评论 -
好玩Spring之@EnableAspectJAutoProxy解读
文章目录前言例子源码解读AnnotationAwareAspectJAutoProxyCreatorinvokeBeanFactoryPostProcessors(beanFactory)registerBeanPostProcessors(beanFactory)前言在Spring中,如果不在配置类中添加@EnableAspectJAutoProxy,那么所有切面注解是不生效的(springboot因为有自动配置,所以不需要开发人员手工配置@EnableAspectJAutoProxy)例子@Co原创 2021-03-31 20:02:55 · 30676 阅读 · 2 评论 -
好玩Spring之委派模式在Spring中的应用
委派模式它不属于23中模式,我理解其实就是有个中间角色进行派活的过程,是一种派活的模式。-- 委托安排Java双亲委派说起委派,可能更容易想到的是Java双亲委派,没错,它确实也是委派模式。在spring中应用那么在Spring中又有哪些地方用到了委派模式呢?在bean中的应用在MVC中的应用......原创 2021-02-27 22:13:16 · 523 阅读 · 0 评论 -
好玩Spring之TransactionSynchronization相关的几个类
在看Spring事务源码时,会看到TransactionSynchronizationManager这个类的几个方法,当时不知这个类有何作用,于是,单独研究了一番,与TransactionSynchronization相关的有如下几个类:TransactionSynchronizationpublic interface TransactionSynchronization extends Flushable { /** Completion status in case of proper com原创 2020-11-30 18:19:35 · 2280 阅读 · 2 评论 -
好玩Spring之@EnableTransactionManagement的实现
在Spring中,要想@Transaction事务生效,一个重要的前提便是一定要在配置类中加上@EnableTransactionManagement注解,否则事务无法生效。@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Import({TransactionManagementConfigurationSelector.class})public @interface EnableTransa原创 2020-08-31 22:59:13 · 743 阅读 · 0 评论 -
好玩Spring之Transactional注解是如何工作的
上篇文章中,我们介绍了Transactional注解配置事务的用法,那Transactional究竟是怎么来实现事务的呢?本篇内容就来探讨这个问题。原创 2020-08-05 18:00:19 · 498 阅读 · 0 评论 -
好玩Spring之编程式配置数据源及事务的使用
xml配置数据源先来看一个数据库操作的简单下例子,一般情况下,我们采用xml来配置数据源,如下:<?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:tx="http://www.springf原创 2020-07-02 19:16:42 · 297 阅读 · 0 评论 -
好玩Spring之适配器模式在Spring中的应用
定义适配器模式(英语:adapter pattern)有时候也称包装样式或者包装(wrapper)。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类能在一起工作,做法是将类自己的接口包裹在一个已存在的类中。【来自维基百科】类型分为:对象适配器模式 和 类适配器模式详细解释和具体用法可参考:《JAVA与模式》之适配器模式Spring中的...原创 2020-04-21 21:30:58 · 5573 阅读 · 0 评论 -
好玩Spring之BeanFactoryPostProcessor
BeanFactoryPostProcessor/* * Copyright 2002-2016 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compli...原创 2020-03-11 21:34:07 · 191 阅读 · 0 评论 -
好玩Spring之ConfigurationClassPostProcessor分析
@Configuration标签的处理,流程主要是在先上类结构图最主要的就是以下这个方法了public void processConfigBeanDefinitions(BeanDefinitionRegistry registry) { List<BeanDefinitionHolder> configCandidates = new ArrayList<...原创 2020-03-01 21:29:10 · 199 阅读 · 0 评论 -
好玩Spring之FactoryBean
BeanFactory与FactoryBean,容易混淆,两者的区别,其实还是蛮大的,本文不详细展开。实例演示FactoryBean的作用// 这里是普通的pojo,没有任何注解public class Alpha {}@Componentpublic class AlphaFactoryBean implements FactoryBean<Alpha> { ...原创 2020-02-09 18:32:54 · 323 阅读 · 0 评论 -
好玩Spring之事件机制
相信大家对事件驱动、发布订阅模式早有耳闻。其主要用途可以用在1. 用户注册后,给用户发邮件或新增积分2. 用户添加评论后,给用户添加积分等操作时。虽然以上2个场景,也可以在代码中流式的实现,但是代码耦合性太高,不够单一,事件通知机制便可以很好的分离以上功能的操作。事件通知机制事件通知机制一般包括:EventObject,EventListener和Source三部分。E...原创 2020-02-02 21:56:29 · 253 阅读 · 0 评论 -
好玩Spring之@Resource的工作原理
在上一篇,我们介绍了@Autowired的工作原理,本篇我们依然借用上一篇的例子,来说明@Resource的工作原理@Componentpublic class Controller { @Resource public Service service; public void add() { service.add(); }}在例子中,我们只是把@Autowi...原创 2020-01-05 23:12:51 · 724 阅读 · 0 评论 -
springmvc log只输出到console,不输出到文件
今天,遇到个问题,困扰了很久,原创 2014-09-17 17:42:31 · 6250 阅读 · 0 评论 -
好玩Spring之BeanFactory与ApplicationContext的区别
BeanFactory接口是spring IoC最核心的接口,是IoC的“大脑”,而ApplicationContext经过层层接口实现,最终也实现了BeanFactory接口,它在BeanFactory接口的基础上,添加了许多额外的功能,是Ioc的“躯体”。关于2者的区别,先看在获取bean时2者有什么不同。// xml配置:注意:Person1类是不存在的<bean id="...原创 2019-08-18 22:48:49 · 200 阅读 · 0 评论 -
好玩Spring之AutowireCapableBeanFactory
AutowireCapableBeanFactory作为BeanFactory的四大孩子之一,主要职责是负责自动装配相关的事宜。通常来说,如果一个类不在spring容器中(即没有在spring的xml中配置该bean),那么我们就无法通过ApplicationContext来获取。那怎么才能让该类也集成到spring中去呢?AutowireCapableBeanFactory为我们提...原创 2019-08-10 16:13:00 · 420 阅读 · 0 评论 -
好玩Spring之Bean的生命周期(基于5.1.0ba)
下图为Spring 3.x的bean生命周期图(图来自《Spring 3.x企业应用开发实战》)结合上图,研究了下基于5.1.0版本的bean的生命周期。其中生命周期的绝大部分阶段(step3 - step12(bean的终结))都集中在了AbstractAutowireCapableBeanFactory类doCreateBean方法中,具体如下:/** * Actually...原创 2019-08-11 21:55:20 · 134 阅读 · 0 评论 -
好玩Spring之Bean的生成方式
Spring中,生成bean的方式有3种:普通反射(最常用) factory-method模式 factory-bean模式首先我们来看factory-method模式,它与普通的工厂方法模式是对应的,Spring中通过在以下方式来实现factory-method模式// xml配置// 1. 通过静态工厂方法来配置bean<bean id="manager" class...原创 2019-08-24 16:49:15 · 227 阅读 · 0 评论 -
好玩Spring之BeanPostProcessor及InstantiationAwareBeanPostProcessor接口
在之前我们看bean的生命周期时,有如下过程。在实例化前后,有InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation和InstantiationAwareBeanPostProcessor.postProcessAfterInstantiation两个动作。InstantiationAwareBeanPos...原创 2019-08-17 18:03:26 · 445 阅读 · 0 评论 -
好玩Spring之@Autowired的工作原理
在使用spring的过程中,@Autowired注解用的频率还是非常高的,那这个注解究竟是怎么工作的呢?我们以如下实例展开说明:@Componentpublic class Controller { @Autowired public Service service; public void add() { service.add(); }}以上是一个最简单的cont...原创 2019-09-08 18:42:02 · 2498 阅读 · 0 评论 -
spring mvc 官方 教程 打war包 good!
http://manueljordan.wordpress.com/2011/12/12/creating-a-spring-web-mvc-project-with-springsource-tool-suite/以上,原创 2014-08-26 22:59:09 · 4382 阅读 · 4 评论