
spring
一只大马猴
既然选择了做这行,就要耐得住寂寞
展开
-
【spring系列】之17:spring aop工程流程
AOP:【动态代理】* 指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式;* * 1、导入aop模块;Spring AOP:(spring-aspects)* 2、定义一个业务逻辑类(MathCalculator);在业务逻辑运行的时候将日志进行打印(方法之前、方法运行结束、方法出现异常,xxx)* 3、定义一个日志切面类(LogAspects):切面类里面的方法需要动态感知MathCalculator.div运行到哪里然后执行;* 通知方法:* .原创 2020-10-20 12:05:29 · 337 阅读 · 0 评论 -
【spring系列】之16:spring启动流程
Spring容器的refresh()【创建刷新】;1、prepareRefresh()刷新前的预处理; 1)、initPropertySources()初始化一些属性设置;子类自定义个性化的属性设置方法; 2)、getEnvironment().validateRequiredProperties();检验属性的合法等 3)、earlyApplicationEvents= new LinkedHashSet<ApplicationEvent>();保存容器中的一些早期的...原创 2020-10-19 09:50:06 · 186 阅读 · 0 评论 -
【spring系列】之1:Bean作用域及IOC懒加载
本系列所用的spring版本为5.0.8,以后其他不单独说明的版本,均采用此版本。本系列默认采用注解的方法开发,讲解。给容器注册bean的几种方式:1.包扫描:ComponentScan+bean注解(@Controller,@Service,@Repository,@Component,Bean):2.条件注入:@Conditional按条件选择注入3.@Import快速给容器中...原创 2018-09-21 12:41:37 · 346 阅读 · 0 评论 -
【spring系列】之2:@Conditional按照条件注册bean
给容器注册bean的几种方式:1.包扫描:ComponentScan+bean注解(@Controller,@Service,@Repository,@Component,Bean):2.条件注入:@Conditional按条件选择注入3.@Import快速给容器中导入一个组件4.FactoryBean注册@Conditional是基于条件注册bean的注解,也是s...原创 2018-09-25 11:05:28 · 345 阅读 · 0 评论 -
【spring系列】之3:Import快速给容器中添加组件
给容器注册bean的几种方式:1.包扫描:ComponentScan+bean注解(@Controller,@Service,@Repository,@Component,Bean):2.条件注入:@Conditional按条件选择注入3.@Import快速给容器中导入一个组件4.FactoryBean注册 @Import提供三种方式注册bean到容器中,Import直...原创 2018-09-25 19:07:40 · 350 阅读 · 0 评论 -
【spring系列】之4:FactoryBean向容器中注册bean
给容器注册bean的几种方式:1.包扫描:ComponentScan+bean注解(@Controller,@Service,@Repository,@Component,Bean):2.条件注入:@Conditional按条件选择注入3.@Import快速给容器中导入一个组件4.FactoryBean注册 首先,定义我们自己的FactoryBean://Factor...原创 2018-09-25 20:14:50 · 413 阅读 · 1 评论 -
【spring系列】之5:向容器注册bean几种方法总结
包扫描+组件标注注解@Controller/@Service/@Repository/@Component[自己写的类]这个是我们通常用的业务逻辑代码写法.@Bean[导入的第三方包里面的组件]这个是我们通常用的业务逻辑代码写法.@Import[快速给容器中导入一个组件]@Import(要导入到容器中的组件);容器中就会自动注册这个组件,id默认是全类名 Im...原创 2018-09-25 20:19:43 · 841 阅读 · 0 评论 -
【spring系列】之6:bean的初始化和销毁方法
通常,bean的初始化和销毁方法我们有三个地方可以入手,分别是:自定义初始化,销毁方法 实现spring提供的InitializingBean(初始化逻辑),DisposableBean(销毁逻辑)接口 JSR250;@PostConstruct,@PreDestroy执行初始化和销毁方法 实现spring提供的BeanPostProcessor接口,实现其postProcessBefo...原创 2018-09-26 10:33:17 · 2573 阅读 · 1 评论 -
【spring系列】之7:生命周期-BeanPostProcessor原理以及在spring底层中的运用
本章节重点说一下我们自定义的BeanPostProcessor的执行机制和调用栈。事前准备:1.自定义beanPostProcessor2.注册自定义的beanPostProcessor到容器中1.自定义beanPostProcessor@Componentpublic class LifeCycleBeanPostProcessor implements BeanPost...原创 2018-09-30 11:24:55 · 400 阅读 · 2 评论 -
【spring系列】之8:属性赋值
一:使用@Value赋值 基本数值 可以写SpEL; #{} 可以写${};取出配置文件【properties】中的值(在运行环境变量里面的值) demo:set,get省略 @Value("张三") private String name; @Value("#{20-2}") private Integer age; @Value("${pers...原创 2018-10-08 13:33:55 · 200 阅读 · 0 评论 -
【spring系列】之9:@Autowired自动装配
自动装配:Spring利用依赖注入(DI),完成对IOC容器中中各个组件的依赖关系赋值; 一:@Autowired:自动注入: 默认优先按照类型去容器中找对应的组件:applicationContext.getBean(BookDao.class);找到就赋值 如果找到多个相同类型的组件,再将属性的名称作为组件的id去容器中查找applicationContext.getBean(...原创 2018-10-08 14:27:38 · 267 阅读 · 0 评论 -
【spring系列】之10:基于注解的AOP
什么是AOP?AOP:【动态代理】指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式;开发中涉及的几个步骤如下:导入aop模块;Spring AOP:(spring-aspects) 定义一个业务逻辑类(MathCalculator);在业务逻辑运行的时候将日志进行打印(方法之前、方法运行结束、方法出现异常,xxx) 定义一个日志切面类(LogAspects)...原创 2018-10-10 22:44:37 · 177 阅读 · 0 评论 -
【spring系列】之11:springAOP的原理以及实现
AOP原理:【看给容器中注册了什么组件,这个组件什么时候工作,这个组件的功能是什么?】开始AOP,我们就需要引入@EnableAspectJAutoProxy注解。但是这个注解为什么加上就能提供AOP的功能呢?看其源码@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Import(As...原创 2018-10-16 10:22:06 · 200 阅读 · 0 评论 -
【spring系列】之12:spring容器的refresh()
Spring容器的refresh()【创建刷新】;1、prepareRefresh()刷新前的预处理; 1)、initPropertySources()初始化一些属性设置;子类自定义个性化的属性设置方法; 2)、getEnvironment().validateRequiredProperties();检验属性的合法等 3)、earlyApplicationEvents= ...转载 2018-10-18 16:05:02 · 132 阅读 · 0 评论 -
【spring系列】之13:spring声明式事务环境搭建
本章分两节1.事务环境搭建 2.事务原理分析 事务环境搭建1.导入相关依赖(数据源、数据库驱动、Spring-jdbc模块) 2.配置数据源、mybatis的Mapper 3.给方法上标注 @Transactional 表示当前方法是一个事务方法; 4.@EnableTransactionManagement 开启基于注解的事务管理功能 5.配置事务管理器来控制事务; ...原创 2018-10-21 15:18:05 · 173 阅读 · 0 评论 -
【spring系列】之14:spring声明式事务实现原理剖析
通过上一节事务环境搭建,我们知道,在搭建的5个步骤中,有两个是spring为我们提供底层去稍作配置,然后使用的,这两个操作涉及的便是:@EnableTransactionManagement PlatformTransactionManager其中,PlatformTransactionManager是底层的事务控制器,它来控制我们的整个操作时提交还是回滚等。我们只要配置我们具体需...原创 2018-10-21 16:01:33 · 1275 阅读 · 0 评论 -
【spring系列】之15:spring实现数据源动态选择
现在一般的数据库读写分离都有很多现成的工具去做了,但是有时候,在业务量不是特别特别大,又需要做读写分离的时候,我们可以自己动手一个基于AOP切面的数据源动态选择。既然提到多数据源了,那就会涉及到数据源的选择时机问题。在自己动手做的时候,也现在网速百度了下,基本有以下几种情况出现:1.mapper接口定义两套2.在mapper层做动态选择3.在serivce层做动态选择先简...原创 2018-10-30 22:59:27 · 441 阅读 · 0 评论