Spring Boot 面試題


1、列舉一些SpringBoot特性

  • 1、創建獨立的Spring項目
  • 2、內置Tomcat和Jetty容器
  • 3、提供一個starter POMs來簡化Maven配置
  • 4、提供了一系列大型項目中常見的非功能性特性,如安全、指標,健康檢測、外部配置等
  • 5、完全沒有代碼生成和xml配置文件

2、有什么常用的Spring Boot啟動器?
spring-boot-starter: 核心啟動器,包括自動配置支持,日志記錄和YAML
spring-boot-starter-aop: 使用Spring AOP和AspectJ進行面向方面編程的啟動器
spring-boot-starter-data-jpa: 使用Spring Data JPA和Hibernate的啟動器
spring-boot-starter-jdbc: 用於將JDBC與HikariCP連接池一起使用的啟動器
spring-boot-starter-security: 使用Spring Security的啟動器
spring-boot-starter-test: 用於測試Spring Boot應用程序的啟動器
spring-boot-starter-web: 用於構建Web的入門者,包括使用Spring MVC的RESTful應用程序

3、application.properties中如何引用已定義的配置參數?
使用${},比如:
book.name = XXX
book.desc = ${book.name} 's desc

4、spring boot Devtools有什么作用?
https://blog.csdn.net/isea533/article/details/70495714

5、Spring Boot Actuator有什么作用?
監控和管理Spring Boot應用,比如Mappring、健康檢查、審計、統計和HTTP追蹤等。所有的這些特性可以通過JMX或者HTTP endpoints來獲得。

6、RequestMapping 和 GetMapping 的不同之處在哪里?
RequestMapping 具有類屬性的,可以進行 GET,POST,PUT 或者其它的注釋中具有的請求方法。
GetMapping 是 GET 請求方法中的一個特例。它只是 ResquestMapping 的一個延伸,目的是為了提高清晰度。

7、@ConfigurationProperties 注解的作用
將配置屬性注入到bean
類似如下:
@Component
@ConfigurationProperties(prefix = "person")
public class Person {

private String firstName;

}

application.properties屬性:
person.firstName = XXX

8、@value和@configurationproperties的區別
https://www.cnblogs.com/slowcity/p/9097969.html

9、Spring Boot 如何定義多套不同環境配置?
提供多套配置文件,如:

applcation.properties
application-dev.properties
application-test.properties
application-prod.properties
祥見:https://mp.weixin.qq.com/s/K0kdQwoo2t5FDsTUJttSAA

10、@responsebody有什么作用?
@responsebody后返回結果不會被解析為跳轉路徑,而是直接寫入HTTP response body中。比如異步獲取json數據,加上@responsebody后,會直接返回json數據。該注解一般會配合@RequestMapping一起使用。

11、@Controller 和 @RestController有什么區別?
@RestController 是Spring4之后加入的注解,原來在@Controller中返回json需要@ResponseBody來配合,如果直接用@RestController替代@Controller就不需要再配置@ResponseBody,默認返回json格式。而@Controller是用來創建處理http請求的對象,一般結合@RequestMapping使用。


12、@Component和@Bean有什么區別? (答案還不是特別確信)
@Component被用在要被自動掃描和裝配的類上。@Component類中使用方法或字段時不會使用CGLIB增強(及不使用代理類:調用任何方法,使用任何變量,拿到的是原始對象)Spring 注解@Component等效於@Service,@Controller,@Repository
@Bean主要被用在方法上,來顯式聲明要用生成的類;用@Configuration注解該類,用@Bean標注方法等價於XML中配置bean。

現在項目上,本工程中的類,一般都使用@Component來生成bean。在把通過web service取得的類,生成Bean時,使用@Bean和getter方法來生成bean


13、有什么springboot的安全方面的實踐?

https://mp.weixin.qq.com/s/HG4_StZyNCoWx02mUVCs1g

14、如何使用@Async?
現在啟動類@SpringBootApplication后面加入@EnableAsync,定義@Component類中的異步任務方法,其中注解@Async,方法返回void或者Future<T>,調用方法即平常的@Autowired實例化即可。

15、springboot如何開啟定時任務?
定義啟動類@EnableScheduling,然后在任務類使用cron表達式來定義任務時間,比如@Scheduled(cron="/6 * * * * ?")代表每6秒一次,再如:“0 0 12 * * ?” 每天中午12點觸發。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM