50、介绍一下 WebApplicationContext
50、介绍一下 WebApplicationContext
英文原文链接:
https://www.edureka.co/blog/interview-questions/spring-interview-questions/
51、什么是 spring?
Spring 是个 java 企业级应用的开源开发框架。Spring 主要用来开发 Java 应用,但是有些扩展是针对构建 J2EE 平台的 web 应用。Spring 框架目标是简化 Java企业级应用开发,并通过 POJO 为基础的编程模型促进良好的编程习惯。
52、使用 Spring 框架的好处是什么?
轻量:Spring 是轻量的,基本的版本大约 2MB。
控制反转:Spring 通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。
面向切面的编程(AOP):Spring 支持面向切面的编程,并且把应用业务逻辑和系统服务分开。
容器:Spring 包含并管理应用中对象的生命周期和配置。
MVC 框架:Spring 的 WEB 框架是个精心设计的框架,是 Web 框架的一个很好的替代品。
事务管理:Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)。
异常处理:Spring 提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO 抛出的)转化为一致的 unchecked 异常。
53、Spring 由哪些模块组成?
以下是 Spring 框架的基本模块:
Core module Bean module
Context module Expression Language module
JDBC module ORM module
OXM module Java Messaging Service(JMS) module
Transaction module Web module
Web-Servlet module Web-Struts module
Web-Portlet module
54、Spring的IOC和AOP机制
我们是在使用Spring框架的过程中,其实就是为了使用IOC,依赖注入,和AOP,面向切面编程,这两个是Spring的灵魂。
主要用到的设计模式有工厂模式和代理模式。
IOC就是典型的工厂模式,通过sessionfactory去注入实例。
AOP就是典型的代理模式的体现。
代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本
身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务
spring的IoC容器是spring的核心,spring AOP是spring框架的重要组成部分。
在传统的程序设计中,当调用者需要被调用者的协助时,通常由调用者来创建被调用者的实例。但在spring里创建被调用者的工作不再由调用者来完成,因此控制反转(IoC);创建被调用者实例的工作通常由spring容器来完成,然后注入调用者,因此也被称为依赖注入
(DI),依赖注入和控制反转是同一个概念。
面向方面编程(AOP)是以另一个角度来考虑程序结构,通过分析程序结构的关注点来完善面向对象编程(OOP)。OOP将应用程序分解成各个层次的对象,而AOP将程序分解成多个切面。spring AOP 只实现了方法级别的连接点,在J2EE应用中,AOP拦截到方法级别的操作就
已经足够。在spring中,未来使IoC方便地使用健壮、灵活的企业服务,需要利用spring AOP实现为IoC和企业服务之间建立联系。
IOC:控制反转也叫依赖注入。利用了工厂模式将对象交给容器管理,你只需要在spring配置文件总配置相应的bean,以及设置相关的属性,让spring容器来生成类的实例对象以及管理对
象。在spring容器启动的时候,spring会把你在配置文件中配置的bean都初始化好,然后在你需要调用的时候,就把它已经初始化好的那些 bean分配给你需要调用这些bean的类(假设这个类名是A),分配的方法就是调用A的setter方法来注入,而不需要你在A里面new这些
bean了。
注意:面试的时候,如果有条件,画图,这样更加显得你懂了
AOP:面向切面编程。(Aspect-Oriented Programming)
AOP可以说是对OOP的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许你定义从上到下的关系,但并不适合定义从左到右

全站分卷索引 · 222 卷
- 1JavaOOP面试题
- 27、Java的数据结构有那些?
- 314、Char类型能不能转成int类型?能不能转化成string类型,能不能转成double类型
- 420、访问修饰符 public,private,protected,以及不写(默认) 时的区别?
- 525、equals与==的区别
- 641、Object类常用方法有那些?
- 747、构造方法能不能显式调用?
- 854、String str=”aaa”,与String str=new String(“aaa”)一样吗?
- 963、Hashcode的作用
- 1066、有没有可能两个不相等的对象有相同的hashcode
- 1170、final、finalize()、finally
- 1278、什么是成员内部类
- 1385、排序都有哪几种方法?请列举
- 1495、String 和 StringBuilder、StringBuffer 的区别?
- 15100、Java 中会存在内存泄漏吗,请简单描述。
- 16101、抽象的(abstract)方法是否可同时是静态的(static),是否可同时是本地方法(native),是否可同时被 synchronized修饰?
- 17104、接口是否可继承(extends)接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concreteclass)?
- 18107、内部类可以引用它的包含类(外部类)的成员吗?有没有什么限制?
- 193、Collection包结构,与Collections的区别
- 208、集合类存放于 Java.util 包中, 主要有几 种接口
- 2114、HashSet( Hash 表)
- 2216、说说LinkHashSet( HashSet+LinkedHashMap)
- 2319、HashTable(线程安全)
- 2421、LinkHashMap(记录插入顺序)
- 253、如何自定义一个异常
- 266、Thow与thorws区别
- 273、常用io类有那些
- 2810、JAVA NIO
- 29Java反射面试题
- 308、Java 反射 API
- 31Java序列化面试题
- 327、序列化 ID
- 332、注解是什么?
- 343、实现 Runnable 接口。
- 357、如何停止一个正在运行的线程
- 368、notify()和notifyAll()有什么区别?
- 3711、Thread 类中的start() 和 run() 方法有什么区别?
- 3817、SynchronizedMap和ConcurrentHashMap有什么区别?
- 3922、说说自己是怎么使用 synchronized 关键字,在项目中用到了吗synchronized关键字最主要的三种使用方式
- 4030、阻塞状态(BLOCKED)
- 4133、start 与 run 区别
- 4238、Synchronized 同步锁
- 4340、Condition 类和 Object 类锁方法区别区别
- 4443、Semaphore 与 ReentrantLock 区别
- 4549、轻量级锁
- 4657、线程中断(interrupt)
- 4764、寄存器
- 4874、拒绝策略
- 4977、Java 中的阻塞队列
- 5078、ArrayBlockingQueue(公平、非公平)
- 5185、在 java 中守护线程和本地线程区别
- 5292、在 Java 中 Executor 和 Executors 的区别?
- 5397、什么是阻塞队列?阻塞队列的实现原理是什么?如何使用阻塞队列来实现生产者-消费者模型?
- 54103、为什么我们调用 start()方法时会执行 run()方法,为什么我们不能直接调用 run()方法?
- 55JVM面试题
- 5610、解释 Java 堆空间及 GC?
- 5712、程序计数器(线程私有)
- 5818、描述一下 JVM 加载 class 文件的原理机制
- 5923、新生代
- 6029、标记清除算法( Mark-Sweep)
- 6132、分代收集算法
- 6238、JAVA虚引用
- 6346、Parallel Scavenge 收集器(多线程复制算法、高效)
- 6459、CMS 收集器(多线程标记清除算法)
- 6562、类加载器
- 6663、双亲委派
- 6767、JVM内存模型
- 6876、什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?
- 6979、Java对象创建过程
- 7086、Minor GC与Full GC分别在什么时候发生?
- 712、TokuDB( Fractal Tree-节点带数据)
- 726、InnoDB与MyISAM的区别
- 7311、第二范式(2nd NF- 每个表只描述一件事情)
- 7415、简单说一说drop、delete与truncate的区别
- 7520、大表如何优化?
- 7622、分库分表之后,id 主键如何处理
- 7729、简述在 MySQL 数据库中 MyISAM 和 InnoDB 的区别
- 7838、列对比运算符是什么?
- 7948、MySQL 支持事务吗?
- 8055、什么情况下设置了索引但无法使用
- 8161、为表中得字段选择合适得数据类型
- 8267、完整性约束包括哪些?
- 8375、主键、外键和索引的区别?
- 8483、什么是页级锁
- 856、Memcache 与 Redis 的区别都有哪些?
- 8611、热点数据和冷数据是什么
- 8715、Redis 常见性能问题和解决方案?
- 8819、Redis 常见性能问题和解决方案:
- 8926、Redis 集群方案什么情况下会导致整个集群不可用?
- 9040、Redis 如何做内存优化?
- 9147、假如 Redis 里面有 1 亿个 key,其中有 10w 个 key 是以某个固定的已知的前缀开头的,如果将它们全部找出来?
- 922、memcached 服务在企业集群架构中有哪些应用场景?
- 935、memcached 是怎么工作的?
- 9412、如何将 memcached 中 item 批量导入导出?
- 9520、什么是二进制协议,我该关注吗?
- 96MongoDB面试题
- 974、NoSQL数据库有哪些类型?
- 9815、如何执行事务/加锁?
- 9929、如果我在使用复制技术(replication),可以一部分使用日志(journaling)而其他部分则不使用吗?
- 10042、分析器在MongoDB中的作用是什么?
- 10156、MongoDB的优势有哪些
- 10267、MongoDB中的命名空间是什么意思?
- 10375、在MongoDB中如何除去一个数据库Collection Methods24.在MongoDB中如何除去一个数据库
- 10485、如何在集合中插入一个文档
- 10593、在MongoDB中如何排序
- 1065、Spring Framework 中有多少个模块,它们分别是什么?
- 1078、使用 Spring 有哪些方式?
- 10816、Spring IoC 的实现机制。
- 10919、spring 支持集中 bean scope?
- 11023、自动装配有哪些方式?
- 11130、@Qualifier 注解有什么用?
- 11234、spring JDBC API 中存在哪些类?
- 11340、什么是切点(JoinPoint)
- 11446、如何理解 Spring 中的代理?
- 11550、介绍一下 WebApplicationContext
- 11655、Spring中Autowired和Resource关键字的区别
- 11757、讲一下什么是Spring
- 11859、springMVC是什么
- 11965、解释Spring支持的几种bean的作用域。
- 12071、解释 AOP 模块
- 12181、有哪些不同类型的 IOC(依赖注入)方式?
- 12291、什么是 Spring 的内部 bean?
- 123102、@Autowired 注解
- 124113、解释 AOP
- 125126、什么是 Spring 的 MVC 框架?
- 1263、Spring Boot 有哪些优点?
- 1277、如何在Spring Boot启动的时候运行一些特定的代码?
- 12815、Spring Boot 的核心配置文件有哪几个?它们的区别是什么?
- 12923、如何实现 Spring Boot 应用程序的安全性?
- 13034、什么是 AOP?
- 13140、运行 Spring Boot 有哪几种方式?
- 13249、如何重新加载Spring Boot上的更改,而无需重新启动服务器?
- 13353、Spring Boot 还提供了其它的哪些 Starter Project Options?
- 13455、创建一个 Spring Boot Project 的最简单的方法是什么?
- 13558、 什么是嵌入式服务器?我们为什么要使用嵌入式服务器呢?
- 13661、什么是 Spring Data REST?
- 13765、如何使用 Spring Boot 生成一个 WAR 文件?
- 13873、如何不通过任何配置来选择 Hibernate 作为 JPA 的默认实现?
- 13976、Spring Boot 配置的默认 H2 数据库的名字是上面?为什么默认的数据库名字是 testdb?
- 14081、如何使用配置文件通过 Spring Boot 配置特定环境的配置?
- 14183、如何禁用特定的自动配置?
- 14287、SpringBoot 中静态首页默认位置可以放在哪里?
- 143Spring Cloud面试题
- 1447、什么是 Netflix Feign?它的优点是什么?
- 1459、什么是微服务
- 14611、Eureka和zookeeper都可以提供服务注册与发现的功能,请说说两个的区别?
- 14714、说说 RPC 的实现原理
- 14819、微服务之间是如何独立通讯的?
- 14927、springcloud断路器作用?
- 15035、Eureka和zookeeper都可以提供服务注册与发现的功能,请说说两个的区别?
- 1513、使用 rabbitmq 的场景
- 15210、使用 RabbitMQ 有什么好处?
- 15315、如何保证消息的可靠传输?如果消息丢了怎么办
- 15417、如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决
- 15520、什么是Publisher ?
- 15631、Fanout(广播分发)?
- 157Dubbo 面试题
- 1585、一般使用什么注册中心?还有别的选择吗?
- 15914、Dubbo 集群容错有几种方案?
- 16019、Dubbo 配置文件是如何加载到 Spring 中的?
- 16124、Dubbo 必须依赖的包有哪些?
- 16231、Dubbo是什么?
- 16342、Dubbo可以对结果进行缓存吗?
- 16430、服务读写推荐的容错策略是怎样的?
- 165MyBatis 面试题
- 1668、 模糊查询 like 语句该怎么写?
- 16713、如何获取自动生成的(主)键值?
- 16814、在 mapper 中如何传递多个参数?
- 16918、为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里?
- 17024、什么是 MyBatis 的接口绑定?有哪些实现方式?
- 17128、MyBatis实现一对一有几种方式?具体怎么操作的 ?
- 1726、四种类型的数据节点 Znode
- 17311、ACL 权限控制机制
- 17417、zookeeper 是如何保证事务的顺序一致性的?
- 17524、Zookeeper 对节点的 watch监听通知是永久的吗?为什么不是永久的?
- 17632、分布式通知和协调
- 17739、事务编号 Zxid(事务请求计数器+ epoch)
- 17846、ZAB 协议 JAVA 实现(FLE-发现阶段和同步合并为 Recovery Phase(恢复阶段) )
- 1791、栈(stack)
- 1805、排序二叉树
- 1816、 前缀树
- 1827、红黑树
- 1838、B-TREE
- 1849、位图
- 185算法面试题
- 1863、假设今日是2015年3月1日,星期日,请算出13个月零6天后是星期几,距离现在多少天(请用代码实现,谢绝调用API方法)
- 1875、二分查找
- 1888、快速排序算法
- 1899、希尔排序算法
- 19010、归并排序算法
- 19111、桶排序算法
- 19213、剪枝算法
- 19317、AES
- 19419、CRC
- 19521、更多算法练习
- 1963、elasticsearch 索引数据多了怎么办,如何调优,部署
- 1976、详细描述一下 Elasticsearch 搜索的过程?
- 1989、Elasticsearch 是如何实现 Master 选举的?
- 19913、详细描述一下 Elasticsearch 更新和删除文档的过程。
- 20017、对于 GC 方面,在使用 Elasticsearch 时要注意什么?
- 20122、介绍一下你们的个性化搜索方案?
- 202Kafka 面试题
- 2033、数据文件分段 segment(顺序读写、分段命令、二分查找)
- 2048、Consumer Group
- 20513、讲一下主从同步
- 20619、消费者如何不自动提交偏移量,由应用提交?
- 207微服务 面试题
- 2083、微服务有哪些特点?
- 2095、微服务架构如何运作?
- 2108、在使用微服务架构时,您面临哪些挑战?
- 21113、什么是无所不在的语言?
- 21220、Spring Cloud 解决了哪些问题?
- 21328、双因素身份验证的凭据类型有哪些?
- 21434、什么是端到端微服务测试?
- 21540、我们如何进行跨功能测试?
- 21646、什么是持续集成(CI)?
- 2173、怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当
- 2188、建立软链接(快捷方式),以及硬链接的命令
- 21914、复制文件用哪个命令?如果需要连同文件夹一块复制呢?如果需要有提示功能呢?
- 22025、怎么查看系统支持的所有信号?
- 22134、查找命令的可执行文件是去哪查找的? 怎么对其进行设置及添加?
- 22241、如果你的助手想要打印出当前的目录栈,你会建议他怎么做?