Spring学习笔记

4 篇文章 0 订阅
1 篇文章 0 订阅

Spring

标签(空格分隔): SSH Spring


1、Spring什么

  • structs是web框架(jsp/action/actionform)
  • hibernate是orm框架,处于持久层
  • spring是容器框架,用于配置bean,并维护bean之间关系的框架。其中bean可以是Java中任何一种对象,比如Javabean、service、action、数据源、dao。
  • ioc(控制反转 inverse of control),di(dependency injection 依赖注入)
  • spring框架可以管理web层、业务层、dao层、持久层,可以配置各个层的bean并维护bean之间的关系。(一站式框架)
    web层:SpringMVC
    service层:spring的IOC
    dao层:spring的jdbcTemplate
  • 配置各种bean:web层 action[解决action单例问题];业务层 service、domain、dao;持久层:数据源

2、Spring快速入门

当ApplicationContext ac = new ClassPathXmlApplicationContext(“applicationContext.xml”)执行时,spring容器被创建,同时applicationContext.xml中配置的bean就会被创建(在内存中[hashmap/hashtable])。

1. ioc是什么?

所谓控制反转就是把创建对象(bean)和维护对象关系的权利从程序中转移到spring的容器(applicationContext.xml),而程序本身不再维护。
比如,有一个类,在类里面有一个非静态的方法,要使用该方法,则必须new一个对象。通过IOC,把对象的创建不是通过new方式实现,而是交给spring配置创建类对象。

2.di是什么?

依赖注入:实际上di和ioc是同一个概念,spring设计者认为di更准确表示spring的核心技术。


3、获取bean

    BeanFactory factory = new XmlBeanFactory(
new ClassPathResource("applicationContext.xml"));
    factory.getBean("");
  // 1.ClassPathXmlApplicationContext:从类路径中加载。
  // 2.FileSystemXmlApplicationContext:从文件系统加载。
  // 3.XmlWebApplicationContext:从web系统中加载。
  ApplicationContext context = new FileSystemXmlApplicationContext("c:\foo.xml");
ApplicationContext context =   new ClassPathXmlApplicationContext("foo.xml");
    context.getBean();

bean工厂和ApplicationContext的区别:

1) bean工厂只有再调用getBean时才会实例化一个bean
2) ApplicationContext在加载applicationContext.xml配置文件时就会实例化文件中配置的bean


4、bean的生命周期

bean被载入到容器中时,他的生命周期就开始了。:

  1. 容器寻找bean的定义信息并实例化。
  2. 使用依赖注入,spring按bean定义信息配置bean的所有属性。
  3. 若bean实现了BeanNameAware接口,工厂调用Bean的setBeanName
    ()方法传递bean的ID。
  4. 若bean实现了BeanFactoryAware接口,工厂调用setBeanFactory()
    方法传入工厂自身。
  5. 若BeanPostProcessor(bean后置处理器)和bean关联,则它们的
    postProcessBeforeInitialization()方法被调用。 [过滤器举例理解]
  6. 若bean指定了ini-method方法、,它将被调用。
  7. 最后,若有BeanPostProcessor和bean关联,则它们的
    postProcessAfterInitialization()方法被调用.

5、IOC底层原理

(1)IOC底层原理使用技术

  • xml配置文件
  • dom4j解析xml
  • 工厂设计模式
  • 反射

(2)IOC的背景
IOC来源

(3)实现原理
IOC的实现原理及过程


6、AOP原理

(1)AOP概念

Aspect Oriented Programing 面向切面(方面)编程,扩展功能不是通过修改源代码实现的, AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码。
纵向机制:继承
纵向抽取机制

(2)AOP原理

底层使用 动态代理 方式实现
横向抽取机制
横向抽取机制

(3)AOP操作术语
- joinpoint(连接点):类里面可以被增强的方法,这些方法就是连接点。
- pointcut(切入点): 在类里面可以有很多方法被增强,但是实际操作中,我们可能只对add和update方法进行了增强,这些实际增强的方法就是切入点。
- advice(通知、增强):增强的逻辑,称为增强,比如扩展日志功能,这个日志功能称为增强,通知分为前置通知、后置通知、异常通知、最终通知、环绕通知(切面要完成的功能)。
- 前置通知:在方法之前执行
- 后置通知:在方法之后执行
- 异常通知:方法出现异常时执行
- 最终通知:在后置之后 执行
- 环绕通知:在方法之前和之后执行
- aspect(切面):把增强应用到具体方法上面,这个过程就是切面。
- introduction(引介):一种特殊的通知,在不修改类代码的前提下,introduction可以在运行期为类动态地添加一些方法或Field。
- target(目标对象):代理的目标对象(要增强的类)
- weaving(织入):把增强应用到目标的过程,把advice应用到target的过程。
- proxy(代理):一个类被AOP织入增强后,就产生一个代理类


6、SSH框架整合思想

ssh框架整合

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值