• 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点触发。

  • 相关阅读:
    .NET CORE中的配置系统
    .Net Core使用AspNetCoreRateLimit实现限流
    .NET CORE 依赖注入2
    linunx命令学习_文件命令
    .NET CORE 日志系统
    Rabbit MQ
    WPF学习
    Unity asp.net 依赖注入框架Unity
    .NET Core 依赖注入1
    备忘asp.net core使用中间件实现IP白名单访问
  • 原文地址:https://www.cnblogs.com/starcrm/p/10606713.html
Copyright © 2020-2023  润新知