Spring Boot 面试,一个问题就干趴下了!

  • 2019 年 10 月 3 日
  • 笔记

??

?? Spring Boot ????????Spring Boot ???? Java ??????????????? Spring Boot ?????????????????????????

???????? Spring Boot ???

????? Spring Boot ??????????

??Spring Boot ???????“??????“?“??????“?????????????????????????????????????????????????????????????

??Spring Boot ? “??????“???????????

??Spring Boot Starter?Spring Boot Jpa ??“??????“??????????“??????“??????????Spring Boot Starter ????????????????????????Spring Boot Jpa ???????????? Sql ?????????????????????Spring Boot ???????

??Spring Boot Starter ?????????

??Spring Boot ??????????????

  • ? Spring Boot ????????? Starter ???? resources/META-INF/spring.factories ????????????? Jar ?????????? Jar ??

  • ? ?? spring.factories ???? AutoConfigure ?

  • ? ?? @Conditional ?????????????? Bean ?? Spring Context

????????? Spring Boot ?????????????? Spring Boot Starter ?????????????????????????? Spring ?????? Spring Boot ????????????????????????????? Bean ?????

??????????????????????????????

?? Spring Boot ????????????????????????? Spring Boot ?????????????????????

1?Spring Boot ????????????

Spring Boot ?????????@SpringBootApplication?????????????????

  • @Configuration

  • @ComponentScan

  • @EnableAutoConfiguration

?? @EnableAutoConfiguration ????????????????? @Import ?????AutoConfigurationImportSelector??????? META-INF/spring.factories ???????????? EnableAutoConfiguration ? key ??????? IOC ?????????????

2???????????????????????????

???????????????????????

?????? Java

?????? Web ????????????Tomat/Wbesphere/Weblogic ???

?????????? war ?

???????????????????

???????????????????????

????????? Java ?????????????????????

??????

???????????????

????????????????????????????????tomcat?????????????

??????? Spring Boot ???????????????? Embedded Tomcat ????? jar?????????? Java ????????? web ??????

???????????????????????????????tomcat.jar??

3??????????????????????

????????????Spring Boot?? Aatomikos??????????????????????????????????????????TPS??????????????????????????????

4?shiro?oauth??cas?????????????????????????????????????

cas?oauth?????????????shiro???????????????????????????????????????????????? cas+shiro??oauth+shiro??????

token???????????????????????????????????????????????????redis???Session???????web?????????????????????????????????

??????oauth+shiro???????????????oauth????????????shiro?????????????????

5??????????Restful?Rpc?2?????????

????SOA??????rpc????Spring Cloud????restful??????????rpc??????restful???????????????????????????????restful??????????????????????

6???????????

??????????????????????????????????????????????????????????????“??”????????????????????????

???????????????????????????????????????????????????????????????????????????????“???????”??

?????????????????????????Session??????????????????????????????????????????????????????????????????????????????????????????????????????

7?Spring Cache ?????????????

@Cacheable ?????????????????????????????????????????????????????

@CachePut??? @CachePut ?????????????????????????????????????????????????????????????????

@CacheEvict????????????????????????????????????????????????????????

8?Spring Boot ???????????

????????????? HTTP ??????????????????? HTTP ??????????????IP????????????????????? HTTP?HTTPS??????????

???????????

  • ? ?? JSONP ?????????JSONP ????????????????????<script>???????<script>? SRC ???????????????????????????????????

  • ? ?????????????????????????????????????????????????????????

?? HTML5 ??? CORS ???CORS ??? W3C ??????”??????”?Cross-origin resource sharing???????????????? XMLHttpRequest ???????? AJAX ??????????????????????? Header[Access-Control-Allow-Origin]??????????????????? CORS????? Origin ????????? XMLHttpRequest ???????

????? CORS ???????????????????Spring Boot ????????????????

????? CorsFilter?

  @Configuration  public class GlobalCorsConfig {      @Bean      public CorsFilter corsFilter() {          CorsConfiguration config = new CorsConfiguration();            config.addAllowedOrigin("*");            config.setAllowCredentials(true);            config.addAllowedMethod("*");            config.addAllowedHeader("*");            config.addExposedHeader("*");            UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource();          configSource.registerCorsConfiguration("/**", config);            return new CorsFilter(configSource);      }  }  

????????????????????????

???????????

  public class Application extends WebMvcConfigurerAdapter {        @Override      public void addCorsMappings(CorsRegistry registry) {            registry.addMapping("/**")                  .allowCredentials(true)                  .allowedHeaders("*")                  .allowedOrigins("*")                  .allowedMethods("*");        }  }  

9?JPA ? Hibernate ??????JPA ?????? SQL ??

JPA???????????????ORM?????ORM?????JPA????ORM?????????????JPA??????????????????????????????????JPA??????JPA???Hibernate ? JPA ???????

JPA ????????????????????????????????????????????????????Jpa????Entity???SQL?mybatis??????jpa??????????Mybatis?????

10?Spring ?Spring Boot ? Spring Cloud ????

Spring ???????????? Spring Ioc ? Spring Aop ??? Spring?Spring ??????????????????? Spring ???Spring Mvc ??????????????? Spring ??????? Spring ?????????????????

Spring Boot ????? Spring ??????????????? Spring Boot ?????? Spring ,???????????? Spring ?

Spring Cloud ??????????????? Spring Boot ?????????????????????????????????????????????????????????????? Spring Boot ???????????????

Spring Cloud ???????????????????????????????? Spring Cloud ????? Spring Boot ????Spring Cloud ?? Spring Boot ??????????????????????????????????????????

???????????????????????

Spring ioc/aop > Spring > Spring Boot > Spring Cloud