spring的个人总结

1,spring的优点。
①Spring能有效地组织的中间层对象,以及类与类之间的依赖关系。
②Spring能消除在许多工程中常见的对Singleton的过多使用,因为它默认就是采用的单例模式。
③能帮助我们真正意义上实现针对接口编程,获取想要的bean时。也是已接口的方式去获取。
④支持JDBC和O/R Mapping产品(hibernate)的整合。
⑤能使用AOP提供事务管理。
2,spring的两大核心思想IOC、AOP。
IOC:控制反转,顾名思义就是将实例对象的创建权交给spring容器控制,而不是通过自己new实体类。我们只需要描述好类的具体定义,当需要时就可以直接获取。IOC思想可以很好解耦类和类之间的关系,它的实现方式是采用依赖注入。注入方式包括:接口注入、构造器注入、set方式注入。
ioc创建实体类的接口:beanFactory,看名字就知道就是一个创建bean的工厂,是最原始、最基础的接口。加载方式是懒加载,就是指程序启动并没有立即实例化所有的bean,而是当getBean()获取bean时才去实例化。
通常都是用ApplicationContext工厂接口去创建bean,它是beanFactory的子接口,同时扩展了更强大的功能,对spring也有更好的支持。但ApplicationContext是采用的是立即加载,它的实现类有:①ClassPathXmlApplicationContext:spring使用XML配置文件注册组件,XML文件必须放到类的路径下
②FileSytemXmlApplicationContext:spring使用XML配置文件注册组件,可以指定相对路径或绝对路径,查找XML。
③XmlWebApplicationContext:spring使用XML配置文件注册组件,根据WEB应用程序的部署路径查找XML文件。
④AnnotationConfigApplicationContext:spring 使用配置类和注解类注册组件,现在用的比较多。
AOP:面向切面编程,大概思想就是说在核心业务之外添加一些辅助业务,主要采用了代理模式(动态代理、cglib代理)。比如事务的管理、日志的生成、权限的控制判断等都是通过切面的方式添加的。这样的话核心业务和辅助业务完全分开,辅助业务spring容器帮我们完成,开发者只需要专注自己的核心业务。
AOP切面编程的几个术语:
①切面(Aspect):就是你要实现的交叉的非核心业务功能,比如日志的生成业务。
②连接点(Joinpoint):应用程序执行过程中插入切面的地点,可以是方法调用,异常抛出。可以理解为定义哪些地方允许插入切面。
③通知(Advice):通知切面的事件实现代码。包括前置通知Before、后置通知After、返回后通知AfterReturn、抛出异常通知AfterThrowing、环绕通知Around
④切入点(pointcut):定义通知应用在哪些连接点。可以理解为实际上插入切面的地方
⑤目标对象(Target):被通知的对象
⑥代理(proxy):将通知应用到目标对象后创建的对象。
⑦织入(Weaving):将切面应用到目标对象从而创建一个新的代理对象的过程。在目标对象的生命周期里有多个点可以进行织入:
编译期:
切面在目标类编译时被织入。需要特殊的编译器,是AspectJ的方式,不是spring的菜。
类加载期:
切面在目标类加载到JVM时被织入。这种方式需要特殊的类加载器,它可以在目标类被引入应用之前, 增强该目标类的字节码。AspectJ5支持这种方式。
运行期:
切面在应用运行的某个时刻被织入。一般情况下,在织入切面时,AOP容器会为目标对象动态的创建, 一个代理对象。而这正是Spring AOP的织入切面的方式。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值