Spring小结

1.Spring:

  Spring的核心宗旨是简化企业级应用开发,同时给复杂的问题提供强大非侵入性框架。

  Spring是一个轻量级的ioc和aop容器框架,Spring框架提供功能是由用户自己来决定的,用户要什么功能就调用什么功能并使用。

 

2.Spring的优点:

  (1)Spring属于低侵入性框架,代码的污染极低。

  (2)动态解耦,简化开发:提供了ioc容器,将对象之间的依赖交给Spring控制。

  (3)aop编程的支持

  (4)声明式事务的支持

  (5)方便集成各种优秀的框架

 

3.IOC(控制反转):

  IOC控制反转指将设计好的类交给Spring容器管理,而不是类的内部自己进行控制。将创建对象的的控制权转移到Spring容器中,并有容器根据配置文件去创建实例和管理各个实例之间的依赖关系,降低耦合,也利于功能的复用。

 

4.依赖注入的方式:

  (1)set注入:property(实体类)中存在set()方法,默认通过反射调用无参构造器。

  (2)构造器注入:根据类型或下标注入(最好还存在类型,从0开始)。

  (3)注解注入:@Autowire根据byType,再添加@Qualifier按byName。

           @Resource默认根据byName,再按照byType(javax包中的注解)

5.Spring的自动装配:

   autowire中的值:通过设置autowire的值自动进行依赖注入。

  (1)no:默认不进行自动装配,通过<ref>标签来装配bean。

  (2)byName:根据bean名称来进行自动装配。

  (3)byType:根据参数的数据类型来进行自动装配。

  (4)constructor:利用构造函数进行自动装配,并且构造函数的参数通过bytype进行自动装配。

  (5)autodetect:自动探测,有构造方法,通过构造方法自动装配,否则通过bytype的方法自动装配。

 

6.bean的作用域:

  (1)singleton:IOC容器中只存在一个bean实例,bean默认以单例的模式存在

  (2)prototype:每次容器调用bean时都会返回一个实例。

  (3)request:适用于webApplicationContext,每次http请求都会创建一个新的bean。

  (4)session:使用于webApplicationContext,同一个HTTPSession共享一个bean,不同的session使用不同的bean。

  (5)globalSession:适用于webApplicationContext,适用于protlet应用环境。

 

7.AOP(面向切面编程):

  AOP通过预编译和动态代理实现程序功能统一维护的一种技术。

  在运行期间,将两块代码动态的结合在一起。

  利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,

  提高程序的可重用性。

 

8.动态代理:

  1.jdk代理(目标类和代理类实现统一接口):使用反射技术(默认代理方式,不实现同一接口就用cglib)。

  2.第三方jar包(cglib:目标类和代理类是继承关系):通过字节码为目标类创建一个子类对象,

     并且子类对象中拦截父类的所有方法的调用,然后在方法调用的前后添加想加入执行的代码。

 

9.设计模式

  (1)工厂模式:创建工厂类对象实例的时候。

  (2)单例模式:bean默认为单例模式。

  (3)代理模式:aop的动态代理。

  (4)模板方法:解决代码重复问题。(Template)

  (5)观察者模式:当一个对象的状态改变时,所有依赖它的对象都会得到通知被制动更新。

 

推荐:Spring的面试总结(个人觉得还不错):https://blog.csdn.net/a745233700/article/details/80959716

posted @ 2019-09-19 22:01  spring-effort  阅读(200)  评论(0编辑  收藏  举报