Spring学习
文章平均质量分 78
诛仙89
11111
展开
-
Spring和SpringBoot监听器
聊到spring boot的生命周期,其实就是事件的监听,这里spring boot的事件监听和spring的有关联,先了解spring的事件监听一、ApplicationListener这个是自从spring3.0后可以对你感兴趣的进行监听,而这个实现机制是通过泛型ApplicationListener<E extends ApplicationEvent>来实现的。As of Spring 3.0, an ApplicationListener can generically dec原创 2021-03-15 15:24:07 · 323 阅读 · 1 评论 -
SpringMVC新老父子容器解析
一、旧的方式在以前的版本springmvc有2个容器,一个是父容器,存储非@Controller注解的bean,一个是子容器专门用来存储@Controller注解的bean。如果说为什么要这么搞,是因为当时想强调MVC的概念,因为父容器是不能获得子容器的bean,所以在service层是不能调用 controller层里面的方法的。1.1 父容器<listener> <listener-class>org.springframework.web.context.原创 2021-03-10 11:01:26 · 358 阅读 · 0 评论 -
Spring的9处调用后置处理器
在Sping的整个生命周期中,有9个地方调用后置处理器。这些后置处理器是spring实现自定义功能或者扩展spring的核心所在一、postProcessBeforeInitialization该方法属于InstantiationAwareBeanPostProcessor后置处理器public interface InstantiationAwareBeanPostProcessor extends BeanPostProcessor { @Nullable default Object po原创 2021-03-09 13:12:24 · 1019 阅读 · 1 评论 -
【Spring源码分析】后置处理器
一、 ConfigurationClassPostProcessor1.1 他是一个beanFactory后置处理器BeanFactoryPostProcessor:就是针对bean definitionBeanDefinitionRegistryPostProcessor:在BeanFactoryPostProcessor检测之前注入更多的bean definitionConfigurationClassPostProcessor:主要是处理@Configuration的类上面的注解和里面原创 2020-10-09 21:13:04 · 134 阅读 · 0 评论 -
【Spring源码分析】六、Spirng transaction分析
一、tx的解析和bean的Aop代理<tx:annotation-driven transaction-manager="transactionManager"/>针对namespace就行判断,判断是bean标签还是自定义标签(除了bean的其他标签)protected void parseBeanDefinitions(Element root, BeanDefinit...原创 2020-01-05 21:45:10 · 143 阅读 · 0 评论 -
【Spring源码分析】五、Spirng aop分析
一、介绍Aop肯定是通过动态代理实现的,如果有接口是通过JDK的动态代理实现,如果没有接口是通过CGLIB来实现的。二 详细分析步骤核心类AnotationAwareAspectJAutoProxyCreator他实现了BeanPostProcessor,也就是说在类的初始化前和初始化后会做一些动作,其实创建代理就是在postProcessAfterInitialization后开始创建...原创 2020-01-04 17:49:38 · 114 阅读 · 0 评论 -
【Spring源码分析】四、ClassPathXmlApplicationContext的Bean的加载
一、介绍ClassPathXmlApplicationContext具有XmlBeanFactory的所有功能,自我感觉他就是XmlBeanFactory扩展。二、代码切入点 @Test public void testApplicationContext(){ applicationContext = new ClassPathXmlApplicationConte...原创 2020-01-02 21:10:32 · 320 阅读 · 0 评论 -
【Spring源码分析】三、Bean的加载和循环依赖解析
一、切入点 bf = new XmlBeanFactory(new ClassPathResource("bean.xml")); User user = bf.getBean("user", User.class); user = bf.getBean("user", User.class);User.javapublic class User implements BeanF...原创 2020-01-02 21:12:23 · 112 阅读 · 0 评论 -
【Spring源码分析】二、解析及注册BeanDifinitions
上一篇文章中,大致分析了,Spring BeanFactory的类结构图,本篇文章分析如何解析配置文件和注册Bean的配置一、源码切入点private final XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(this);public XmlBeanFactory(Resource resource, BeanFa...原创 2019-12-12 16:16:53 · 213 阅读 · 0 评论 -
【Spring源码分析】一、BeanFactory之XmlBeanFactory
一、源码切入点 bf = new XmlBeanFactory(new ClassPathResource("bean.xml")); User user = bf.getBean("user", User.class); user = bf.getBean("user", User.class);bean.xml定义<?xml version="1.0" encoding="U...原创 2019-12-05 22:12:57 · 233 阅读 · 0 评论 -
Spring学习一、IOC的代码实现
先定义一个xml文件<beans> <bean id="u" class="com.bjsxt.dao.impl.UserDAOImpl" /> <bean id="userService" class="com.bjsxt.service.UserService" > <property name="userDAO" bean="u"/> </bean></翻译 2016-02-20 11:55:59 · 375 阅读 · 0 评论 -
Spring学习二、IOC学习
注入类型set方法注入 构造方法注入(了解) 接口注入(了解)简单属性的注入public class UserService { private UserDAO userDAO; public void add(User user) { userDAO.save(user); } public UserDAO getUserDAO() {翻译 2016-02-20 14:42:37 · 278 阅读 · 0 评论 -
Spring结合hibernate和jdbcTemplate多数据源事物问题
首先说明我的环境Spring3.2.8+hibernate3.6.10.Final+tomcat7 在写这篇博客前在网上查询了相关资料 ,网上给出的结论是:如果有多个相同的数据源,开启了多个事物,使用spring的声明式事物(AOP配置:1、xml配置 2、注解Transaction 两者都是。关于编程式事物就自行百度)管理事物,一旦发生RunTimeException异常,那么多个事物都会回滚原创 2016-09-24 14:32:55 · 2367 阅读 · 0 评论 -
记录一次mysql lock wait timeout exceeded; try restarting transactio异常
线上阿里云环境出现一个异常 lock wait timeout exceeded; try restarting transactio,而且这个异常导致项目短暂时间卡住了。第一步、分析日志通过日志分析,有其他定时任务work1在某个时间点大并发的访问某个接口interface1,操作了表B,然后后来的其他的任务work2要访问接口interfac2,而interface2也要更新表B。表现就是...原创 2018-12-29 15:11:38 · 1044 阅读 · 0 评论