主页 > 游戏开发  > 

面试--springboot基础

面试--springboot基础
1、约定优于配置,理解

是一种软件设计的范式,减少开发人员对于配置项的维护,更加聚焦在业务逻辑上

基于spring框架开发web项目,只需要做一次配置

springboot starter启动依赖,帮我们管理jar包版本

当前应用依赖spring mvc相关的jar,会自动内置tomcat运行web应用,不需要再单独部署

自动装配机制的实现中国,通过扫描约定路径下的配置文件,实现bean的自动装配

2、自动装配机制的原理

自动把第三方组件的bean装载到IOC容器中,不需要再去写bean的装配配置

启动类上@SpringBootApplication就可以实现自动装配,真正实现自动装配的注解是@EnableAutoConfiguration

引入starter启动依赖组件,这个组件里必须包含@Configuration 配置类,通过@Bean声明需要装配到IOC的bean对象

这个配置类是放在第三方jar包里,然后通过约定优于配置私下,把这个配置类的全路径放在classpath:/META-INF/spring.factories文件中,这样springboot就可以知道第三方jar包里的配置类的位置,这个步骤主要是用到spring里SpringFactoriesLoader来完成的

springboot拿到jar包的配置类后,再通过spring提供的ImportSelector接口实现动态加载

启动底层主要是三个注解:

@SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。@EnableAutoConfiguration:打开自动配置的功能@ComponentScan:Spring组件扫描。

3、如何理解starter

Spring Boot 中的 starter 到底是什么 ? - 知乎

starter是启动以来,为何对应的jar包版本依赖,避免一些版本冲突的问题。内部集成了自动装配机制,这个组件会自动集成到spri那个生态下,并且自动装配bean,只需要在在 application.properties中维护配置就可以了,官方是spring-boot-starter-xxx开头、

常用的:spring-boot-starter-data-redis、druid-spring-boot-starter

4、如何解决跨域

访问浏览器网页时,只能访问同源的资源,比如协议、域名、端口号不同的资源时存在限制

jsonp:动态地创建<script>标签,只支持get请求

cros:服务器短配置Access-Control-Allow-Origin,配置允许哪些域名支持跨域请求

@CrossOrigin(origins = "http://localhost:8080")指定哪些允许跨域

继承WebMvcConfigurer重写addCorsMappings设置请求源

nginx反向代理

        add_header Access-Control-Allow-Origin

        add_header Access-Control-Allow-Methods

5. 事物的使用

使用注解@EnableTransactionManagement开启事物之后,然后在Service方法上添加注解@Transactional

6. Async异步调用方法

方法上使用@Async注解,需要在启动类加入@EnableAsync

7. 核心配置文件ootstrap.properties 和application.properties区别

在结合Spring Cloud 时,bootstrap.properties配置就会经常遇到了,特别是在需要加载一些远程配置文件的时侯。

boostrap 由父 ApplicationContext 加载的,比applicaton 优先加载,配置在应用程序上下文的引导阶段生效,且 boostrap 里面的属性不能被覆盖;application 由ApplicatonContext 加载,用于 spring boot 项目的自动化配置。

8、全局异常处理

注解@RestControllerAdvice,重写全局异常处理方法

9. 无需重新启动服务器重新加载 Spring Boot 上的更改

<dependency>     <groupId>org.springframework.boot</groupId>     <artifactId>spring-boot-devtools</artifactId> </dependency>

标签:

面试--springboot基础由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“面试--springboot基础