起航学习网

- 让每个人都能学到最前沿新知识、新技能!
起航学习网
当前位置: 起航学习网 > 人在职场 > java程序员面试老不过 咋回事

java程序员面试老不过 咋回事

时间:2018-11-30 17:33:15来源:编程网 作者:IT培训网 已有: 名学员访问该课程

前言:Spring MVC 提供了一种分离式的方法来开发 Web 应用。通过运用像 DispatcherServelet,MoudlAndView 和 ViewResolver 等一些简单的概念,开发 Web 应用将会变的非常简单。

Java面试老不过?一定是面试答案有问题!

SpringBoot面试题

 

java程序员面试老不过 咋回事_qh.itpxw.cn

 

目录

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、Spring

Spring最重要的特征是依赖注入。所有 SpringModules 不是依赖注入就是 IOC 控制反转。

当我们恰当的使用 DI 或者是 IOC 的时候,我们可以开发松耦合应用。松耦合应用的单元测试可以很容易的进行。

2、Spring MVC

Spring MVC 提供了一种分离式的方法来开发 Web 应用。通过运用像 DispatcherServelet,MoudlAndView 和 ViewResolver 等一些简单的概念,开发 Web 应用将会变的非常简单。

3、SpringBoot

Spring 和 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几个注解来进行自动配置。

@EnableAutoConfiguration

Spring Boot自动配置加载流程源码分析

1. 首先找到入口类的注解

 

java程序员面试老不过 咋回事_qh.itpxw.cn

 

2. @EnableAutoConfiguration注解位置

 

java程序员面试老不过 咋回事_qh.itpxw.cn

 

2. 使用@Import导入(AutoConfigurationImportSelector.class)

 

java程序员面试老不过 咋回事_qh.itpxw.cn

 

3. getCandidateConfigurations

 

java程序员面试老不过 咋回事_qh.itpxw.cn

 

4.

 

java程序员面试老不过 咋回事_qh.itpxw.cn

 

5. 加载配置文件

 

java程序员面试老不过 咋回事_qh.itpxw.cn

 

开启自动配置,主要作用就是调用core包里的loadFactoryNames,将autoconfig包里的已经写好的自动配置加载进来。

@Conditional

条件注解,通过判断类路径下有没有相应配置的jar包来确定是否加载和自动配置这个类,

@EnableConfigurationProperties

的作用就是,给自动配置提供具体的配置参数,只需要写在application.properties中,就可以通过映射写入配置类的Pojo属性中。

@Enable*注释并不是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 的依赖项

 

java程序员面试老不过 咋回事_qh.itpxw.cn

 

下面的截图是添加进我们应用程序的不同的依赖项

 

java程序员面试老不过 咋回事_qh.itpxw.cn

 

依赖项可以被分为:

Spring - core,beans,context,aop

Web MVC - (Spring MVC)

Jackson - for JSON Binding

Validation - Hibernate,Validation API

Enbedded Servlet Container - Tomcat

Logging - logback,slf4j

任何经典的 Web 应用程序都会使用所有这些依赖项。Spring Boot Starter Web 预先打包了这些依赖项。

作为一个开发者,我不需要再担心这些依赖项和它们的兼容版本。

问题五、Spring Boot 还提供了其它的哪些 Starter 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的响应例子是:

 

java程序员面试老不过 咋回事_qh.itpxw.cn

 

而HATEOAS的响应例子则是:

 

java程序员面试老不过 咋回事_qh.itpxw.cn

 

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 5

Spring 5 在类路径(和模块路径)上完全兼容 Java 9,而且它通过了 JDK 9 测试套件的测试。

问题八、创建一个 Spring Boot Project 的最简单的方法是什么?

Spring Initializr是启动 Spring Boot Projects 的一个很好的工具。

 

java程序员面试老不过 咋回事_qh.itpxw.cn

 

就像上图中所展示的一样,我们需要做一下几步:

登录 Spring Initializr,按照以下方式进行选择:

选择 com.in28minutes.springboot 为组

选择 studet-services 为组件

选择下面的依赖项

Web

Actuator

DevTools

点击生 GenerateProject

将项目导入 Eclipse。文件 - 导入 - 现有的 Maven 项目

问题九、Spring Initializr 是创建 Spring Boot Projects 的唯一方法吗?

不是的。

第一种 通过start.spring.io 来生成下载

第二种 手动配置pom.xml

第三种 使用eclipse、idea插件

第四种 使用集成度更高的STS(SPRING 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

文章出自:http://qh.itpxw.cn/jyzn/201845030.html

文章标题:java程序员面试老不过 咋回事



免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉

(责任编辑:IT培训网)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
培训学校
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员 用户级别:10 机构名称:IT培训网 联 系 人:罗老师 联系电话:13783581536 联系手机:13783581536 在线客服:起航学习网客服 在 线 QQ:起航学习网客服 电子邮件: 网站域名:http://www.itpxw.cn 注册时间:2016-07-18 11:07 最后登录:2021-09-13 16:09