Spring源码
文章平均质量分 65
spring和spring源码
岁月呀
往事如风随风散
展开
-
Spring源码解析之AOP
1、开启AOP注解1)@EnableAspectJAutoProxy 通过Import引入AspectJAutoProxyRegistrar @Import(AspectJAutoProxyRegistrar.class)2)实现ImportBeanDefinitionRegistrar接口,给容器注册bean定义AspectJAutoProxyRegistrar implements ImportBeanDefinitionRegistrar3)注册一个BeanPostProces原创 2021-02-05 01:02:36 · 247 阅读 · 1 评论 -
Spring源码解析之事务管理
一、环境准备基本步骤1)引入mysql驱动,Druid连接池,jdbc依赖2)配置类TxConfig, 注册JdbcTemplate, DruidDataSource3)编写业务类,使用原生jdbc操作数据库4)加入事务管理 @EnableTransactionManagement @Transactional 注册事务管理器TransactionManager5)调试实现回滚,int tem = 10 / 0; 当数据回滚时候,数据库自增主键会继续增长,即回滚原创 2021-02-05 01:12:17 · 359 阅读 · 0 评论 -
SpringMVC源码解析
1、servlet3 规范servlet3规范servlet容器会自动在每个jar包扫描下面路径找到对应的java类进行web容器初始化。/META-INF/services/javax.servlet.ServletContainerInitializer注:(tomcat7以上版本才是使用servlet3)以spring mvc为例1)在spring web中/META-INF/services/javax.servlet.ServletContainerInitializer下找原创 2021-02-05 00:25:35 · 142 阅读 · 0 评论 -
Spring源码解析之IOC(一)
测试类入口public static void main(String[] args) { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); UserService userService = context.getBean(UserService.class); userService.call();}构造器初始化操作原创 2021-02-05 00:31:56 · 75 阅读 · 0 评论 -
Spring源码解析之IOC(二)refresh方法
1、prepareRefresh();上下文refresh之前准备操作1)设置当前系统时间2)设置上下文关闭 / 活跃 标志3)获取Envirenment(没有就创建StandartEnvirenment),验证所有按要求标记的属性是否可解析4)创建用于存储refresh之前ApplicationListener和ApplicationEvent的容器2、obtainFreshBeanFactory()获取beanFactoryAbstractApplicationConte原创 2021-02-05 00:53:36 · 299 阅读 · 0 评论 -
Spring容器注册bean方式
组件Bean注册方式1、使用@ComponentScan+注解(@Controller, @Repository, @Component, @Service)使用includeFilters时,需设置 useDefaultFilters = false2、使用@Bean注解, @Lazy标记单例bean懒加载, @Scope("prototype")定义bean的作用域, @Conditional({MyCondition.class}) 符合条件才可以生成bean3.原创 2021-01-21 00:59:42 · 302 阅读 · 2 评论 -
Spring Cloud与Spring Boot之间版本对应关系
"Finchley.M2": "Spring Boot >=2.0.0.M3 and <2.0.0.M5","Finchley.M3": "Spring Boot >=2.0.0.M5 and <=2.0.0.M5","Finchley.M4": "Spring Boot >=2.0.0.M6 and <=2.0.0.M6","Finchley.M5":...原创 2019-12-19 14:28:56 · 113 阅读 · 0 评论 -
Spring AOP的使用场景及其原理
1. AOP是什么? AOP(Aspect Oriented Programming),面向切面编程。顾明思议就是通过某个切入点(比如方法开始、结束)向某个切面(被切的对象)切入环绕通知(需要切入的逻辑代码)。比如一个类中的所有方法执行前都需要打印日志,那么可以通过AOP的方式来统一实现,而不需要在每个方法中都加入打印日志的代码逻辑。 Spring中可以通过配置或者注解方式来实现统一切入...原创 2019-12-10 17:59:35 · 3292 阅读 · 0 评论