入职菜鸡复习Spring

Spring

Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。

Spring既是容器(管理对象生命周期)又是技术框架(规定程序处理流程,提供事物管理、框架集成等功能,开发人员可以专注于业务逻辑开发)

Spring框架特点

  • **控制反转:**spring框架给对象建立依赖,无需编写代码实例化后调用
  • AOP切面
  • **容器:**控制bean生命周期,自动实例化
  • 轻量:按需引入spring不同能力的jar包
  • 框架集成:易集成mvc,orm等各种框架
  • 非侵入:业务代码开发时无需强制嵌入spring代码中

Spring的好处

  1. 降低代码间的耦合度。
  2. 集成大部分主流技术框架,利于快速开发。
  3. 容器提供单例模式支持,开发人员不需要自己实现单例特性的代码。
  4. 容器提供AOP技术,可以很容易实现运行态能力增强,例如:权限拦截、运行期监控、日志记录等。
  5. 容器提供的丰富工具类,帮助加快应用的开发。

IOC功能

  • 控制反转(Inversion of Control):由程序代码直接操控对象的调用权交给容器,通过容器实现对象的注入与管理
  • 依赖注入(Dependency Injection):让容器全权负责依赖关系,受管组件只需暴露Javabean的setter方法或者带参数的构造方法

IOC容器及启动配置加载

Spring提供两类IOC容器的实现类型(配置文件相同)

  1. beanFactory:IOC容器基本功能的实现
  2. ApplicationContext:提供比beanFactory更多的功能

bean作用域

作用域是指Spring中的bean实例的生命周期的时间范围

  • singleton:单例,即在整个应用程序中有一个bean的实例
  • prototype:原型,每次请求获取bean时,容器都会构建bean的实例
  • session:每个Web应用的会话会建立一个bean的实例
  • request:每个web请求会建立一个bean实例
  • global session:针对portlet应用的全局会话作用域

IOC容器功能使用

bean实例化

方法1:通过xml配置bean实例化

方法2:通过注解实例bean

@Service:用于标注业务层组件

@Controller:用于标注控制层组件

@Repository:用于标注数据访问组件

@Component:泛指组件

这种方式需要在spring的xml中加入开启注解实例bean的代码

bean注解注入

  • @Autowired:默认按类型找实例注入,默认要求对象必须存在。如果允许null值,可以设置它required属性为false。
  • @Resource:默认按名称找实例注入,当找不到与名称匹配的bean再按类型注入

AOP功能

AOP称为面向切面编程,在程序开发中主要解决一些横向层面的技术问题。

Spring切面几个概念

  • Aspect(切面):通常是一个类,里面可以定义切入点和通知。
  • joinpoint(连接点):指那些被拦截的点,一般是方法调用。在spring中就是指方法。
  • pointcut(切入点):指要对哪些joinpoint进行拦截的定义,就是带有通知的连接点,在程序中主要体现为书写切入点的表达式。
  • advice(通知):指拦截到joinpoint之后要做的事情就是通知,AOP在特定的切入点执行的增强处理。有before,after等。
  • target(目标对象):代理的目标对象。
  • weave(织入):指将aspect应用到target对象并导致proxy对象创建的过程称为织入
  • introduction(引入):在不修改类代码的前提下,introduction可以在运行期为类动态地添加一些方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值