java面试笔试题不会(java面试很难)
本文分享给大家的是:
SpringBoot面试题
目录SpringBoot面试相关问题一、Spring Boot、Spring MVC 和 Spring 有什么区别?问题二、什么是自动配置?Spring Boot自动配置加载流程源码分析问题三、什么是 Spring Boot Stater ?
问题四、你能否举一个例子来解释更多 Staters 的内容?问题五、Spring Boot 还提供了其它的哪些 Starter Project Options?问题六、Spring 是如何快速创建产品就绪应用程序的?
问题七、Springboot2.x 和 Spring 5 所需要的最低 Java 版本是什么问题网站建设与推广策划书八、创建一个 Spring Boot Project 的最简单的方法是什么?问题九、Spring Initializr 是创建 Spring Boot Projects 的唯一方法吗
问题一、Spring Boot、Spring MVC 和 Spring 有什么区别?1、SpringSpring最重要的特征是依赖注入所有 SpringModules 不是依赖注入就是 IOC 控制反转。
当我们恰当的使用 DI 或者是 IOC 的时候,我们可以开发松耦合应用松耦合应用的单元测试可以很容易的进行2、Spring MVCSpring MVC 提供了一种分离式的方法来开发 Web 应用通过运用像 Disp网站建设与推广策划书atcherServelet,MoudlAndView 和 ViewResolver 等一些简单的概念,开发 Web 应用将会变的非常简单。
3、SpringBootSpring 和 SpringMVC 的问题在于需要配置大量的参数Spring Boot 通过一个自动配置和启动的项来目解决这个问题为了更快的构建产品就绪应用程序,Spring Boot 提供了一些非功能性特征。
Spring Boot便是一个社区反馈推动的项目. Spring Boot可以说是至少近5年来Spring乃至整个Java社区最有影响力的项目之一Spring Boot主要包含以下特性:l 直接嵌入Tomcat, Jetty网站建设与推广策划书或者Undertow作为Servlet container。
从此之后再也不用将应用程序打包成war然后上传到application server里面了l 提供了starter POM, 能够非常方便的进行包管理, 很大程度上减少了jar hell或者dependency hell
l 自动进行Spring框架的配置,节省程序员大量的时间和精力,能够让程序员专注在业务逻辑代码的编写上l 不需要任何第三方系统, Spring Boot自带了可以用于生产环境的程序状态信息和健康状态。
同时可以让应用程序非常方便的读取外部的配置信息l 完全不需要任何代码的自动生成更不需要用xml来进行框架的配置问题二、什网站建设与推广策划书么是自动配置?以往的SSM框架组合中存在大量配置文件需要维护SpringBoot遵循约定大于配置的原则给开发者提供了极大的便利。
springboot 自动配置 主要通过@EnableAutoConfiguration @Conditional @EnableConfigurationProperties或者@ConfigurationProperties几个注解来进行自动配置。
@EnableAutoConfigurationSpring Boot自动配置加载流程源码分析1. 首先找到入口类的注解
2. @EnableAutoConfiguration注解位置
2. 使用@Import导入(Auto网站建设与推广策划书ConfigurationImportSelector.class)
3. getCandidateConfigurations
4.
5. 加载配置文件
开启自动配置,主要作用就是调用core包里的loadFactoryNames(),将autoconfig包里的已经写好的自动配置加载进来@Conditional条件注解,通过判断类路径下有没有相应配置的jar包来确定是否加载和自动配置这个类,。
@EnableConfigurationProperties的作用就是,给自动配置提供具体的配置参数,只需要写在application.properties中,就可以通过映射写入配置类的Pojo属性中@Ena网站建设与推广策划书ble*注释并不是SpringBoot新发明的注释,Spring 3框架就引入了这些注释,用这些注释替代XML配置文件。
比如:@EnableTransactionManagement注释,它能够声明事务管理@EnableWebMvc注释,它能启用Spring MVC@EnableScheduling注释,它可以初始化一个调度器。
问题三、什么是 Spring Boot Stater ?启动器是一套方便的对于一项技术的打包,它可以放在自己的程序中你可以一站式的获取你所需要的 Spring 和相关技术,而不需要依赖描述符的通过示例代码搜索和复制黏贴的负载。
例如,如果你想使用 Sping 和 JPA 网站建设与推广策划书访问数据库,只需要你的项目包含 spring-boot-starter-data-jpa 依赖项,你就可以完美进行 问题四、你能否举一个例子来解释更多 Staters 的内容?。
让我们来思考一个 Stater 的例子 -Spring Boot Stater Web如果你想开发一个 web 应用程序或者是公开 REST 服务的应用程序Spring Boot Start Web 是首选。
让我们使用 Spring Initializr 创建一个 Spring Boot Start Web 的快速项目Spring Boot Start Web 的依赖项
下面的截图是添加进我们应用程序的不同的依赖项
依赖项网站建设与推广策划书可以被分为:Spring - core,beans,context,aopWeb MVC - (Spring MVC)Jackson - for JSON BindingValidation - Hibernate,Validation API
Enbedded Servlet Container - TomcatLogging - logback,slf4j任何经典的 Web 应用程序都会使用所有这些依赖项Spring Boot Starter Web 预先打包了这些依赖项。
作为一个开发者,我不需要再担心这些依赖项和它们的兼容版本问题五、Spring Boot 还提供了其它的哪些 Starte网站建设与推广策划书r Project Options?Spring Boot 也提供了其它的启动器项目包括,包括用于开发特定类型应用程序的典型依赖项。
spring-boot-starter-web-services - SOAP Web Services;spring-boot-starter-web - Web 和 RESTful 应用程序;spring-boot-starter-test - 单元测试和集成测试;
spring-boot-starter-jdbc - 传统的 JDBC;spring-boot-starter-hateoas - 为服务添加 HATEOAS 功能;hateoas:HATEOAS(网站建设与推广策划书The Hypermedia As The Engine Of Application Statue)是REST架构的主要约束。
“hepermedia”表示任何包含指向图片、电影、文字等资源的链接,Web是超媒体的经典例子HATEOAS背后的思想其实非常简单,就是响应中包含指向其它资源的链接客户端可以利用这些链接和服务器交互client不用事先知道服务或者工作流中不同步骤,还有client不用再为不同的资源硬编码URI了。
而且服务器还可以在不破坏和客户端交互的情况下,更改URI非HATEOAS的响应例子是:
而HATEOAS的响应例子则是:
spring-boot-starter-security网站建设与推广策划书 - 使用 SpringSecurity 进行身份验证和授权;spring-boot-starter-data-jpa - 带有 Hibeernate 的 Spring Data JPA;
spring-boot-starter-data-rest - 使用 Spring Data REST 公布简单的 REST 服务;问题六、Spring 是如何快速创建产品级应用的?Spring Boot 致力于快速产品就绪应用程序。
为此,它提供了一些譬如高速缓存,日志记录,监控和嵌入式服务器等开箱即用的非功能性特征spring-boot-starter-actuator - 使用一些如监控和跟踪应用的高级功网站建设与推广策划书能spring-boot-starter-undertow, spring-boot-starter-jetty, spring-boot-starter-tomcat - 选择您的特定嵌入式 Servlet 容器
spring-boot-starter-logging - 使用 logback 进行日志记录spring-boot-starter-cache - 启用 Spring Framework 的缓存支持问题七、Springboot2.x 和 Spring 5 所需要的最低 Java 版本是什么?
Springboot2.x和spring5的最低Java支持版本为Java 8为了充分利用 网站建设与推广策划书Java 8 特性,Springboot2的代码库已进行了改进,而且该框架要求将 Java 8 作为最低的 JDK 版本。
Spring Boot 2.0 建立在 Spring Framework 5 之上,并且需要 Spring Framework 5Spring 5 在类路径(和模块路径)上完全兼容 Java 9,而且它通过了 JDK 9 测试套件的测试。
问题八、创建一个 Spring Boot Project 的最简单的方法是什么?Spring Initializr是启动 Spring Boot Projects 的一个很好的工具。
就像上图中所展示的一样,我们需要做一下几步:登录 Spri网站建设与推广策划书ng Initializr,按照以下方式进行选择:选择 com.in28minutes.springboot 为组选择 studet-services 为组件
选择下面的依赖项WebActuatorDevTools点击生 GenerateProject将项目导入 Eclipse文件 - 导入 - 现有的 Maven 项目问题九、Spring Initializr 是创建 Spring Boot Projects 的唯一方法吗?。
不是的第一种 通过start.spring.io 来生成下载第二种 手动配置pom.xml第三种 使用eclipse、idea插件第四种 使用集成度更高的STS(SPRI网站建设与推广策划书NG TOOL SUITE http://spring.io/tools)。
问题十、为什么我们需要 spring-boot-maven-plugin?Spring Boot的Maven插件(Spring Boot Maven plugin)能够以Maven的方式为应用提供Spring Boot的支持,即为Spring Boot应用提供了执行Maven操作的可能。
比如:· mvn spring-boot:repackage,默认goal在mvn package之后,再次打包可执行的jar/war· mvn spring-boot:run,运行Spring Boot应用。
· mvn spring-网站建设与推广策划书boot:start,在mvn integration-test阶段,进行Spring Boot应用生命周期的管理· mvn spring-boot:stop,在mvn integration-test阶段,进行Spring Boot应用生命周期的管理
· mvn spring-boot:build-info,生成Actuator使用的构建信息文件build-info.properties