Spring基本概念
Spring 特点
sring是一个全面的、企业应用一站式解决,贯穿表现层、业务层、持久层,能够与其他框架无缝衔接整合。
- 轻量 :从大小与开销两方面而言Spring都是轻量级的,完整的spring框架可以在一个大小只有1M多的JAR文件里面发布,并且spring所需的处理开销也是微不足道的
- 控制反转:spring通过一种被称作控制反转的IOC的技术促进低耦合,当应用了IOC,一个对象依赖的其他对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找。
- 面向切片 spring支持面向切片的变成,并且把应用业务逻辑和系统服务分开
- 容器:spring包含并管理应用对象的配置和生命周期,在这个意义上是一个容器,你可以配置每个bean如何被创建–基于一个可配置原型,bean可以创建一个单独的实例或者每次都声称一个新的实例。
- 框架 spring可以讲简单的组件配置,组合成复杂的应用
- 在spring中应用对象被声明式组合在XML文件中,spring也提供了很多基础功能(事务管理、持久框架集成等),将应用逻辑的开发留给开发者。
Spring常用注解
bean注入与装配的方式有很多种,可以通过xml,get/set方式,构造函数或者注解。简单易用的方式就是使用spring的注解,spring提供了大量的注解方式。
常用注解:@Controller,@RestController,@Component,@Repository@Service
@Responsebody @RequestMapping @Autowired @PathVariable @requestParam @RequestHeader @ModelAttribute @SessionAttributes @Valid
Spring 第三方结合
权限:shiro
缓存:redis/enchace
持久层框架:Hibernate/Mybatis
Spring IOC原理
概念:spring通过配置文件描述bean以及bean之间的依赖关系,利用java语言的反射功能实例化Bean,并建立bean之间的依赖关系。spring的IOC容器在完成这些底层工作的基础上,还提供了Bean实例缓存、生命周期管理、Bean实例代理、事件发布、资源装载等高级服务
spring 容器高层视图: Spring启动时候读区应用程序提供的Bean配置信息,并在spring容器中生成一份Bean配置注册表,然后根据这张注册表实例化Bean,装配好Bean之间的依赖关系,为上层应用提供准备就绪的运行环境。其中Bean缓存池为HashMap实现。
IOC容器实现
BeanFactory–框架基础设施
BeanFactory 是spring框架的基础设施,面向spring本身;AppllicationContext面向使用Spring框架的开发者,几乎所有的应用场合我们都直接使用ApplicationContext而非底层的BeanFactory
BeanDefinitionRegistry 注册表
Spring配置文件中的每一个节点元素在Spring容器里面都通过一个BeanDefinition对象表示,它描述了Bean的配置信息,而BeanDefinitionRegistry接口提供了向容器