Spring Container就像jvm一样吗?

时间:2013-11-26 21:31:47

标签: spring

Spring Container就像jvm一样吗?还是有所不同? 为什么主要使用Spring IOC?如果是用于创建对象而不使用new运算符?使用new运算符有什么问题?

如果我们正在创建单例对象并在应用程序需要时返回相同的对象,我们将在服务器启动时加载所有对象?会不会使申请变得沉重?

如果是这样,那么为什么我们需要弹簧芯呢? 过滤器,bean后处理器,aop有何不同? 如果aop用于实现交叉问题,为什么我们需要beanProcessor接口?

1 个答案:

答案 0 :(得分:5)

  

Spring Container就像jvm一样吗?

不,Spring是一个Java框架。它提供了可用于在JVM上运行Java应用程序的类。

  

为什么主要使用Spring IOC?

Learn what Inversion of Control is and you will understand why it is used so heavily.

  

如果是在不使用new运算符的情况下创建对象?什么是   使用new运算符有错误吗?

new关键字强制编译时依赖性。控制和依赖注入的反转消除了这些依赖性,主要是通过反射。

  

如果我们正在创建单例对象并返回相同的对象   只要应用程序需要,我们就会加载服务器上的所有对象   启动?会不会使申请变得沉重?

您通常会在启动时想要所有这些对象,因此这不是问题。您可以使用延迟加载来延迟这些对象(bean)的初始化。

  

如果是这样,那么为什么我们需要弹簧芯?

如果是什么是这样的?

  

过滤器,bean后处理器,aop有何不同?

BeanFactory创建并初始化bean。 BeanPostProcessor用于将bean包装在代理中或修改该bean的属性。 javadoc有更多详细信息。

面向方面编程是一种编程风格。为了使用普通的旧Java实现它,您需要使用JDK或CGLIB代理。通过包装已处理的bean,使用BeanPostProcessor实例应用这些实例。进入目标bean的调用将被代理拦截,代理将在委托给目标bean之前(可能)执行逻辑。 Java的AOP功能几乎完全局限于方法调用。