博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring知识点巩固
阅读量:4136 次
发布时间:2019-05-25

本文共 1525 字,大约阅读时间需要 5 分钟。

Spring框架主要提供了ICO容器、AOP、数据访问、web开发、消息、测试等相关技术的支持。

 

Spring使用简单的POJOplain old java object,即无任何限制的普通对象)来进行企业级开发。每一个被spring管理的对象都称之为Bean;而Spring提供了一个IOC容器用来初始化对象,解决对象间的依赖管理和对象的使用。

 

 

 

Spring框架本身有四大原则:

1:使用POJO进行轻量级和最小侵入式开发

2:通过依赖注入和基于接口编程实现松耦合

3:通过AOP和默认习惯进行声明式编程

4:减少AOP和模板(template)减少模式化代码

 

依赖注入:

控制反转(inversion of control-IOC)和依赖注入(dependency injection-DI)在spring环境下是等同的概念,控制反转是通过依赖注入实现的。所谓依赖注入指的是容器负责创建对象和维护对象间的依赖关系,而不是通过对象本身负责自己的创建和解决自己的依赖。

依赖注入的主要目的是为了解耦,体现一种“组合”的理念,如果你希望你的类具备某些功能的时候,是继承自一个具有此功能的父类好呢?还是组合另外一个具体这个功能的类好呢?答案是不言而喻的,继承一个父类,子类将与父类耦合,组合另外一个类则使耦合度大大降低。

Spring IOC容器(applicationContext)负责创建Bean,并通过容器将功能类Bean注入到你需要的Bean中。Spring提供xml、注解、java配置、groovy配置实现Bean的创建和注入。

无论是xml配置、注解配置还是java配置,都被称为配置元数据,所谓元数据即描述数据的数据。元数据本身不具备任何可执行的能力,只能通过外界代码来对这些元数据行解析后进行一些有意义的操作。Spring容器解析这些配置元数据进行bean初始化、配置和管理项目依赖。

AOP:面向切面编程,相对于OOP面向对象编程。

SpringAOP的存在目的是为了解耦。AOP可以让一组类共享相同的行为。在OOP中,只能通过继承类和实现接口,来使代码的耦合度增强,且类继承只能单继承,阻碍了更多行为添加到一组类上,AOP弥补了OOP的不足。

Spring支持AspectJ的注解式切面编程:

1:使用@Aspect声明是一个切面。

2:使用@After@Before@Around定义建言(advice),可直接将拦截规则(切点)作为参数。

3:其中@After@Before@Around参数的拦截规则为切点(PointCut),为了使切点复用,可使用@PointCut专门定义拦截规则,然后在@After@Before@Around的参数中调用。

4:其中符合条件的每一个被拦截处为连接点(JoinPoint)。

 

多线程的使用:

Spring通过任务执行器(TaskExecutor)来实现多线程和并发编程。使用TheadPoolTaskExecutor可实现一个基于线程池TaskExecutor。而实际开发任务重任务一般是非阻碍的,即异步的,所以我们要在配置类中通过@EnableAsunc开启对异步任务的支持,并通过在实际中执行Bean的方法中使用@Async注解来声明其是一个异步任务。

具体使用:

 

定时任务(计划任务)的使用:

Spring配置文件中增加<taskannotation-driven scheduler=“”>

<taskscheduler>

 

 

然后就可以使用@Scheduled声明方法为计划任务,使用fixedRate属性每隔固定时间执行。

使用cron属性按照指定时间执行。

 

 

 

 

 

你可能感兴趣的文章
Linux下SPI驱动的移植和应用程序的测试
查看>>
mini210使用tftp功能
查看>>
mini210的uboot编译使用
查看>>
Sizeof与Strlen的区别与联系
查看>>
Linux Kernel and Android 休眠与唤醒(request_suspend_state)
查看>>
mini210的串口驱动的应用程序
查看>>
Linux tar打包命令
查看>>
编译友善之背的mini210的android文件系统
查看>>
ucosII的CPU使用率查看即OSStatInit()函数的使用方法
查看>>
STM32上使用UCOSII--软件定时器和任务延时
查看>>
IAR上部分UCOS软定时器无法启动的问题
查看>>
ucosII的事件标志组的使用心得
查看>>
MINI210开发板的ADC驱动
查看>>
详解μC/OS-II如何检测任务堆栈实际使用情况——即如何设置ucosii任务堆栈大小
查看>>
MSP430 ADC12采样分析
查看>>
HDU 2522 求循环小数问题
查看>>
HDU 1026 Ignatius and the Princess I(广搜+路径记录+优先队列)
查看>>
HDU 1072 Nightmare(BFS)(注:不标记每个节点四方向累计4次剪枝)
查看>>
HDU 1075 What Are You Talking About(map+字符串)
查看>>
HDU 2600 War(水题 区间边排序+贪心)
查看>>