1、什么是spring?
spring是一个轻量级的控制反转和切面编程的容器框架,他的出现解决了企业开发的复杂的代码问题,现在不止用于企业开发,他有强大的社区资源
2、spring的两大核心概念(Bean和AOP):
- 控制反转(IOC):通过反射技术去动态创建对象,让对象的创建不在依赖于new,spring运行之后通过xml文件去动态去创建对象以及调用对象里面的方法
- 切面编程(AOP):这是一种程序设计规范,它可以分离业务代码和关注点代码(重复代码),
3、spring的设计目标和设计理念
它的最终目的是简化java的开发, 而且是全方位的简化Java的开发,为了降低Java开发的复杂性,提供了4个策略:
- 基于POJO轻量级和最小侵入编程
- 通过依赖注入和面向接口实现松耦合
- 基于切面和惯性进行编程
- 基于样板和减少样板的代码编程
4、spring框架的优缺点?
优点:
- 进行了非侵入式设计:降低了应用程序代码对框架的依赖性
- 方便解耦和简化开发
- 支持AOP:它允许一些通用的任务,如事务、安全日志等集中进行处理,提高程序的复用性
- 支持生明式事务:只需要通过配置就能够完成对事务的管理
- 方便集成各种框架,如struts、mybatis等框架
缺点:
- spring是一个轻量级的框架,但是却给人一个什么都能的感觉
- spring很依赖反射原理,而反射能够影响性能
- spring的使用门槛高,入门时间长
5、spring有哪些场景?
JavaEE企业应用开发,包括SSM、SSH框架
6、spring有哪些模块组成
1、核心容器(Spring Core):它提供了Spring的基础功能
2、SpringAOP(切面编程):提供切面支持,是轻量级容器
3、应用上下文(Spring context):实现了Applictioncontext接口,提供了一些核心容器、事件处理等的功能
4、JDBC和AO模块(Spring DAO):提供JDBC和DAO还有事务的支持
5、对象实体映射(spring ORM):是spring提供了若干个ORM映射框架,提供对象映射的关系的工具
6、Web模块(Spring Web):扩张Spring的上下文,为Web的应用上下文提供支持
7、MVC模块(SpringWebMVC):MVC框架是一个全功能构建Web应用程序的MVC实现,
7、Spring框架里面应用到哪些设计模式?
简单工厂模式:
- BeanFactory,spring里面的BeanFactory就是简单工厂实现的,实质就是由工厂类来决定创建哪一个产品类,
- 设计意义:达到松耦合和Bean的额外处理
工厂方法:
- 实现方式:FactoryBean
- 典型例子:spring和mybatis的结合
单例设计模式
- spring的依赖注入就是单例
适配器模式
- 实现方式:springMVC中的适配器HandlerAdatper
- 实现原理:HandlerAdatper根据Handler的规则去执行不同的Handler
装饰器模式
代理模式
- 实现方式:AOP的底层就是代理模式,
观察者模式
- 实现方式:spring的事件驱动就是观察者模式,
- 具体实现:事件机制的实现三大部分:事件源、事件、事件监听器
策略模式
实现方式:spring框架资源访问Resource接口
模板方法
- 经典的定义:父类定义骨架,某些子类进行特定方法的实现
8、什么是Spring的IOC容器?
- SpringIOC就是创建对象、管理对象(通过依赖注入(DI))、装配对象、配置对象,并且管理这些对象的这个生命周期
- 什么是IOC:Inversion Of Cerontrol (控制反转),是一种思想,它将你设计好的对象交给容器进行控制,而不是进行传统的进行对象控制,对于Spring框架来说,就是对对象的生命周期和对象之间的关系进行控制。
- Ioc的优点:
- Ioc和依赖注入把代码量给降到最低
- 它进行测试的时候很容易
- 通过最少的代码和最小的侵入性进行了松耦合
- Ioc容器支持加载服务时候饿汉式初始化和懒加载
9、SpringIOC支持那些功能?
- 依赖注入
- 自动装配
- 依赖检查
- 支持集合
- 指定初始化方法和销毁方法
- 支持某些方法回调
10、spring的两大核心容器是什么?
- BeanFactory
- AppliactionContext
11、Spring的两大核心容器的区别?
- BeanFactory:创建BeanFactory时候,需要提供Spring管理容器的详细信息
- Applicationontext:创建ApplicationConext时候,只需要指定配置文件的名称和位置,Spring会去类路径里面寻找ApplicationContext.xml的配置文件
12、Spring的依赖注入是什么?
spring依赖注入就是在创建对象的时候,通过依赖对象进行注入,这样可以降低代码之间的耦合性
- 依赖注入的方式:
- set方法注入:需要为注入的变量提供set’方法
- t通过构造方法注入:
- Bean对象需要提供有参的构造方法
- 自动注入
- 这个分为两种,
- 全局配置注入
- 局部配置注入
13、Spring依赖注入的原则
开闭原则:
- 定义:应用本身就是可以扩展的,而是不可修改的,也就是对扩展开放,对修改关闭
- 优点:
- 易扩展:它的开闭原则就是对扩展开发
- 已维护:因为它的开闭原则,对于源代码的修改进行关闭,这就减少修改代码的可能,也就提高维护性
高内聚,低耦合
- 相关度比较高的集中,相关的两个模块尽量减少代码之间的联系,降低他们之间的耦合性
14、什么是Spring里面的Bean?
- 定义:就是Spring里面的SpringIoc容器管理的对象就是Bean
15、spring有几种配置方式
有三种配置方式
- 通过XML文件进行配置
- spring框架里面常用的方式,也是人们常用的
- 通过注解进行配置
- 注解进行配置是spring2.5之后才有的,它的出现就是简化xml文件进行配置的,所以是结合xml文件配置的
- 通过Java进行配置
- Java进行配置是在spring3.0之后有的,
16、spring里面的各种注解
- 包扫描+组件标注注解
- @Component:泛指各种组件
- @Controller、@Service、@Repository都可以称为@Component
- @Controller:控制层
- @Service:业务层
- @Repository:数据访问层
- Bean:导入第三方包里面的注解
- 注入Bean的注解
- @Autowired:由Bean提供
- @Resource:
- @Configuration:声明当前类为配置类
- 切面相关的注解
- @Aspect:声明这是一个切面
- @After:在方法执行之后执行
- @Before:在方法执行之前执行
- @Around:在方法执行之前和之后执行
- @PointCut:声明切点
- Value注解:属性注入
- 环境切换:@Profile
17、spring里面的requestmappig的作用
作用:就是将请求和请求的控制器给串联起来
这个注解是标识位置的,value的属性,method属性
这个注解使用在类上面的时候,表示这个类的访问就是 取消代码里面的RepuestMapping注释
18、spring框架里面如何更加有效的使用JDBC?
面经之Spring
最新推荐文章于 2023-11-09 08:18:52 发布