Java笔试面试-SpringBoot核心

Java笔试面试-SpringBoot核心

2023年7月13日发(作者:)

Java笔试⾯试-SpringBoot核⼼Spring Boot  Spring Boot 来⾃于 Spring ⼤家族,是 Spring 官⽅团队(Pivotal 团队)提供的全新框架,它的诞⽣解决了 Spring 框架使⽤较为繁琐的问题。Spring Boot 的核⼼思想是约定优于配置,让开发⼈员不需要配置任何 XML ⽂件,就可以像 Maven 整合 Jar 包⼀样,整合并使⽤所有框架。Spring Boot 特性秒级构建⼀个项⽬;便捷的对外输出格式,如 REST API、WebSocket、Web 等;简洁的安全集成策略;内嵌容器运⾏,如 Tomcat、Jetty;强⼤的开发包,⽀持热启动;⾃动管理依赖;⾃带应⽤监控。Spring Boot 2 对系统环境的要求Java 8+Gradle 4+ or Maven 3.2+Tomcat 8+Spring Boot 使⽤在开始之前,我们先来创建⼀个Spring Boot 项⽬。Spring Boot 有两种快速创建的⽅式:Spring 官⽹在线⽹站创建和 IntelliJ IDEA 的Spring Initializr 创建,下⾯分别来看。创建 Spring Boot 项⽬1.在线⽹站创建其中 Group 和 Artifact 是 Maven 项⽬⽤来确认依赖项⽬的标识,⽐如: framework spring-core EGroup 对应的是配置⽂件的 groupId,相当于项⽬的包名;⽽ Artifact 对应的是配置⽂件的 artifactId,相当于项⽬名。2.使⽤ IntelliJ IDEA 创建① 新建项⽬ → 选择 Spring Initialzr,如下图所⽰:② 点击 Next 按钮,填写对应的项⽬信息(和在线⽹站创建的字段基本相同),如下图所⽰:③ 点击 Next 按钮,选择相应的依赖信息,如下图所⽰:④ 点击 Next 按钮,选择项⽬保存的路径,点击 Finish 创建项⽬完成,如下图所⽰:创建⼀个 Web 应⽤ 中添加 Web 模块的依赖,如下所⽰: spring-boot-starter-web2.创建后台代码import tMapping;import ntroller;@RestControllerpublic class HelloController { @RequestMapping("/index") public String index(String name) { return "Hello, " + name; }}3.启动并访问项⽬项⽬的启动类是标识了 @Spring BootApplication 的类,代码如下所⽰:import Application;import BootApplication;@SpringBootApplicationpublic class SpringbootlearningApplication { public static void main(String[] args) { (, args); }}Spring Boot 的配置⽂件,是 resources ⽬录下 ties ⽂件,如下图所⽰:可以在配置⽂件中设置很多关于 Spring 框架的配置,格式如下配置所⽰:# 项⽬运⾏端⼝=8086# 请求编码格式-encoding=UTF-8Spring Boot 发布Spring Boot 项⽬的发布⽅式有两种:内置容器运⾏外置容器(Tomcat)运⾏内置容器运⾏1.打包应⽤使⽤窗⼝命令,在 同级⽬录下:mvn clean package -==true 表⽰不执⾏测试⽤例,也不编译测试⽤例类。2.启动应⽤后台启动 Java 程序, 命令如下:nohup java -jar &停⽌程序⾸先查询 Java 程序的 pidps -ef|grep java再停⽌程序kill -9 pid操作如下图所⽰:扩展内容指定程序运⾏⽇志⽂件nohup java -jar 1>>logs 2>>errlog &其中:1:表⽰普通⽇志2:表⽰错误⽇志外置容器(Tomcat)运⾏1.排除内置 Tomcat spring-boot-starter-tomcat provided将 scope 属性设置为 provided,表⽰打包不会包含此依赖。2.配置启动类在项⽬的启动类中继承 Spring BootServletInitializer 并重写 configure() ⽅法:@SpringBootApplicationpublic class PackageApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return s(); } public static void main(String[] args) { (, args); }}3.打包应⽤使⽤窗⼝命令,在 同级⽬录下:mvn clean package -=true4.部署应⽤打包完成会在 target ⽬录下⽣成:项⽬名 + 版本号.war ⽂件,复制到 Tomcat 的 webapps ⽬录下,运⾏ Tomcat 即可。笔试⾯试题 Boot 2.0 ⽀持最低的 JDK 版本是?A:JDK 6B:JDK 7C:JDK 8D:JDK 9答:、Spring Boot、Spring Cloud 是什么关系?答:它们都是来⾃于 Spring ⼤家庭,Spring Boot 是在 Spring 框架的基础上开发⽽来,让更加⽅便使⽤ Spring;Spring Cloud 是依赖于 Spring Boot ⽽构建的⼀套微服务治理框架。 Boot 项⽬有哪些优势?答:Spring Boot 项⽬优势如下:开发变得简单,提供了丰富的解决⽅案,快速集成各种解决⽅案提升开发效率;配置变得简单,提供了丰富的 Starters,集成主流开源产品往往只需要简单的配置即可;部署变得简单,其本⾝内嵌启动容器,仅仅需要⼀个命令即可启动项⽬,结合 Jenkins、Docker ⾃动化运维⾮常容易实现;监控变得简单,⾃带监控组件,使⽤ Actuator 轻松监控服务各项状态。4.如何将 Spring Boot 项⽬打包成 war 包?答:在 ⾥设置

war 。5.在 Maven 项⽬中如何修改打包名称?答:在 ⽂件的 build 节点中,添加 finalName 节点并设置为要的名称即可,配置如下: warName、Maven、Gradle 有什么区别?答:Ant、Maven、Gradle 是 Java 领域中主要有三⼤构建⼯具,它们的区别如下:Ant(AnotherNeatTool)诞⽣于 2000 年,是由 Java 编写,采⽤ XML 作为构建脚本,这样就允许你在任何环境下运⾏构建。Ant是 Java 领域最早的构建⼯具,不过因为操作复杂,慢慢的已经被淘汰了;Maven 诞⽣于 2004 年,⽬的是解决程序员使⽤ Ant 所带来的⼀些问题,它的好处在于可以将项⽬过程规范化、⾃动化、⾼效化以及强⼤的可扩展性;Gradle 诞⽣于 2009 年,是⼀个基于 Apache Ant 和 Apache Maven 概念的项⽬⾃动化建构⼯具。它使⽤⼀种基于 Groovy 的特定领域语⾔来声明项⽬设置,⽽不是传统的 XML。结合了前两者的优点,在此基础之上做了很多改进,它具有 Ant 的强⼤和灵活,⼜有 Maven 的⽣命周期管理且易于使⽤。Spring Boot 官⽅⽀持 Maven 和 Gradle 作为项⽬构建⼯具。Gradle 虽然有更好的理念,但是相⽐ Maven 来讲其⾏业使⽤率偏低,并且Spring Boot 官⽅默认使⽤ Maven。 如何设置发布的包名?答:在 build 节点下设置 finalName 就是发布的包名,如下代码所⽰: biapi Boot 热部署有⼏种⽅式?答:Spring Boot 热部署主要有两种⽅式:Spring Loaded、Spring-boot-devtools。⽅式 1:Spring Loaded在 ⽂件中添加如下依赖: spring-boot-maven-plugin framework springloaded E 此处为⼊⼝类 ⽅式 2:Spring-boot-devtools在 ⽂件中添加如下依赖: spring-boot-devtools provided true Boot 2.0 可以在 Tomcat 7 运⾏吗?为什么?答:Spring Boot 2.0 ⽆法在 Tomcat 7 上运⾏。因为 Spring Boot 2.0 使⽤的是 Spring Framework 5,Spring Framework 5 使⽤的是 Servlet 3.1,⽽ Tomcat 7 最⾼⽀持到 Servlet 3.0,所以 Spring Boot 2.0 ⽆法在 Tomcat 7 上运⾏。10.如何使⽤ Jetty 代替 Tomcat?答:在 spring-boot-starter-web 移除现有的依赖项,添加 Jetty 依赖,配置如下: spring-boot-starter-web spring-boot-starter-tomcat spring-boot-starter-jetty Boot 不⽀持以下哪个内嵌容器?A:TomcatB:JettyC:UndertowD:Nginx答:D题⽬解析:Jetty 容器⽀持如下: spring-boot-starter-web spring-boot-starter-tomcat spring-boot-starter-jettyUndertow 容器⽀持如下: spring-boot-starter-web spring-boot-starter-tomcat spring-boot-starter-undertow Boot 中配置⽂件有⼏种格式?答:Spring Boot 中有 .properties 和 .yml 两种配置⽂件格式,它们主要的区别是书写格式不同。.properties 配置⽂件格式如下: = 配置⽂件格式如下:app: user: name: hellojava

13.项⽬中有两个配置 ties 和 ,以下说法正确的是?A:ties 的内容会被忽略,只会识别 的内容。B:两个配置⽂件同时有效,有相同配置时,以 ties ⽂件为主。C: 的内容会被忽略,只会识别 ties 的内容。D:两个配置⽂件同时有效,有相同配置时,以 ⽂件为主。答:tMapping 和 GetMapping 有什么不同?答:RequestMapping 和 GetMapping 区别如下:RequestMapping 可以⽀持 GET、POST、PUT 请求;GetMapping 是⼀个组合注解,相当于 @RequestMapping(method = )。15.以下关于 @RestController 和 @Controller 说法正确的?A:@Controller 返回 JSON 数据B:@RestController 返回 JSON 数据C:@APIController 返回 JSON 数据D:以上都对答: Cache 常⽤的缓存注解有哪些?答:Spring Cache 常⽤注解如下:@Cacheable:⽤来声明⽅法是可缓存,将结果存储到缓存中以便后续使⽤相同参数调⽤时不需执⾏实际的⽅法,直接从缓存中取值;@CachePut:使⽤它标注的⽅法在执⾏前,不会去检查缓存中是否存在之前执⾏过的结果,⽽是每次都会执⾏该⽅法,并将执⾏结果以键值对的形式存⼊指定的缓存中;CacheEvict:是⽤来标注在需要清除缓存元素的⽅法或类上的,当标记在⼀个类上时表⽰其中所有⽅法的执⾏都会触发缓存的清除操作。 Boot Admin 和 Spring Boot Actuator 的关系是什么?答:Spring Boot Admin 使⽤了 Spring Boot Actuator 接⼝进⾏ UI 美化封装的监控⼯具,它以图形化的⽅式查询单个应⽤的详细状态,也可以使⽤ Spring Boot Admin 来监控整个集群的状态。18.如何理解 Spring Boot 中的 Stater?答:Stater 可以理解为启动器,它是⽅便开发者快速集成其他框架到 Spring 中的⼀种技术。⽐如,spring-boot-starter-data-jpa 就是把JPA 快速集成到 Spring 中。19.常见的 starter 有哪些?答:常见的 starter 如下:spring-boot-starter-web:Web 开发⽀持spring-boot-starter-data-jpa:JPA 操作数据库⽀持spring-boot-starter-data-redis:Redis 操作⽀持spring-boot-starter-data-solr:Solr 权限⽀持mybatis-spring-boot-starter:MyBatis 框架⽀持 Boot Starter JDBC 和 Spring JDBC 有什么关系?答:spring-boot-starter-jdbc 是 Spring Boot 针对 JDBC 的使⽤提供了对应的 Starter 包,在 Spring JDBC 上做了进⼀步的封装,⽅便在 Spring Boot ⽣态中更好的使⽤ JDBC。 Boot 有哪⼏种读取配置的⽅式?答:Spring Boot 可以通过 @Value、@Environment、@ConfigurationProperties 这三种⽅式来读取。例如,配置⽂件内容如下:=中⽂① Value ⽅式@Value("${}")private String appName;② Environment ⽅式public class HelloController { @Autowired private Environment environment; @RequestMapping("/index") public String index(String hiName) { // 读取配置⽂件 String appName = perty(""); return "Hello, " + hiName + " |@" + appName; }}③ ConfigurationProperties ⽅式@ConfigurationProperties(prefix = "app")public class HelloController { // 读取配置⽂件,必须有 setter ⽅法 private String name; public void setName(String name) { = name; } @RequestMapping("/index") public String index(String hiName) { n("appname:" + name); return "Hello, " + hiName + " |@" + appName; }}22.使⽤ @Value 读取中⽂乱码是什么原因?如何处理?答:这是因为配置⽂件的编码格式导致的,需要把编码格式设置为 UTF-8,如下图所⽰:设置完成之后,重新启动 IDEA 就可以正常显⽰中⽂了。

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1689200597a220070.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信