*Spring全家桶*
*Spring:*
1、 *Spring是什么?*
Spring是一个轻量级Java开发框架,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/JavaEE(一站式)轻量级开源框架,为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,因此Java开发者可以专注于****应用程序的开发****。
2、 *spring的作用?*
Spring可以做很多事情,它为企业级开发提供了丰富的功能,方便解耦,简化开发,AOP编程支持,声明式事务支持,集成Junit更加方便的进行分层测试,方便集成各种优秀框架.
这些功能的底层都依赖它的两个核心特性D1,也就是依赖注入和面向切片编程AOP;
Spring通过IoC容器实现对象耦合关系的管理,并实现依赖反转,将对象之间的依赖关系交给IoC容器,实现解耦;
3、 *spring的优缺点是什么?*
*优点:*
ta有点很多,比如方便解耦、简化开发、
AOP编程支持方便的实现对程序进行权限拦截、运行监控等,
声明式事务支持:只需要配置就可以完成对事务的管理,不用手动编程,
集成Junit更加方便的进行分层测试,方便集成各种优秀框架.
*缺点:*
spring明明是一个轻量级框架,给人的感觉却是大而全,使用门槛升高,入门spring需要较长的时间,还有就是他的依赖反射影响性能;
4、 *Spring的应用场景:(了解)*
javaEE企业应用开发,包括ssm和ssh;
5、 *谈谈你对IOC的理解:*
IOC(控制反转)就是将原本在程序中手动创建对象的控制权,交由给Spring框架来管理。IOC在其他语言中也有应用,并非Spring特有。IOC容器是Spring用来实现IOC的载体,IOC容器实际上就是一个Map(key, value),Map中存放的是各种对象。
将对象之间的相互依赖关系交给IOC容器来管理,并由IOC容器完成对象的注入。这样可以很大程度上简化应用的开发,把应用从复杂的依赖关系中解放出来。IOC容器就像是一个工厂一样,当我们需要创建一个对象的时候,只需要配置好配置文件/注解即可,完全不用考虑对象是如何被创建出来的。在实际项目中一个Service类可能由几百甚至上千个类作为它的底层,假如我们需要实例化这个Service,可能要每次都搞清楚这个Service所有底层类的构造函数,这可能会把人逼疯。如果利用IOC的话,你只需要配置好,然后在需要的地方引用就行了,大大增加了项目的可维护性且降低了开发难度。
6、 *Spring框架中用到了哪些设计模式?(了解)*
工厂模式:BeanFactory就是简单工厂模式的体现,用来创建对象的实例;
单例模式、代理模式;
7、 *spring中的通知是?*
通知是个在方法执行前或执行后要做的动作,Spring切面可以应用五种类型的通知,
before前置通知,在一个方法执行前被调用。
after后置通知:在方法成功完成后执行是否成功。
after-returning返回通知:当方法完成后执行的通知。
after-throwing异常通知:在方法抛出异常退出时执行的通知。
around环绕通知:在方法执行之前和执行之后调用的通知。
8、 *Spring支持的事务管理类型是?你更倾向用哪种事务管理类型?*
a、编程式事务管理是通过编程的方式管理事务,能带来极大的灵活性,但是难维护。
b、声明式事务管理,可以将业务代码和事务管理分离,你只需用注解和XML配置来管理事务。
大多数Spring框架的用户选择声明式事务管理,因为它对应用代码的影响最小,因此更符合一个无侵入的轻量级容器的思想。声明式事务管理要优于编程式事务管理,虽然比编程式事务管理(这种方式允许你通过代码控制事务)少了一点灵活性。
9、 *Spring AOP*
AOP一般称为面向切面编程,它是对OOP面向对象编程的一种补充延伸、用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为“切面”,
他的好处在于减少系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。可用于权限认证、日志、事务处理等。
10、<