Spring
Spring随笔
文天大人
聆听爱意是无憾,热爱武汉的妹子
展开
-
Spring-core-MethodParameter
怀念二抱三抱原创 2024-06-05 11:02:59 · 286 阅读 · 0 评论 -
Spring-jdbc-JdbcTemplate
//定义helper的方法1<script>Handlebars.registerHelper("ID_1自定义",function(变量1自定义,options){ //这里各种条件,满足则走1,不满足走2 if(变量1自定义==''){ return options.fn(this);//这里是1 }else{ return option原创 2015-09-22 16:34:05 · 2178 阅读 · 0 评论 -
Spring-beans-BeanWrapper
.原创 2016-05-03 11:46:08 · 355 阅读 · 0 评论 -
Spring-beans-FactoryBean
创建一个类Apublic class A { }创建一个类MyFactoryBean,并实现FactoryBean接口public class MyFactoryBean implements FactoryBean<A> { @Override public A getObject() throws Exception { return new A(); } @Override public Class<?> get原创 2021-12-30 16:56:33 · 346 阅读 · 0 评论 -
Spring-boot-AnnotationConfigServletWebApplicationContext
国际化的时候properties文件的名字必须叫ValidationMessages.propertiesController中 public void aaa(@Valid @RequestBody XXX类 form, BindingResult br){ if (br.hasErrors()) { //system.out打印下面的内容原创 2017-10-23 13:49:53 · 277 阅读 · 0 评论 -
Spring-beans-BeanDefinitionReader
通过观察方法和很多实现类,以及带"BeanDefinitionReader"结尾的非实现类,所以推测出BeanDefinitionReader是XXXX接口和BeanDefinitionRegistry接口的桥梁,BeanDefinitionReader将XXXX接口转换成BeanDefinition之后再放到BeanDefinitionRegistry中关于XXXX:在spring当中如果一个类的名字是XXXXBeanDefinitionReader,那么就说明该类会把XXXX转换成BeanDefini原创 2021-12-10 12:50:21 · 427 阅读 · 3 评论 -
Spring-context-ApplicationEvent/ApplicationListener/ApplicationEventMulticaster
Multicaster:组播,广播把事件和时间类型传递进去,然后找到所有订阅该时间的监听器(ApplicationListener接口的实例),然后循环调用@Overridepublic void multicastEvent(final ApplicationEvent event, @Nullable ResolvableType eventType) { ResolvableType type = (eventType != null ? eventType : resolveDefaultE原创 2021-09-29 16:04:59 · 172 阅读 · 0 评论 -
Spring-aop-AbstractAutoProxyCreator
怀念二抱三抱原创 2021-05-14 14:03:15 · 465 阅读 · 3 评论 -
Spring-jdbc-ConnectionHolder
该类是对JDBC中Connection对象的封装在spring中需要通过TransactionSynchronizationManager.getResourceMap静态方法获取// key是DataSource实例,value是ConnectionHolder// 调用这个静态方法获取ConnectionHolderMap<Object, Object> resourceMap = TransactionSynchronizationManager.getResourceMap()原创 2021-01-18 14:41:39 · 848 阅读 · 0 评论 -
Spring-tx-TransactionDefinition/TransactionAttribute
TransactionAttribute继承了TransactionDefinition接口,所以将这两个接口放到一片文章里这两个接口顾名思义,是对@Transaction注解的封装DefaultTransactionAttribute类是这两个接口最重要的实现类,可以通过TransactionAnnotationParser获取...原创 2021-01-18 11:35:14 · 305 阅读 · 0 评论 -
Spring-tx-TransactionInfo
该类是TransactionAspectSupport类的内部类,有下面几个属性@Nullableprivate final PlatformTransactionManager transactionManager;@Nullableprivate final TransactionAttribute transactionAttribute;private final String joinpointIdentification;@Nullableprivate TransactionS原创 2021-01-16 14:08:35 · 610 阅读 · 1 评论 -
Spring-tx-TransactionStatus接口(savepoint)
怀念二抱三抱原创 2021-01-15 09:48:48 · 2383 阅读 · 3 评论 -
Spring-tx-Propagation枚举类
可恨的鄂A妹儿原创 2021-01-15 09:18:33 · 365 阅读 · 1 评论 -
Spring-tx-@EnableTransactionManagement注解
xml形式的spring配置使用tx标签来开启事务而注解形式的spring配置,则使用@EnableTransactionManagement注解其实本文要说的内容,在该注解的注释当中都有,例如下面这个代码@Componentpublic class Creater1 { @Autowired JdbcTemplate jdbcTemplate; @Transactional(rollbackFor = Exception.class) public void create() {原创 2021-01-14 16:06:36 · 455 阅读 · 0 评论 -
Spring-tx-TransactionInterceptor类
关于TransactionInterceptor类的解析,将是对spring-tx模块最重要的解析,该类是spring事务模块核心框架代码,为此我费了很大力气,仅以此篇文章,献给我做梦都想睡到的马银霜(虽然她不知道spring是个什么东西),下面开启真的探索源码,而不是网上其他人那种假装探索(贴源码并且翻译注释)第一步:首先,有一个类,类的全限定名是org.springframework.aop.framework.CglibAopProxy,而该类里面有一个内部类,是CglibMethodInvocat原创 2021-01-14 01:29:34 · 358 阅读 · 0 评论 -
Spring-tx-TransactionAttributeSource接口
该接口用来获取事务相关的配置其实底层就是通过TransactionAnnotationParser接口来实现的,如果了解TransactionAnnotationParser,此接口特别简单方法:getTransactionAttribute@NullableTransactionAttribute getTransactionAttribute(Method method, @Nullable Class<?> targetClass);使用该接口非常重要的实现类Annotatio原创 2021-01-12 18:26:30 · 476 阅读 · 0 评论 -
Spring-tx-TransactionAnnotationParser接口
事务注解转换器说白了就是该接口的实现会将@Transactional注解转换成TransactionAttribute,该接口只有一个抽象方法@NullableTransactionAttribute parseTransactionAnnotation(AnnotatedElement ae);其中SpringTransactionAnnotationParser类是该接口的实现之一,下面以该类作为演示import org.springframework.transaction.annota原创 2021-01-12 16:51:53 · 421 阅读 · 1 评论 -
Spring-beans-ListableBeanFactory/AutowireCapableBeanFactory/HierarchicalBeanFactory
怀念二抱三抱原创 2021-01-07 15:00:19 · 318 阅读 · 0 评论 -
Spring-AbstractRefreshableApplicationContext
该类属于ApplicationContext子类,所以是一个BeanFactory,下面介绍本类中最重要的三个字段属性// @Nullable注解表示该字段允许为空// 是否允许覆盖相同名称的对象// 比如有一个类A,注册到容器中的名字叫m// 有有一个类B,注册到容器中的名字也叫m// 如果该字段=true,则B将会覆盖掉A@Nullableprivate Boolean allowBeanDefinitionOverriding;// 如果该字段=true,则允许Bean之间循环依赖@原创 2021-01-05 11:40:43 · 292 阅读 · 2 评论 -
Spring-context-ApplicationContext/AbstractApplicationContext
此方法最大的作用:当我们自己实现容器的时候,用来校验系统变量是否正确当我们自己实现容器的时候,如果重写了initPropertySources();方法,那么就会体现出prepareRefresh方法的作用源码 /** * Prepare this context for refreshing, setting its startup date and * active flag as well as performing any initialization of property sour原创 2021-01-05 11:00:11 · 281 阅读 · 0 评论 -
Spring-Lifecycle接口
如果一个类A实现Lifecycle接口,那么需要注意1.A可以是任意一个容器中的Bean,A也可以是容器2.当容器调用start或者close方法的时候,会根据A中的isRunning方法判断是否调用A中的start或者stop方法(回调)下面定义一个A@Componentpublic class MyLifeCycleBean1 implements Lifecycle { @Override public void start() { System.out.println("start原创 2020-10-10 17:23:55 · 1142 阅读 · 0 评论 -
Spring-core-Environment/profiles
怀念二抱三抱原创 2020-09-24 09:55:14 · 1432 阅读 · 4 评论 -
Spring-AnnotationConfigApplicationContext/ClassPathXmlApplicationContext
spring容器启动的方式目前我知道的有两个1.AnnotationConfigApplicationContext:注解方式启动//扫描Test.java同级包以及子包下的所有类,这是spring boot的启动方式AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(Test.class);A a = ctx.getBean(A.class);System.out.println(a);原创 2020-09-04 16:08:04 · 825 阅读 · 0 评论 -
Spring-core-SpringFactoriesLoader类
.热爱武汉的妹子原创 2019-12-16 11:58:37 · 443 阅读 · 1 评论 -
Spring-context-ApplicationContextInitializer接口TODO
接口作用:该接口的实现类会在容器刷新之前执行例:定义该接口实现类public class MyApplicationContextInitalizer1 implements ApplicationContextInitializer<ConfigurableApplicationContext> 启动类SpringApplication springApplication...原创 2018-10-08 14:26:53 · 447 阅读 · 0 评论 -
Spring-ConfigurationClassParser类
作用:顾名思义,专门处理configuration class的方法1public void parse(Set<BeanDefinitionHolder> configCandidates)该方法将configCandidates中的每个BeanDefinitionHolder都封装成ConfigurationClass,然后放到ConfigurationClassParse...原创 2019-11-12 11:37:09 · 313 阅读 · 0 评论 -
Spring-基础设施类
怀念二抱三抱原创 2019-11-11 21:24:05 · 272 阅读 · 0 评论 -
Spring-context-ConfigurationClassBeanDefinitionReader类
contenxt原创 2019-10-15 14:25:09 · 458 阅读 · 0 评论 -
Spring-context-ConfigurationClassUtils类
作用:对configuration class的一些处理方法:checkConfigurationClassCandidate作用:判断是否是configuration class,如果isFullConfigurationClass或者isLiteConfigurationClass,那么就是configuration class方法:isFullConfigurationClass作用...原创 2019-10-15 12:46:16 · 896 阅读 · 1 评论 -
Spring-context-AnnotationConfigUtils类
本文只讲述该工具类中的静态方法:registerAnnotationConfigProcessors(BeanDefinitionRegistry registry)为什么不讲述其他方法呢?因为其他方法我不知道是做什么的作用:当用注解的方式启动项目时,将处理这些注解的基础设施类放到DefaultListableBeanFactory当中,因为无论如何,终归要有一些写死的基础类,来处理我们自己的...原创 2019-10-15 11:16:43 · 1083 阅读 · 0 评论 -
Spring-ConfigurationClass类
什么叫ConfigurationClass一个类如果带有@Configuration或者带有@Component,@Import ,@Bean 三个注解,那么这个类就是ConfigurationClass根据以上已知条件,其实我们自己就可以用java.reflect包下的各种反射机制进行判断,但是spring为我们提供了一个工具类来判断,这个工具类就是ConfigurationClassUt...原创 2019-10-13 18:06:51 · 1513 阅读 · 0 评论 -
Spring-ConfigurationClassPostProcessor类
内容待定,全力攻读ConfigurationClassPostProcessor类原创 2019-10-13 17:36:29 · 177 阅读 · 0 评论 -
Spring-aop-AnnotationAwareAspectJAutoProxyCreator类
我爱武汉汉阳的妹子原创 2019-10-13 14:38:56 · 212 阅读 · 0 评论 -
Spring-core-AnnotationAttributes
@RequestMapping(value = "/aa/{id}.jhtml")public String 方法名(@PathVariable String id){ //直接打印出id system.out.print(id)}原创 2015-10-08 11:17:51 · 1337 阅读 · 0 评论 -
Spring-beans-BeanPostProcessor/InitializingBean
Bean初始化完成后,如果想加自己的逻辑实现BeanPostProcessor接口,该接口下面的两个方法不能返回null直接把实现这个接口的类注入到applicationContext中就可以了*注意BeanPostProcessor和InitalizingBean接口的区别顺序是1.BeanPostProcess before2.InitalizingBean after3.Be...原创 2017-06-02 15:31:42 · 1502 阅读 · 3 评论 -
Spring-core-ClassUtils类
怀念二抱三抱原创 2017-10-19 19:02:02 · 942 阅读 · 2 评论 -
Spring-beans-ObjectFactory
怀念二抱三抱原创 2016-11-24 19:58:36 · 409 阅读 · 1 评论 -
Spring-@Value
1.只能用在spring注解类中的属性或者方法中,例如@Controller,@Service这些开始就把类注入到容器的中的注解2.@Value("${properties文件的key}")不要忘记$符号3.如果@Value标注到static属性,则@Value应该在对应static属性的set方法上原创 2017-10-26 17:14:05 · 731 阅读 · 0 评论 -
Spring-ClassPathResource/扫描/jar/读取Classpath下的文件资源
怀念二抱三抱原创 2020-03-22 16:10:10 · 3841 阅读 · 0 评论 -
Spring-读取properties文件
.原创 2016-09-12 17:58:49 · 344 阅读 · 0 评论