Spring

  1. 详细描述什么是Spring?

    概念:spring是一个轻量级的框架,它的核心是IOC和AOP,使用基本的JavaBean完成我们以前只能由EJB完成的工作,取代EJB的臃肿和低效的开发模式

    优点:

    1、spring如同一个工厂,将所有的对象创建和销毁JavaBean交给spring管理,降低了对象之间的耦合性

    2、集成各种优秀的框架,封装了java EE中的一些难用的API降低了开发难度

    3、同时spring支持JUnit4,可以通过注解方便的测试spring程序

    4、支持AOP编程,可方便的实现对程序进行权限拦截和运行监控

    5、声明式事务支持,通过配置就可以完成对事务的管理

  2. 什么是Spring IOC?

    概念:控制反转,将设计好的对象交给spring管理

    优点:降耦,资源集中管理,提高复用性

  3. 什么是Spring AOP?描述其应用场景(最少2个)

    概念:面向切面编程,通过预编译的方式和运行期动态代理,实现不修改代码,给应用添加统一的功能

    应用:事务,日志,缓存等

  4. AOP的通知有几个,分别是什么

    1、前置通知:在连接点之前执行,不会影响连接点执行除非抛出异常

    2、后置通知:在连接点之后执行,连接点抛出异常,则不执行

    3、返回通知:在连接点执行后执行,不管是否抛出异常都会执行

    4、异常通知:连接点之后执行,连接点抛出异常则执行

    5、环绕通知:环绕在连接点前后执行

  5. 描述Spring Bean的作用域?

    1、singleton:在spring容器中只存在一个bean实例,为默认值,单例模式

    2、prototype:每次从spring中调用都会创建一个新的实例,多例模式

    3、request:HTTP请求都会创建一个新的bean,适用于WebApplicationContext环境

    4、session:同一个HTTPsession共享一个Bean,不同的session使用不同的Bean,适用于WebApplicationContext环境

    5、application:绑定一个bean的作用域为selevelContent的生命周期,该作用域只适用于web的spring webapplicationcontent环境

  6. Spring Bean 注入有几种方式?

    1、构造器注入:通过在bean的构造方法中将bean注入 (初始化或设置默认值)

    2、setter注入:在bean的set方法中注入(正常使用)

    3、工厂方法注入:通过方法返回值注入

  7. SpringBean 生命周期?

    实例化BEAN(默认)

    (前置处理器)(开发人员自定义方法)

    init(开发人员自定义方法)

    (后置处理器)(开发人员自定义方法)

    set注入属性赋值

    使用目标方法

    destroy(开发人员自定义方法)

  8. Spring框架中 用到了哪些设计模式?(不低于3个)

    设计模式:前人的经验总结。

    框架:一系列类、方法、属性

    作用:简化代码开发,提高代码复用率

    工厂模式:在AOP和remoting中被用的比较多

    单例模式:在spring配置文件中定义的bean默认为单例模式

    模板方法模式:解决代码重复问题

    代理模式

  9. 描述Spring事务传播行为?

    1、required:默认传播行为,有事务加入事务,没有事务创建一个

    2、required_New:不管事务是否存在,都创建一个新的事务,先执行新事务,原事务挂机,稍后执行

    3、supports:为调用此方法的bean声明事务,否则就不用声明事务

    4、Notsupported:容器不为这个方法开启事务

    5、mandatory:必须在一个已有事务中执行,否则抛出异常

    6、Never:必须在一个没有事务中执行,否则抛出异常

    7、Nested:如果当前事务存在,则嵌套事务内执行

  10. 描述Spring事务的隔离级别?

    isolation-default:默认传播行为

    isolation-read-uncommitted:读未提交

    isolation-read-commit:读已提交

    isolation-repeatable-read:可重复读

    isolation-serializable:序列化读

  11. Spring事务传播行为 REQUIRED和REQUIRED_NEW区别

    required:支持当前事务,没有则新建

    required_New:新建事务,如果当前事物存在,在挂起当前事务

  12. 数据库设计三大范式?

    第一范式条件:必须不包含重复组的关系,即每一列都是不可拆分的原子项

    第二范式条件:关系模式必须满足第一范式,并且所有非主属性都完全依赖于主码。注意,符合第二范式的关系模型可能还存在数据冗余、更新异常等问题

    **第三范式的条件:**关系模型满足第二范式,所有非主属性对任何候选关键字都不存在传递依赖。即每个属性都跟主键有直接关系而不是间接关系,像:a–>b–>c。

  13. 软件开发生命周期?

    1、可行性分析,

    2、需求分析

    3、开发实现

    4、发布

    5、部署生产

  14. 说一下DTO和PO的区别?以及优缺点?

    DTO是展示层和服务处之间传递数据的对象,减少分布式调用次数,提高分布式调用性能和降低网络负载

    PO:持久化的对象,跟持久层的数据结构形成一一对应的映射关系

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值