公司面试必问的41道 Spring Boot 面试题( 四 )


将它部署到你最喜欢的服务器(websphere 或者 Weblogic 或者 Tomcat and so on) 。
第一步:这本入门指南应该有所帮助:
第二步:取决于你的服务器 。
27 RequestMapping 和 GetMapping 的不同之处在哪里?
RequestMapping 具有类属性的 , 可以进行 GET,POST,PUT 或者其它的注释中具有的请求方法 。 GetMapping 是 GET 请求方法中的一个特例 。 它只是 ResquestMapping 的一个延伸 , 目的是为了提高清晰度 。
28 为什么我们不建议在实际的应用程序中使用 Spring Data Rest?
我们认为 Spring Data Rest 很适合快速原型制造!在大型应用程序中使用需要谨慎 。
通过 Spring Data REST 你可以把你的数据实体作为 RESTful 服务直接发布 。
当你设计 RESTful 服务器的时候 , 最佳实践表明 , 你的接口应该考虑到两件重要的事情:
你的模型范围 。
你的客户 。
通过 With Spring Data REST , 你不需要再考虑这两个方面 , 只需要作为 TEST 服务发布实体 。
这就是为什么我们建议使用 Spring Data Rest 在快速原型构造上面 , 或者作为项目的初始解决方法 。 对于完整演变项目来说 , 这并不是一个好的注意 。
29 在 Spring Initializer 中 , 如何改变一个项目的包名字?
好消息是你可以定制它 。 点击链接“转到完整版本” 。 你可以配置你想要修改的包名称!
30 JPA 和 Hibernate 有哪些区别?
简而言之
JPA 是一个规范或者接口
Hibernate 是 JPA 的一个实现
当我们使用 JPA 的时候 , 我们使用 javax.persistence 包中的注释和接口时 , 不需要使用 hibernate 的导入包 。
我们建议使用 JPA 注释 , 因为哦我们没有将其绑定到 Hibernate 作为实现 。 后来(我知道 - 小于百分之一的几率) , 我们可以使用另一种 JPA 实现 。
31 使用 Spring Boot 启动连接到内存数据库 H2 的 JPA 应用程序需要哪些依赖项?
在 Spring Boot 项目中 , 当你确保下面的依赖项都在类路里面的时候 , 你可以加载 H2 控制台 。
web 启动器
h2
jpa 数据启动器
其它的依赖项在下面:
公司面试必问的41道 Spring Boot 面试题文章插图
需要注意的一些地方:
一个内部数据内存只在应用程序执行期间存在 。 这是学习框架的有效方式 。
这不是你希望的真是世界应用程序的方式 。
在问题“如何连接一个外部数据库?”中 , 我们解释了如何连接一个你所选择的数据库 。
32 如何不通过任何配置来选择 Hibernate 作为 JPA 的默认实现?
因为 Spring Boot 是自动配置的 。
下面是我们添加的依赖项:
公司面试必问的41道 Spring Boot 面试题文章插图
spring-boot-stater-data-jpa 对于 Hibernate 和 JPA 有过渡依赖性 。
当 Spring Boot 在类路径中检测到 Hibernate 中 , 将会自动配置它为默认的 JPA 实现 。
33 我们如何连接一个像 MySQL 或者Orcale 一样的外部数据库?
让我们以 MySQL 为例来思考这个问题:
第一步 - 把 mysql 连接器的依赖项添加至 pom.xml
公司面试必问的41道 Spring Boot 面试题文章插图
第二步 - 从 pom.xml 中移除 H2 的依赖项
或者至少把它作为测试的范围 。
公司面试必问的41道 Spring Boot 面试题文章插图
第三步 - 安装你的 MySQL 数据库
更多的来看看这里 -#installing-and-setting-up-mysql
第四步 - 配置你的 MySQL 数据库连接
配置 application.properties
spring.jpa.hibernate.ddl-auto=none spring.datasource.url=jdbc:mysql://localhost:3306/todo_example spring.datasource.username=todouser spring.datasource.password=YOUR_PASSWORD第五步 - 重新启动 , 你就准备好了!
就是这么简单!
34 你能否举一个以 ReadOnly 为事务管理的例子?
当你从数据库读取内容的时候 , 你想把事物中的用户描述或者是其它描述设置为只读模式 , 以便于 Hebernate 不需要再次检查实体的变化 。 这是非常高效的 。
35 Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
启动类上面的注解是@SpringBootApplication , 它也是 Spring Boot 的核心注解 , 主要组合包含了以下 3 个注解:
@SpringBootConfiguration:组合了 @Configuration 注解 , 实现配置文件的功能 。
@EnableAutoConfiguration:打开自动配置的功能 , 也可以关闭某个自动配置的选项 , 如关闭数据源自动配置功能:
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }) 。
@ComponentScan:Spring组件扫描 。